summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/button-lradc-imx233.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx233/button-lradc-imx233.h')
-rw-r--r--firmware/target/arm/imx233/button-lradc-imx233.h26
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
38struct imx233_button_lradc_mapping_t 55struct imx233_button_lradc_mapping_t
@@ -50,7 +67,12 @@ struct imx233_button_lradc_mapping_t
50extern struct imx233_button_lradc_mapping_t imx233_button_lradc_mapping[]; 67extern struct imx233_button_lradc_mapping_t imx233_button_lradc_mapping[];
51 68
52void imx233_button_lradc_init(void); 69void imx233_button_lradc_init(void);
53int 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 */
72int imx233_button_lradc_read(int others);
73#ifdef HAS_BUTTON_HOLD
54bool imx233_button_lradc_hold(void); 74bool imx233_button_lradc_hold(void);
75#endif
76int imx233_button_lradc_read_raw(void); // return raw adc value
55 77
56#endif /* __button_lradc_imx233__ */ 78#endif /* __button_lradc_imx233__ */