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

TM6605 Linear Resonant Actuator (LRA) Haptic Driver. 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 Linear Resonant Actuator (LRA) Haptic Driver.

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.