Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

TM6605 Haptic Driver for LRA. More...

Files

file  tm6605.h
 Header file providing the API for the TM6605 haptic driver.

Enumerations

enum  tm6605_effect {
  TM6605_EFFECT_SHARP_CLICK = 1 , TM6605_EFFECT_INSTANT_CLICK = 4 , TM6605_EFFECT_LIGHT_TAP = 7 , TM6605_EFFECT_DOUBLE_CLICK = 10 ,
  TM6605_EFFECT_LIGHT_PULSE = 13 , TM6605_EFFECT_STRONG_ALERT = 14 , TM6605_EFFECT_MEDIUM_DURATION_ALERT = 15 , TM6605_EFFECT_SHARP_CLICK_2 = 17 ,
  TM6605_EFFECT_MEDIUM_CLICK = 21 , TM6605_EFFECT_FLASH_STRIKE = 24 , TM6605_EFFECT_DOUBLE_HIGH_CLICK_SHORT = 27 , TM6605_EFFECT_DOUBLE_MEDIUM_CLICK_SHORT = 31 ,
  TM6605_EFFECT_DOUBLE_FLASH_STRIKE_SHORT = 34 , TM6605_EFFECT_DOUBLE_INSTANT_CLICK_LONG = 37 , TM6605_EFFECT_DOUBLE_MEDIUM_INSTANT_CLICK_LONG = 41 , TM6605_EFFECT_DOUBLE_FLASH_STRIKE_LONG = 44 ,
  TM6605_EFFECT_ALERT = 47 , TM6605_EFFECT_TOGGLE_CLICK = 58 , TM6605_EFFECT_LONG_SLOW_FADE_1 = 70 , TM6605_EFFECT_LONG_SLOW_FADE_2 = 71 ,
  TM6605_EFFECT_MEDIUM_SLOW_FADE_1 = 72 , TM6605_EFFECT_MEDIUM_SLOW_FADE_2 = 73 , TM6605_EFFECT_SHORT_SLOW_FADE_1 = 74 , TM6605_EFFECT_SHORT_SLOW_FADE_2 = 75 ,
  TM6605_EFFECT_LONG_FAST_FADE_1 = 76 , TM6605_EFFECT_LONG_FAST_FADE_2 = 77 , TM6605_EFFECT_MEDIUM_FAST_FADE_1 = 78 , TM6605_EFFECT_MEDIUM_FAST_FADE_2 = 79 ,
  TM6605_EFFECT_SHORT_FAST_FADE_1 = 80 , TM6605_EFFECT_SHORT_FAST_FADE_2 = 81 , TM6605_EFFECT_LONG_SLOW_BOOST_1 = 82 , TM6605_EFFECT_LONG_SLOW_BOOST_2 = 83 ,
  TM6605_EFFECT_MEDIUM_SLOW_BOOST_1 = 84 , TM6605_EFFECT_MEDIUM_SLOW_BOOST_2 = 85 , TM6605_EFFECT_SHORT_SLOW_BOOST_1 = 86 , TM6605_EFFECT_SHORT_SLOW_BOOST_2 = 87 ,
  TM6605_EFFECT_LONG_FAST_BOOST_1 = 88 , TM6605_EFFECT_LONG_FAST_BOOST_2 = 89 , TM6605_EFFECT_MEDIUM_FAST_BOOST_1 = 90 , TM6605_EFFECT_MEDIUM_FAST_BOOST_2 = 91 ,
  TM6605_EFFECT_SHORT_FAST_BOOST_1 = 92 , TM6605_EFFECT_SHORT_FAST_BOOST_2 = 93 , TM6605_EFFECT_LONG_ALERT = 118 , TM6605_EFFECT_SOFT_NOISE = 119 ,
  TM6605_EFFECT_SLEEP_COMMAND = 123
}
 TM6605 pre-programmed effect IDs. More...

Functions

int tm6605_select_effect (const struct device *dev, enum tm6605_effect effect)
 Select the haptic effect to be played by the next start_output call.

Detailed Description

TM6605 Haptic Driver for LRA.

The TM6605 from Titan Micro Electronics is an I2C-controlled haptic driver for LRAs. It exposes 44 pre-programmed effects selectable by ID and is controlled by writing two registers (effect select and playback control). The I2C interface is write-only.

Enumeration Type Documentation

◆ tm6605_effect

#include <tm6605.h>

TM6605 pre-programmed effect IDs.

Valid effect IDs that can be written to the effect-select register. Approximate durations (in milliseconds) are taken from the datasheet and are reference values; actual playback time depends on the LRA.

Enumerator
TM6605_EFFECT_SHARP_CLICK 

Sharp click, ~65 ms.

TM6605_EFFECT_INSTANT_CLICK 

Instant click, ~45 ms.

TM6605_EFFECT_LIGHT_TAP 

Light tap, ~130 ms.

TM6605_EFFECT_DOUBLE_CLICK 

Double click, ~200 ms.

TM6605_EFFECT_LIGHT_PULSE 

Light pulse, ~215 ms.

TM6605_EFFECT_STRONG_ALERT 

Strong alert, ~190 ms.

TM6605_EFFECT_MEDIUM_DURATION_ALERT 

Medium-duration alert, ~730 ms.

