diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2013-09-25 14:15:41 +0200 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2013-09-25 14:31:39 +0200 |
commit | 59094381936bba343708b26ff73593e08a0f88e9 (patch) | |
tree | 15c1fae5df2adcd254628b083bfdcc2b50bf44f1 /firmware/target/arm/imx233/button-lradc-imx233.h | |
parent | 2f5f2ba91dfe5a41551d54b7af33be42e7a27c5d (diff) | |
download | rockbox-59094381936bba343708b26ff73593e08a0f88e9.tar.gz rockbox-59094381936bba343708b26ff73593e08a0f88e9.zip |
imx233: improve button lradc driver
The driver can now handle HOLD in several ways, including using a GPIO.
Also add a debug routine to read the raw value of the adc.
Change-Id: Ide2cb1ac58e759b4bc464e606b432f2c150ee36f
Diffstat (limited to 'firmware/target/arm/imx233/button-lradc-imx233.h')
-rw-r--r-- | firmware/target/arm/imx233/button-lradc-imx233.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/firmware/target/arm/imx233/button-lradc-imx233.h b/firmware/target/arm/imx233/button-lradc-imx233.h index d3e6ad8326..eac5517adf 100644 --- a/firmware/target/arm/imx233/button-lradc-imx233.h +++ b/firmware/target/arm/imx233/button-lradc-imx233.h | |||
@@ -29,10 +29,27 @@ | |||
29 | * and variables: | 29 | * and variables: |
30 | * - imx233_button_lradc_mapping: target-defined table of adc values and mapping | 30 | * - imx233_button_lradc_mapping: target-defined table of adc values and mapping |
31 | * - IMX233_BUTTON_LRADC_CHANNEL: lradc channel to use | 31 | * - IMX233_BUTTON_LRADC_CHANNEL: lradc channel to use |
32 | * - IMX233_BUTTON_LRADC_HOLD_DET: define hold detection method (ignored if !HAS_BUTTON_HOLD) | ||
33 | * | ||
34 | * The available values of IMX233_BUTTON_LRADC_HOLD are: | ||
35 | * - BLH_ADC: detect hold using adc | ||
36 | * - BLH_EXT: target button driver implements imx233_button_lradc_hold() using | ||
37 | * any external method of its choice | ||
38 | * - BLH_GPIO: detect hold using a GPIO, needs to define additional defines: | ||
39 | * + BLH_GPIO_BANK: pin bank | ||
40 | * + BLH_GPIO_PIN: pin in bank | ||
41 | * + BLH_GPIO_INVERTED: define if inverted, default is active high | ||
42 | * + BLH_GPIO_PULLUP: define if pins needs pullup | ||
32 | */ | 43 | */ |
33 | 44 | ||
34 | /* special value for btn to handle HOLD */ | 45 | /* hold detect method */ |
46 | #define BLH_ADC 0 | ||
47 | #define BLH_EXT 1 | ||
48 | #define BLH_GPIO 2 | ||
49 | |||
50 | /* special value for btn to indicate end of list */ | ||
35 | #define IMX233_BUTTON_LRADC_END -1 | 51 | #define IMX233_BUTTON_LRADC_END -1 |
52 | /* special value for btn to handle HOLD */ | ||
36 | #define IMX233_BUTTON_LRADC_HOLD -2 | 53 | #define IMX233_BUTTON_LRADC_HOLD -2 |
37 | 54 | ||
38 | struct imx233_button_lradc_mapping_t | 55 | struct imx233_button_lradc_mapping_t |
@@ -50,7 +67,12 @@ struct imx233_button_lradc_mapping_t | |||
50 | extern struct imx233_button_lradc_mapping_t imx233_button_lradc_mapping[]; | 67 | extern struct imx233_button_lradc_mapping_t imx233_button_lradc_mapping[]; |
51 | 68 | ||
52 | void imx233_button_lradc_init(void); | 69 | void imx233_button_lradc_init(void); |
53 | int imx233_button_lradc_read(void); | 70 | /* others gives the bitmask of other buttons: the function will OR the result |
71 | * with them except if hold is detected in which case 0 is always returned */ | ||
72 | int imx233_button_lradc_read(int others); | ||
73 | #ifdef HAS_BUTTON_HOLD | ||
54 | bool imx233_button_lradc_hold(void); | 74 | bool imx233_button_lradc_hold(void); |
75 | #endif | ||
76 | int imx233_button_lradc_read_raw(void); // return raw adc value | ||
55 | 77 | ||
56 | #endif /* __button_lradc_imx233__ */ | 78 | #endif /* __button_lradc_imx233__ */ |