diff options
Diffstat (limited to 'firmware/target/arm/imx233/lradc-imx233.h')
-rw-r--r-- | firmware/target/arm/imx233/lradc-imx233.h | 129 |
1 files changed, 34 insertions, 95 deletions
diff --git a/firmware/target/arm/imx233/lradc-imx233.h b/firmware/target/arm/imx233/lradc-imx233.h index f71843b3db..d1529f4266 100644 --- a/firmware/target/arm/imx233/lradc-imx233.h +++ b/firmware/target/arm/imx233/lradc-imx233.h | |||
@@ -28,101 +28,40 @@ | |||
28 | #include "system.h" | 28 | #include "system.h" |
29 | #include "system-target.h" | 29 | #include "system-target.h" |
30 | 30 | ||
31 | #define HW_LRADC_BASE 0x80050000 | 31 | #include "regs/regs-lradc.h" |
32 | 32 | ||
33 | #define HW_LRADC_CTRL0 (*(volatile uint32_t *)(HW_LRADC_BASE + 0x0)) | 33 | /** additional defines */ |
34 | #define HW_LRADC_CTRL0__XPLUS_ENABLE (1 << 16) | 34 | #define BP_LRADC_CTRL4_LRADCxSELECT(x) (4 * (x)) |
35 | #define HW_LRADC_CTRL0__YPLUS_ENABLE (1 << 17) | 35 | #define BM_LRADC_CTRL4_LRADCxSELECT(x) (0xf << (4 * (x))) |
36 | #define HW_LRADC_CTRL0__XMINUS_ENABLE (1 << 18) | 36 | |
37 | #define HW_LRADC_CTRL0__YMINUS_ENABLE (1 << 19) | 37 | #define BP_LRADC_CTRL1_LRADCx_IRQ(x) (x) |
38 | #define HW_LRADC_CTRL0__TOUCH_DETECT_ENABLE (1 << 20) | 38 | #define BM_LRADC_CTRL1_LRADCx_IRQ(x) (1 << (x)) |
39 | #define HW_LRADC_CTRL0__ONCHIP_GROUNDREF (1 << 21) | 39 | |
40 | #define HW_LRADC_CTRL0__SCHEDULE(x) (1 << (x)) | 40 | #define BP_LRADC_CTRL1_LRADCx_IRQ_EN(x) (16 + (x)) |
41 | 41 | #define BM_LRADC_CTRL1_LRADCx_IRQ_EN(x) (1 << (16 + (x))) | |
42 | #define HW_LRADC_CTRL1 (*(volatile uint32_t *)(HW_LRADC_BASE + 0x10)) | 42 | |
43 | #define HW_LRADC_CTRL1__LRADCx_IRQ(x) (1 << (x)) | 43 | #define LRADC_NUM_CHANNELS 8 |
44 | #define HW_LRADC_CTRL1__TOUCH_DETECT_IRQ (1 << 8) | 44 | #define LRADC_NUM_DELAYS 4 |
45 | #define HW_LRADC_CTRL1__LRADCx_IRQ_EN(x) (1 << ((x) + 16)) | 45 | |
46 | #define HW_LRADC_CTRL1__TOUCH_DETECT_IRQ_EN (1 << 24) | 46 | #define LRADC_SRC(x) (x) |
47 | 47 | #define LRADC_SRC_XPLUS LRADC_SRC(2) | |
48 | #define HW_LRADC_CTRL2 (*(volatile uint32_t *)(HW_LRADC_BASE + 0x20)) | 48 | #define LRADC_SRC_YPLUS LRADC_SRC(3) |
49 | #define HW_LRADC_CTRL2__TEMP_ISRC1_BP 4 | 49 | #define LRADC_SRC_XMINUS LRADC_SRC(4) |
50 | #define HW_LRADC_CTRL2__TEMP_ISRC1_BM 0xf0 | 50 | #define LRADC_SRC_YMINUS LRADC_SRC(5) |
51 | #define HW_LRADC_CTRL2__TEMP_ISRC0_BP 0 | 51 | #define LRADC_SRC_VDDIO LRADC_SRC(6) |
52 | #define HW_LRADC_CTRL2__TEMP_ISRC0_BM 0xf | 52 | #define LRADC_SRC_BATTERY LRADC_SRC(7) |
53 | #define HW_LRADC_CTRL2__TEMP_ISRCx_BP(x) (4 * (x)) | 53 | #define LRADC_SRC_PMOS_THIN LRADC_SRC(8) |
54 | #define HW_LRADC_CTRL2__TEMP_ISRCx_BM(x) (0xf << (4 * (x))) | 54 | #define LRADC_SRC_NMOS_THIN LRADC_SRC(9) |
55 | #define HW_LRADC_CTRL2__TEMP_ISRC__0uA 0 | 55 | #define LRADC_SRC_NMOS_THICK LRADC_SRC(10) |
56 | #define HW_LRADC_CTRL2__TEMP_ISRC__20uA 1 | 56 | #define LRADC_SRC_PMOS_THICK LRADC_SRC(11) |
57 | #define HW_LRADC_CTRL2__TEMP_ISRC__300uA 15 | 57 | #define LRADC_SRC_PMOS_THICK LRADC_SRC(11) |
58 | #define HW_LRADC_CTRL2__TEMP_SENSOR_IENABLE0 (1 << 8) | 58 | #define LRADC_SRC_USB_DP LRADC_SRC(12) |
59 | #define HW_LRADC_CTRL2__TEMP_SENSOR_IENABLE1 (1 << 9) | 59 | #define LRADC_SRC_USB_DN LRADC_SRC(13) |
60 | #define HW_LRADC_CTRL2__TEMP_SENSOR_IENABLEx(x) (1 << (8 + (x))) | 60 | #define LRADC_SRC_VBG LRADC_SRC(14) |
61 | #define HW_LRADC_CTRL2__TEMPSENSE_PWD (1 << 15) | 61 | #define LRADC_SRC_5V LRADC_SRC(15) |
62 | #define HW_LRADC_CTRL2__DIVIDE_BY_TWO(x) (1 << ((x) + 24)) | 62 | |
63 | 63 | /* frequency of the delay counter */ | |
64 | #define HW_LRADC_CTRL3 (*(volatile uint32_t *)(HW_LRADC_BASE + 0x30)) | 64 | #define LRADC_DELAY_FREQ 2000 |
65 | #define HW_LRADC_CTRL3__CYCLE_TIME_BM 0x300 | ||
66 | #define HW_LRADC_CTRL3__CYCLE_TIME_BP 8 | ||
67 | #define HW_LRADC_CTRL3__CYCLE_TIME__6MHz (0 << 8) | ||
68 | #define HW_LRADC_CTRL3__CYCLE_TIME__4MHz (1 << 8) | ||
69 | #define HW_LRADC_CTRL3__CYCLE_TIME__3MHz (2 << 8) | ||
70 | #define HW_LRADC_CTRL3__CYCLE_TIME__2MHz (3 << 8) | ||
71 | |||
72 | #define HW_LRADC_STATUS (*(volatile uint32_t *)(HW_LRADC_BASE + 0x40)) | ||
73 | #define HW_LRADC_STATUS__TOUCH_DETECT_RAW (1 << 0) | ||
74 | |||
75 | #define HW_LRADC_CHx(x) (*(volatile uint32_t *)(HW_LRADC_BASE + 0x50 + (x) * 0x10)) | ||
76 | #define HW_LRADC_CHx__NUM_SAMPLES_BM (0x1f << 24) | ||
77 | #define HW_LRADC_CHx__NUM_SAMPLES_BP 24 | ||
78 | #define HW_LRADC_CHx__ACCUMULATE 29 | ||
79 | #define HW_LRADC_CHx__VALUE_BM 0x3ffff | ||
80 | #define HW_LRADC_CHx__VALUE_BP 0 | ||
81 | |||
82 | #define HW_LRADC_DELAYx(x) (*(volatile uint32_t *)(HW_LRADC_BASE + 0xD0 + (x) * 0x10)) | ||
83 | #define HW_LRADC_DELAYx__DELAY_BP 0 | ||
84 | #define HW_LRADC_DELAYx__DELAY_BM 0x7ff | ||
85 | #define HW_LRADC_DELAYx__LOOP_COUNT_BP 11 | ||
86 | #define HW_LRADC_DELAYx__LOOP_COUNT_BM (0x1f << 11) | ||
87 | #define HW_LRADC_DELAYx__TRIGGER_DELAYS_BP 16 | ||
88 | #define HW_LRADC_DELAYx__TRIGGER_DELAYS_BM (0xf << 16) | ||
89 | #define HW_LRADC_DELAYx__KICK (1 << 20) | ||
90 | #define HW_LRADC_DELAYx__TRIGGER_LRADCS_BP 24 | ||
91 | #define HW_LRADC_DELAYx__TRIGGER_LRADCS_BM (0xff << 24) | ||
92 | |||
93 | #define HW_LRADC_CONVERSION (*(volatile uint32_t *)(HW_LRADC_BASE + 0x130)) | ||
94 | #define HW_LRADC_CONVERSION__SCALED_BATT_VOLTAGE_BP 0 | ||
95 | #define HW_LRADC_CONVERSION__SCALED_BATT_VOLTAGE_BM 0x3ff | ||
96 | #define HW_LRADC_CONVERSION__SCALE_FACTOR_BM (3 << 16) | ||
97 | #define HW_LRADC_CONVERSION__SCALE_FACTOR_BP 16 | ||
98 | #define HW_LRADC_CONVERSION__SCALE_FACTOR__LI_ION (2 << 16) | ||
99 | #define HW_LRADC_CONVERSION__AUTOMATIC (1 << 20) | ||
100 | |||
101 | #define HW_LRADC_CTRL4 (*(volatile uint32_t *)(HW_LRADC_BASE + 0x140)) | ||
102 | #define HW_LRADC_CTRL4__LRADCxSELECT_BM(x) (0xf << ((x) * 4)) | ||
103 | #define HW_LRADC_CTRL4__LRADCxSELECT_BP(x) ((x) * 4) | ||
104 | |||
105 | #define HW_LRADC_VERSION (*(volatile uint32_t *)(HW_LRADC_BASE + 0x150)) | ||
106 | |||
107 | #define HW_LRADC_NUM_CHANNELS 8 | ||
108 | #define HW_LRADC_NUM_DELAYS 4 | ||
109 | |||
110 | #define HW_LRADC_CHANNEL(x) (x) | ||
111 | #define HW_LRADC_CHANNEL_XPLUS HW_LRADC_CHANNEL(2) | ||
112 | #define HW_LRADC_CHANNEL_YPLUS HW_LRADC_CHANNEL(3) | ||
113 | #define HW_LRADC_CHANNEL_XMINUS HW_LRADC_CHANNEL(4) | ||
114 | #define HW_LRADC_CHANNEL_YMINUS HW_LRADC_CHANNEL(5) | ||
115 | #define HW_LRADC_CHANNEL_VDDIO HW_LRADC_CHANNEL(6) | ||
116 | #define HW_LRADC_CHANNEL_BATTERY HW_LRADC_CHANNEL(7) | ||
117 | #define HW_LRADC_CHANNEL_PMOS_THIN HW_LRADC_CHANNEL(8) | ||
118 | #define HW_LRADC_CHANNEL_NMOS_THIN HW_LRADC_CHANNEL(9) | ||
119 | #define HW_LRADC_CHANNEL_NMOS_THICK HW_LRADC_CHANNEL(10) | ||
120 | #define HW_LRADC_CHANNEL_PMOS_THICK HW_LRADC_CHANNEL(11) | ||
121 | #define HW_LRADC_CHANNEL_PMOS_THICK HW_LRADC_CHANNEL(11) | ||
122 | #define HW_LRADC_CHANNEL_USB_DP HW_LRADC_CHANNEL(12) | ||
123 | #define HW_LRADC_CHANNEL_USB_DN HW_LRADC_CHANNEL(13) | ||
124 | #define HW_LRADC_CHANNEL_VBG HW_LRADC_CHANNEL(14) | ||
125 | #define HW_LRADC_CHANNEL_5V HW_LRADC_CHANNEL(15) | ||
126 | 65 | ||
127 | typedef void (*lradc_irq_fn_t)(int chan); | 66 | typedef void (*lradc_irq_fn_t)(int chan); |
128 | 67 | ||