TM6605_EFFECT_SHARP_CLICK_2 

Sharp click 2, ~90 ms.

TM6605_EFFECT_MEDIUM_CLICK 

Medium-strength click, ~65 ms.

TM6605_EFFECT_FLASH_STRIKE 

Flash strike, ~20 ms.

TM6605_EFFECT_DOUBLE_HIGH_CLICK_SHORT 

Short-gap double high-click, ~120 ms.

TM6605_EFFECT_DOUBLE_MEDIUM_CLICK_SHORT 

Short-gap double medium-click, ~120 ms.

TM6605_EFFECT_DOUBLE_FLASH_STRIKE_SHORT 

Short-gap double flash-strike, ~100 ms.

TM6605_EFFECT_DOUBLE_INSTANT_CLICK_LONG 

Long-gap double instant-click, ~150 ms.

TM6605_EFFECT_DOUBLE_MEDIUM_INSTANT_CLICK_LONG 

Long-gap double medium-instant-click, ~150 ms.

TM6605_EFFECT_DOUBLE_FLASH_STRIKE_LONG 

Long-gap double flash-strike, ~150 ms.

TM6605_EFFECT_ALERT 

Alert, ~240 ms.

TM6605_EFFECT_TOGGLE_CLICK 

Toggle click, ~620 ms.

TM6605_EFFECT_LONG_SLOW_FADE_1 

Long slow fade-out transition 1, ~390 ms.

TM6605_EFFECT_LONG_SLOW_FADE_2 

Long slow fade-out transition 2, ~620 ms.

TM6605_EFFECT_MEDIUM_SLOW_FADE_1 

Medium slow fade-out transition 1, ~400 ms.

TM6605_EFFECT_MEDIUM_SLOW_FADE_2 

Medium slow fade-out transition 2, ~650 ms.

TM6605_EFFECT_SHORT_SLOW_FADE_1 

Short slow fade-out transition 1, ~410 ms.

TM6605_EFFECT_SHORT_SLOW_FADE_2 

Short slow fade-out transition 2, ~490 ms.

TM6605_EFFECT_LONG_FAST_FADE_1 

Long fast fade-out transition 1, ~340 ms.

TM6605_EFFECT_LONG_FAST_FADE_2 

Long fast fade-out transition 2, ~390 ms.

TM6605_EFFECT_MEDIUM_FAST_FADE_1 

Medium fast fade-out transition 1, ~310 ms.

TM6605_EFFECT_MEDIUM_FAST_FADE_2 

Medium fast fade-out transition 2, ~360 ms.

TM6605_EFFECT_SHORT_FAST_FADE_1 

Short fast fade-out transition 1, ~340 ms.

TM6605_EFFECT_SHORT_FAST_FADE_2 

Short fast fade-out transition 2, ~350 ms.

TM6605_EFFECT_LONG_SLOW_BOOST_1 

Long slow boost transition 1, ~320 ms.

TM6605_EFFECT_LONG_SLOW_BOOST_2 

Long slow boost transition 2, ~650 ms.

TM6605_EFFECT_MEDIUM_SLOW_BOOST_1 

Medium slow boost transition 1, ~310 ms.

TM6605_EFFECT_MEDIUM_SLOW_BOOST_2 

Medium slow boost transition 2, ~640 ms.

TM6605_EFFECT_SHORT_SLOW_BOOST_1 

Short slow boost transition 1, ~320 ms.

TM6605_EFFECT_SHORT_SLOW_BOOST_2 

Short slow boost transition 2, ~460 ms.

TM6605_EFFECT_LONG_FAST_BOOST_1 

Long fast boost transition 1, ~290 ms.

TM6605_EFFECT_LONG_FAST_BOOST_2 

Long fast boost transition 2, ~615 ms.

TM6605_EFFECT_MEDIUM_FAST_BOOST_1 

Medium fast boost transition 1, ~320 ms.

TM6605_EFFECT_MEDIUM_FAST_BOOST_2 

Medium fast boost transition 2, ~590 ms.

TM6605_EFFECT_SHORT_FAST_BOOST_1 

Short fast boost transition 1, ~330 ms.

TM6605_EFFECT_SHORT_FAST_BOOST_2 

Short fast boost transition 2, ~470 ms.

TM6605_EFFECT_LONG_ALERT 

Long alert, ~10 s.

TM6605_EFFECT_SOFT_NOISE 

Soft noise, ~480 ms.

TM6605_EFFECT_SLEEP_COMMAND 

Sleep command.

Selecting and starting this "effect" puts the TM6605 into sleep mode. A falling edge on SCL (i.e. the next I2C transaction) wakes the device, though the first command after wake may be discarded by the chip.

Function Documentation

◆ tm6605_select_effect()

int tm6605_select_effect ( const struct device * dev,
enum tm6605_effect effect )

#include <tm6605.h>

Select the haptic effect to be played by the next start_output call.

The TM6605 effect-select register is loaded but playback is not started. Call haptics_start_output() afterwards to trigger the effect.

Parameters
devTM6605 device instance.
effectEffect ID (see tm6605_effect).
Return values
0on success.
-EINVALif effect is not a valid effect ID.
-errnofrom the underlying I2C controller on failure.