Loading...
Searching...
No Matches
stmpe811_constants.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2019 Inria
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
17
18#include "stmpe811.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#define STMPE811_I2C_ADDR_DEFAULT (0x41)
25
26#define STMPE811_CHIP_ID_VALUE (0x0811)
27
32#define STMPE811_CHIP_ID (0x00)
33#define STMPE811_ID_VER (0x02)
34#define STMPE811_SYS_CTRL1 (0x03)
35#define STMPE811_SYS_CTRL2 (0x04)
36#define STMPE811_SPI_CFG (0x08)
37#define STMPE811_INT_CTRL (0x09)
38#define STMPE811_INT_EN (0x0A)
39#define STMPE811_INT_STA (0x0B)
40#define STMPE811_GPIO_EN (0x0C)
41#define STMPE811_GPIO_INT_STA (0x0D)
42#define STMPE811_ADC_INT_EN (0x0E)
43#define STMPE811_ADC_INT_STA (0x0F)
44#define STMPE811_GPIO_SET_PIN (0x10)
45#define STMPE811_GPIO_CLR_PIN (0x11)
46#define STMPE811_MP_STA (0x12)
47#define STMPE811_GPIO_DIR (0x13)
48#define STMPE811_GPIO_ED (0x14)
49#define STMPE811_GPIO_RE (0x15)
50#define STMPE811_GPIO_FE (0x16)
51#define STMPE811_GPIO_ALT_FUNCTION (0x17)
52#define STMPE811_ADC_CTRL1 (0x20)
53#define STMPE811_ADC_CTRL2 (0x21)
54#define STMPE811_ADC_CAPT (0x22)
55#define STMPE811_ADC_DATA_CHO (0x30)
56#define STMPE811_ADC_DATA_CH1 (0x32)
57#define STMPE811_ADC_DATA_CH2 (0x34)
58#define STMPE811_ADC_DATA_CH3 (0x36)
59#define STMPE811_ADC_DATA_CH4 (0x38)
60#define STMPE811_ADC_DATA_CH5 (0x3A)
61#define STMPE811_ADC_DATA_CH6 (0x3C)
62#define STMPE811_ADC_DATA_CH7 (0x3E)
63#define STMPE811_TSC_CTRL (0x40)
64#define STMPE811_TSC_CFG (0x41)
65#define STMPE811_WDW_TR_X (0x42)
66#define STMPE811_WDW_TR_Y (0x44)
67#define STMPE811_WDW_BL_X (0x46)
68#define STMPE811_WDW_BL_Y (0x48)
69#define STMPE811_FIFO_TH (0x4A)
70#define STMPE811_FIFO_CTRL_STA (0x4B)
71#define STMPE811_FIFO_SIZE (0x4C)
72#define STMPE811_TSC_DATA_X (0x4D)
73#define STMPE811_TSC_DATA_Y (0x4F)
74#define STMPE811_TSC_DATA_Z (0x51)
75#define STMPE811_TSC_DATA_XYZ (0x52)
76#define STMPE811_TSC_DATA_INC (0x57)
77#define STMPE811_TSC_DATA_NON_INC (0xD7)
78#define STMPE811_TSC_FRACTION_Z (0x56)
79#define STMPE811_TSC_DATA (0x57)
80#define STMPE811_TSC_I_DRIVE (0x58)
81#define STMPE811_TSC_SHIELD (0x59)
82#define STMPE811_TEMP_CTRL (0x60)
83#define STMPE811_TEMP_DATA (0x61)
84#define STMPE811_TEMP_TH (0x62)
86
91#define STMPE811_SYS_CTRL1_HIBERNATE (1 << 0)
92#define STMPE811_SYS_CTRL1_SOFT_RESET (1 << 1)
94
99#define STMPE811_SYS_CTRL2_ADC_OFF (1 << 0)
100#define STMPE811_SYS_CTRL2_TSC_OFF (1 << 1)
101#define STMPE811_SYS_CTRL2_GPIO_OFF (1 << 2)
102#define STMPE811_SYS_CTRL2_TS_OFF (1 << 3)
104
109#define STMPE811_SPI_CFG_SPI_CLK_MOD0 (1 << 0)
110#define STMPE811_SPI_CFG_SPI_CLK_MOD1 (1 << 1)
111#define STMPE811_SPI_CFG_AUTO_INCR (1 << 2)
113
118#define STMPE811_INT_CTRL_INT_POLARITY (1 << 2)
119#define STMPE811_INT_CTRL_INT_TYPE (1 << 1)
120#define STMPE811_INT_CTRL_GLOBAL_INT (1 << 0)
122
127#define STMPE811_INT_EN_TOUCH_DET (1 << 0)
128#define STMPE811_INT_EN_FIFO_TH (1 << 1)
129#define STMPE811_INT_EN_FIFO_OFLOW (1 << 2)
130#define STMPE811_INT_EN_FIFO_FULL (1 << 3)
131#define STMPE811_INT_EN_FIFO_EMPTY (1 << 4)
132#define STMPE811_INT_EN_TEMP_SENS (1 << 5)
133#define STMPE811_INT_EN_ADC (1 << 6)
134#define STMPE811_INT_EN_GPIO (1 << 7)
136
141#define STMPE811_ADC_CTRL1_SAMPLE_TIME_POS (4)
142#define STMPE811_ADC_CTRL1_SAMPLE_TIME_36 (0b000)
143#define STMPE811_ADC_CTRL1_SAMPLE_TIME_44 (0b001)
144#define STMPE811_ADC_CTRL1_SAMPLE_TIME_56 (0b010)
145#define STMPE811_ADC_CTRL1_SAMPLE_TIME_64 (0b011)
146#define STMPE811_ADC_CTRL1_SAMPLE_TIME_80 (0b100)
147#define STMPE811_ADC_CTRL1_SAMPLE_TIME_96 (0b101)
148#define STMPE811_ADC_CTRL1_SAMPLE_TIME_124 (0b110)
149#define STMPE811_ADC_CTRL1_MOD_12B (1 << 3)
151
156#define STMPE811_ADC_CTRL2_FREQ_1_625MHZ (0b00)
157#define STMPE811_ADC_CTRL2_FREQ_3_25MHZ (0b01)
158#define STMPE811_ADC_CTRL2_FREQ_6_5MHZ (0b10)
159#define STMPE811_ADC_CTRL2_FREQ_6_5_2MHZ (0b11)
161
166#define STMPE811_TSC_CTRL_EN (1 << 0)
167#define STMPE811_TSC_CTRL_OPMOD_POS (1)
168#define STMPE811_TSC_CTRL_OPMOD_XYZ (0b000)
169#define STMPE811_TSC_CTRL_OPMOD_XY_ONLY (0b001)
170#define STMPE811_TSC_CTRL_OPMOD_X_ONLY (0b010)
171#define STMPE811_TSC_CTRL_OPMOD_Y_ONLY (0b011)
172#define STMPE811_TSC_CTRL_OPMOD_Z_ONLY (0b100)
173#define STMPE811_TSC_CTRL_TRACK_POS (4)
174#define STMPE811_TSC_CTRL_TRACK_NO (0b000)
175#define STMPE811_TSC_CTRL_TRACK_4 (0b001)
176#define STMPE811_TSC_CTRL_TRACK_8 (0b010)
177#define STMPE811_TSC_CTRL_TRACK_16 (0b011)
178#define STMPE811_TSC_CTRL_TRACK_32 (0b100)
179#define STMPE811_TSC_CTRL_TRACK_64 (0b101)
180#define STMPE811_TSC_CTRL_TRACK_92 (0b110)
181#define STMPE811_TSC_CTRL_TRACK_127 (0b111)
182#define STMPE811_TSC_CTRL_STA (1 << 7)
184
189#define STMPE811_TSC_CFG_AVE_CTRL_POS (6)
190#define STMPE811_TSC_CFG_AVE_CTRL_1 (0b00)
191#define STMPE811_TSC_CFG_AVE_CTRL_2 (0b01)
192#define STMPE811_TSC_CFG_AVE_CTRL_4 (0b10)
193#define STMPE811_TSC_CFG_AVE_CTRL_8 (0b11)
194#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_POS (3)
195#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_10US (0b000)
196#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_50US (0b001)
197#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_100US (0b010)
198#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_500US (0b011)
199#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_1MS (0b100)
200#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_5MS (0b101)
201#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_10MS (0b110)
202#define STMPE811_TSC_CFG_TOUCH_DET_DELAY_50MS (0b111)
203#define STMPE811_TSC_CFG_SETTLING_10US (0b000)
204#define STMPE811_TSC_CFG_SETTLING_100US (0b001)
205#define STMPE811_TSC_CFG_SETTLING_500US (0b010)
206#define STMPE811_TSC_CFG_SETTLING_1MS (0b011)
207#define STMPE811_TSC_CFG_SETTLING_5MS (0b100)
208#define STMPE811_TSC_CFG_SETTLING_10MS (0b101)
209#define STMPE811_TSC_CFG_SETTLING_50MS (0b110)
210#define STMPE811_TSC_CFG_SETTLING_100MS (0b111)
212
217#define STMPE811_FIFO_CTRL_STA_RESET (1 << 0)
219
224#define STMPE811_TSC_FRACTION_Z_0_8 (0b000)
225#define STMPE811_TSC_FRACTION_Z_1_7 (0b001)
226#define STMPE811_TSC_FRACTION_Z_2_6 (0b010)
227#define STMPE811_TSC_FRACTION_Z_3_5 (0b011)
228#define STMPE811_TSC_FRACTION_Z_4_4 (0b100)
229#define STMPE811_TSC_FRACTION_Z_5_3 (0b101)
230#define STMPE811_TSC_FRACTION_Z_6_2 (0b110)
231#define STMPE811_TSC_FRACTION_Z_7_1 (0b111)
233
238#define STMPE811_TSC_I_DRIVE_50MA (1 << 0)
240
241#ifdef __cplusplus
242}
243#endif
244