blob: 7448135e25f628a24afff089cda6b735c3036059 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Device Tree for the TVK1281618 R2 user interface board (UIB)
4 */
5
6#include <dt-bindings/interrupt-controller/irq.h>
7#include <dt-bindings/input/input.h>
8
9/ {
10 gpio_keys {
11 compatible = "gpio-keys";
12 #address-cells = <1>;
13 #size-cells = <0>;
14 vdd-supply = <&ab8500_ldo_aux1_reg>;
15 pinctrl-names = "default";
16 pinctrl-0 = <&prox_tvk_mode>, <&hall_tvk_mode>;
17
18 button@139 {
19 /* Proximity sensor */
20 gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
21 linux,code = <11>; /* SW_FRONT_PROXIMITY */
22 label = "SFH7741 Proximity Sensor";
23 };
24 button@145 {
25 /* Hall sensor */
26 gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
27 linux,code = <0>; /* SW_LID */
28 label = "HED54XXU11 Hall Effect Sensor";
29 };
30 };
31
32 soc {
33 i2c@80004000 {
34 tc35893@44 {
35 compatible = "toshiba,tc35893";
36 reg = <0x44>;
37 interrupt-parent = <&gpio6>;
38 interrupts = <26 IRQ_TYPE_EDGE_RISING>;
39 pinctrl-names = "default";
40 pinctrl-0 = <&tc35893_tvk_mode>;
41
42 interrupt-controller;
43 #interrupt-cells = <1>;
44 status = "disabled";
45
46 tc3589x_gpio {
47 compatible = "toshiba,tc3589x-gpio";
48 interrupts = <0>;
49
50 interrupt-controller;
51 #interrupt-cells = <2>;
52 gpio-controller;
53 #gpio-cells = <2>;
54 };
55 tc3589x_keypad {
56 compatible = "toshiba,tc3589x-keypad";
57 interrupts = <6>;
58 debounce-delay-ms = <4>;
59 keypad,num-columns = <8>;
60 keypad,num-rows = <8>;
61 linux,no-autorepeat;
62 wakeup-source;
63 linux,keymap = <MATRIX_KEY(3, 1, KEY_END)>,
64 <MATRIX_KEY(4, 1, KEY_HOME)>,
65 <MATRIX_KEY(6, 4, KEY_VOLUMEDOWN)>,
66 <MATRIX_KEY(4, 2, KEY_EMAIL)>,
67 <MATRIX_KEY(3, 3, KEY_RIGHT)>,
68 <MATRIX_KEY(2, 5, KEY_BACKSPACE)>,
69 <MATRIX_KEY(6, 7, KEY_MENU)>,
70 <MATRIX_KEY(5, 0, KEY_ENTER)>,
71 <MATRIX_KEY(4, 3, KEY_0)>,
72 <MATRIX_KEY(3, 4, KEY_DOT)>,
73 <MATRIX_KEY(5, 2, KEY_UP)>,
74 <MATRIX_KEY(3, 5, KEY_DOWN)>,
75 <MATRIX_KEY(4, 5, KEY_SEND)>,
76 <MATRIX_KEY(0, 5, KEY_BACK)>,
77 <MATRIX_KEY(6, 2, KEY_VOLUMEUP)>,
78 <MATRIX_KEY(1, 3, KEY_SPACE)>,
79 <MATRIX_KEY(7, 6, KEY_LEFT)>,
80 <MATRIX_KEY(5, 5, KEY_SEARCH)>;
81 };
82 };
83 };
84
85 i2c@80128000 {
86 accelerometer@18 {
87 /* Accelerometer */
88 compatible = "st,lsm303dlh-accel";
89 st,drdy-int-pin = <1>;
90 drive-open-drain;
91 reg = <0x18>;
92 vdd-supply = <&ab8500_ldo_aux1_reg>;
93 vddio-supply = <&db8500_vsmps2_reg>;
94 pinctrl-names = "default";
95 pinctrl-0 = <&accel_tvk_mode>;
96 /*
97 * These interrupts cannot be used: the other component
98 * ST-Micro L3D4200D gyro that is connected to the same lines
99 * cannot set its DRDY line to open drain, so it cannot be
100 * shared with other peripherals. The should be defined for
101 * the falling edge if they could be wired together.
102 *
103 * interrupts-extended =
104 * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
105 * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>;
106 */
107 mount-matrix = "0", "1", "0",
108 "1", "0", "0",
109 "0", "0", "-1";
110 };
111 magnetometer@1e {
112 /* Magnetometer */
113 compatible = "st,lsm303dlh-magn";
114 reg = <0x1e>;
115 vdd-supply = <&ab8500_ldo_aux1_reg>;
116 vddio-supply = <&db8500_vsmps2_reg>;
117 /*
118 * These interrupts cannot be used: the other component
119 * ST-Micro L3D4200D gyro that is connected to the same lines
120 * cannot set its DRDY line to open drain, so it cannot be
121 * shared with other peripherals. The should be defined for
122 * the falling edge if they could be wired together.
123 *
124 * interrupts-extended =
125 * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
126 * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>;
127 */
128 };
129 accelerometer@1c {
130 /* Accelerometer */
131 compatible = "st,lis331dl-accel";
132 st,drdy-int-pin = <1>;
133 reg = <0x1c>;
134 vdd-supply = <&ab8500_ldo_aux1_reg>;
135 vddio-supply = <&db8500_vsmps2_reg>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&accel_tvk_mode>;
138 interrupt-parent = <&gpio2>;
139 /* INT2 would need to be open drain */
140 interrupts = <18 IRQ_TYPE_EDGE_RISING>,
141 <19 IRQ_TYPE_EDGE_RISING>;
142 mount-matrix = "0", "-1", "0",
143 "-1", "0", "0",
144 "0", "0", "-1";
145 };
146 magnetometer@f {
147 /* Magnetometer */
148 compatible = "asahi-kasei,ak8974";
149 reg = <0x0f>;
150 avdd-supply = <&ab8500_ldo_aux1_reg>;
151 dvdd-supply = <&db8500_vsmps2_reg>;
152 pinctrl-names = "default";
153 pinctrl-0 = <&gyro_magn_tvk_mode>;
154 /*
155 * These interrupts cannot be used: the other component
156 * ST-Micro L3D4200D gyro that is connected to the same lines
157 * cannot set its DRDY line to open drain, so it cannot be
158 * shared with other peripherals. The should be defined for
159 * the falling edge if they could be wired together.
160 *
161 * interrupts-extended =
162 * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
163 * <&gpio0 31 IRQ_TYPE_EDGE_FALLING>;
164 */
165 };
166 gyroscope@68 {
167 /* Gyroscope */
168 compatible = "st,l3g4200d-gyro";
169 st,drdy-int-pin = <2>;
170 reg = <0x68>;
171 vdd-supply = <&ab8500_ldo_aux1_reg>;
172 vddio-supply = <&db8500_vsmps2_reg>;
173 pinctrl-names = "default";
174 pinctrl-0 = <&gyro_magn_tvk_mode>;
175 interrupts-extended =
176 <&gpio1 0 IRQ_TYPE_EDGE_RISING>,
177 <&gpio0 31 IRQ_TYPE_EDGE_RISING>;
178 };
179 pressure@5c {
180 /* Barometer/pressure sensor */
181 compatible = "st,lps001wp-press";
182 reg = <0x5c>;
183 vdd-supply = <&ab8500_ldo_aux1_reg>;
184 vddio-supply = <&db8500_vsmps2_reg>;
185 };
186 };
187 i2c@80110000 {
188 synaptics@4b {
189 /* Synaptics RMI4 TM1217 touchscreen */
190 compatible = "syna,rmi4-i2c";
191 #address-cells = <1>;
192 #size-cells = <0>;
193 reg = <0x4b>;
194 vdd-supply = <&ab8500_ldo_aux1_reg>;
195 vio-supply = <&db8500_vsmps2_reg>;
196 pinctrl-names = "default";
197 pinctrl-0 = <&synaptics_tvk_mode>;
198 interrupt-parent = <&gpio2>;
199 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
200
201 rmi4-f01@1 {
202 reg = <0x1>;
203 syna,nosleep-mode = <1>;
204 };
205 rmi4-f11@11 {
206 reg = <0x11>;
207 syna,sensor-type = <1>;
208 /* This is a landscape display */
209 touchscreen-swapped-x-y;
210 };
211 };
212 };
213 mcde@a0350000 {
214 status = "okay";
215
216 dsi@a0351000 {
217 panel {
218 compatible = "samsung,s6d16d0";
219 reg = <0>;
220 vdd1-supply = <&ab8500_ldo_aux1_reg>;
221 reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
222 };
223 };
224 };
225 pinctrl {
226 prox {
227 prox_tvk_mode: prox_tvk {
228 tvk_cfg {
229 pins = "GPIO217_AH12";
230 ste,config = <&gpio_in_pu>;
231 };
232 };
233 };
234 hall {
235 hall_tvk_mode: hall_tvk {
236 tvk_cfg {
237 pins = "GPIO145_C13";
238 ste,config = <&gpio_in_pu>;
239 };
240 };
241 };
242 tc35893 {
243 /* IRQ from the TC35893 */
244 tc35893_tvk_mode: tc35893_tvk {
245 tvk_cfg {
246 pins = "GPIO218_AH11";
247 ste,config = <&gpio_in_pu>;
248 };
249 };
250 };
251 accelerometer {
252 accel_tvk_mode: accel_tvk {
253 /* Accelerometer interrupt lines 1 & 2 */
254 tvk_cfg {
255 pins = "GPIO82_C1", "GPIO83_D3";
256 ste,config = <&gpio_in_pd>;
257 };
258 };
259 };
260 gyroscope {
261 /*
262 * These lines are shared between Gyroscope l3g400dh
263 * and AK8974 magnetometer.
264 */
265 gyro_magn_tvk_mode: gyro_magn_tvk {
266 /* GPIO 31 used for INT pull down the line */
267 tvk_cfg1 {
268 pins = "GPIO31_V3";
269 ste,config = <&gpio_in_pd>;
270 };
271 /* GPIO 32 used for DRDY, pull this down */
272 tvk_cfg2 {
273 pins = "GPIO32_V2";
274 ste,config = <&gpio_in_pd>;
275 };
276 };
277 };
278 synaptics {
279 synaptics_tvk_mode: synaptics_tvk {
280 /* Touchscreen uses GPIO 84 */
281 tvk_cfg1 {
282 pins = "GPIO84_C2";
283 ste,config = <&gpio_in_pu>;
284 };
285 };
286 };
287 };
288 };
289};