1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree for the TVK1281618 R3 user interface board (UIB)
4*724ba675SRob Herring * also known as the "CYTTSP board"
5*724ba675SRob Herring */
6*724ba675SRob Herring
7*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
8*724ba675SRob Herring#include <dt-bindings/input/input.h>
9*724ba675SRob Herring
10*724ba675SRob Herring/ {
11*724ba675SRob Herring	gpio_keys {
12*724ba675SRob Herring		compatible = "gpio-keys";
13*724ba675SRob Herring		#address-cells = <1>;
14*724ba675SRob Herring		#size-cells = <0>;
15*724ba675SRob Herring		vdd-supply = <&ab8500_ldo_aux1_reg>;
16*724ba675SRob Herring		pinctrl-names = "default";
17*724ba675SRob Herring		pinctrl-0 = <&hall_tvk_mode>;
18*724ba675SRob Herring
19*724ba675SRob Herring		button@145 {
20*724ba675SRob Herring			/* Hall sensor */
21*724ba675SRob Herring			gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
22*724ba675SRob Herring			linux,code = <0>; /* SW_LID */
23*724ba675SRob Herring			label = "HED54XXU11 Hall Effect Sensor";
24*724ba675SRob Herring		};
25*724ba675SRob Herring	};
26*724ba675SRob Herring
27*724ba675SRob Herring	soc {
28*724ba675SRob Herring		i2c@80004000 {
29*724ba675SRob Herring			tc35893@44 {
30*724ba675SRob Herring				compatible = "toshiba,tc35893";
31*724ba675SRob Herring				reg = <0x44>;
32*724ba675SRob Herring				interrupt-parent = <&gpio2>;
33*724ba675SRob Herring				interrupts = <0 IRQ_TYPE_EDGE_RISING>;
34*724ba675SRob Herring				pinctrl-names = "default";
35*724ba675SRob Herring				pinctrl-0 = <&tc35893_tvk_mode>;
36*724ba675SRob Herring
37*724ba675SRob Herring				interrupt-controller;
38*724ba675SRob Herring				#interrupt-cells = <1>;
39*724ba675SRob Herring				status = "disabled";
40*724ba675SRob Herring
41*724ba675SRob Herring				tc3589x_gpio {
42*724ba675SRob Herring					compatible = "toshiba,tc3589x-gpio";
43*724ba675SRob Herring					interrupts = <0>;
44*724ba675SRob Herring
45*724ba675SRob Herring					interrupt-controller;
46*724ba675SRob Herring					#interrupt-cells = <2>;
47*724ba675SRob Herring					gpio-controller;
48*724ba675SRob Herring					#gpio-cells = <2>;
49*724ba675SRob Herring				};
50*724ba675SRob Herring				tc3589x_keypad {
51*724ba675SRob Herring					compatible = "toshiba,tc3589x-keypad";
52*724ba675SRob Herring					interrupts = <6>;
53*724ba675SRob Herring					debounce-delay-ms = <4>;
54*724ba675SRob Herring					keypad,num-columns = <8>;
55*724ba675SRob Herring					keypad,num-rows = <8>;
56*724ba675SRob Herring					linux,no-autorepeat;
57*724ba675SRob Herring					wakeup-source;
58*724ba675SRob Herring					linux,keymap = <MATRIX_KEY(3, 1, KEY_END)>,
59*724ba675SRob Herring						       <MATRIX_KEY(4, 1, KEY_HOME)>,
60*724ba675SRob Herring						       <MATRIX_KEY(6, 4, KEY_VOLUMEDOWN)>,
61*724ba675SRob Herring						       <MATRIX_KEY(4, 2, KEY_EMAIL)>,
62*724ba675SRob Herring						       <MATRIX_KEY(3, 3, KEY_RIGHT)>,
63*724ba675SRob Herring						       <MATRIX_KEY(2, 5, KEY_BACKSPACE)>,
64*724ba675SRob Herring						       <MATRIX_KEY(6, 7, KEY_MENU)>,
65*724ba675SRob Herring						       <MATRIX_KEY(5, 0, KEY_ENTER)>,
66*724ba675SRob Herring						       <MATRIX_KEY(4, 3, KEY_0)>,
67*724ba675SRob Herring						       <MATRIX_KEY(3, 4, KEY_DOT)>,
68*724ba675SRob Herring						       <MATRIX_KEY(5, 2, KEY_UP)>,
69*724ba675SRob Herring						       <MATRIX_KEY(3, 5, KEY_DOWN)>,
70*724ba675SRob Herring						       <MATRIX_KEY(4, 5, KEY_SEND)>,
71*724ba675SRob Herring						       <MATRIX_KEY(0, 5, KEY_BACK)>,
72*724ba675SRob Herring						       <MATRIX_KEY(6, 2, KEY_VOLUMEUP)>,
73*724ba675SRob Herring						       <MATRIX_KEY(1, 3, KEY_SPACE)>,
74*724ba675SRob Herring						       <MATRIX_KEY(7, 6, KEY_LEFT)>,
75*724ba675SRob Herring						       <MATRIX_KEY(5, 5, KEY_SEARCH)>;
76*724ba675SRob Herring				};
77*724ba675SRob Herring			};
78*724ba675SRob Herring		};
79*724ba675SRob Herring
80*724ba675SRob Herring		i2c@80128000 {
81*724ba675SRob Herring			accelerometer@19 {
82*724ba675SRob Herring				compatible = "st,lsm303dlhc-accel";
83*724ba675SRob Herring				st,drdy-int-pin = <1>;
84*724ba675SRob Herring				reg = <0x19>;
85*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
86*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
87*724ba675SRob Herring				interrupt-parent = <&gpio2>;
88*724ba675SRob Herring				interrupts = <18 IRQ_TYPE_EDGE_RISING>,
89*724ba675SRob Herring					     <19 IRQ_TYPE_EDGE_RISING>;
90*724ba675SRob Herring				pinctrl-names = "default";
91*724ba675SRob Herring				pinctrl-0 = <&accel_tvk_mode>;
92*724ba675SRob Herring				mount-matrix = "0", "-1", "0",
93*724ba675SRob Herring					       "-1", "0", "0",
94*724ba675SRob Herring					       "0", "0", "-1";
95*724ba675SRob Herring			};
96*724ba675SRob Herring			magnetometer@1e {
97*724ba675SRob Herring				compatible = "st,lsm303dlm-magn";
98*724ba675SRob Herring				reg = <0x1e>;
99*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
100*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
101*724ba675SRob Herring				// This interrupt is not properly working with the driver
102*724ba675SRob Herring				// interrupt-parent = <&gpio1>;
103*724ba675SRob Herring				// interrupts = <0 IRQ_TYPE_EDGE_RISING>;
104*724ba675SRob Herring				pinctrl-names = "default";
105*724ba675SRob Herring				pinctrl-0 = <&magn_tvk_mode>;
106*724ba675SRob Herring			};
107*724ba675SRob Herring			gyroscope@68 {
108*724ba675SRob Herring				/* Gyroscope */
109*724ba675SRob Herring				compatible = "st,l3g4200d-gyro";
110*724ba675SRob Herring				reg = <0x68>;
111*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
112*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
113*724ba675SRob Herring			};
114*724ba675SRob Herring			pressure@5c {
115*724ba675SRob Herring				/* Barometer/pressure sensor */
116*724ba675SRob Herring				compatible = "st,lps001wp-press";
117*724ba675SRob Herring				reg = <0x5c>;
118*724ba675SRob Herring				vdd-supply = <&ab8500_ldo_aux1_reg>;
119*724ba675SRob Herring				vddio-supply = <&db8500_vsmps2_reg>;
120*724ba675SRob Herring			};
121*724ba675SRob Herring		};
122*724ba675SRob Herring
123*724ba675SRob Herring		spi@80111000 {
124*724ba675SRob Herring			num-cs = <1>;
125*724ba675SRob Herring			cs-gpios = <&gpio6 24 GPIO_ACTIVE_LOW>;
126*724ba675SRob Herring			pinctrl-names = "default";
127*724ba675SRob Herring			pinctrl-0 = <&spi2_default_mode>;
128*724ba675SRob Herring			status = "okay";
129*724ba675SRob Herring
130*724ba675SRob Herring			touchscreen@0 {
131*724ba675SRob Herring				compatible = "cypress,cy8ctma340";
132*724ba675SRob Herring				/*
133*724ba675SRob Herring				 * Actually the max frequency is 6 MHz, but over 2 MHz the
134*724ba675SRob Herring				 * data rate needs to be restricted to max 2Mbps which the
135*724ba675SRob Herring				 * SPI framework cannot handle.
136*724ba675SRob Herring				 */
137*724ba675SRob Herring				spi-max-frequency = <2000000>;
138*724ba675SRob Herring				reg = <0>;
139*724ba675SRob Herring				interrupt-parent = <&gpio2>;
140*724ba675SRob Herring				interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
141*724ba675SRob Herring				vcpin-supply = <&ab8500_ldo_aux1_reg>;
142*724ba675SRob Herring				vdd-supply = <&db8500_vsmps2_reg>;
143*724ba675SRob Herring				reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
144*724ba675SRob Herring				touchscreen-size-x = <480>;
145*724ba675SRob Herring				touchscreen-size-y = <854>;
146*724ba675SRob Herring				active-interval-ms = <0>;
147*724ba675SRob Herring				touch-timeout-ms = <255>;
148*724ba675SRob Herring				lowpower-interval-ms = <10>;
149*724ba675SRob Herring				bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
150*724ba675SRob Herring				pinctrl-names = "default";
151*724ba675SRob Herring				pinctrl-0 = <&cyttsp_tvk_mode>;
152*724ba675SRob Herring			};
153*724ba675SRob Herring		};
154*724ba675SRob Herring
155*724ba675SRob Herring		mcde@a0350000 {
156*724ba675SRob Herring			status = "okay";
157*724ba675SRob Herring
158*724ba675SRob Herring			dsi@a0351000 {
159*724ba675SRob Herring				panel {
160*724ba675SRob Herring					compatible = "sony,acx424akp";
161*724ba675SRob Herring					reg = <0>;
162*724ba675SRob Herring					vddi-supply = <&ab8500_ldo_aux1_reg>;
163*724ba675SRob Herring					reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
164*724ba675SRob Herring				};
165*724ba675SRob Herring			};
166*724ba675SRob Herring		};
167*724ba675SRob Herring
168*724ba675SRob Herring		pinctrl {
169*724ba675SRob Herring			hall {
170*724ba675SRob Herring				hall_tvk_mode: hall_tvk {
171*724ba675SRob Herring					tvk_cfg {
172*724ba675SRob Herring						pins = "GPIO145_C13";
173*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
174*724ba675SRob Herring					};
175*724ba675SRob Herring				};
176*724ba675SRob Herring			};
177*724ba675SRob Herring			tc35893 {
178*724ba675SRob Herring				/* IRQ from the TC35893 */
179*724ba675SRob Herring				tc35893_tvk_mode: tc35893_tvk {
180*724ba675SRob Herring					tvk_cfg {
181*724ba675SRob Herring						pins = "GPIO64_F3";
182*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
183*724ba675SRob Herring					};
184*724ba675SRob Herring				};
185*724ba675SRob Herring			};
186*724ba675SRob Herring			accelerometer {
187*724ba675SRob Herring				accel_tvk_mode: accel_tvk {
188*724ba675SRob Herring					/* Accelerometer interrupt lines 1 & 2 */
189*724ba675SRob Herring					tvk_cfg {
190*724ba675SRob Herring						pins = "GPIO82_C1", "GPIO83_D3";
191*724ba675SRob Herring						ste,config = <&gpio_in_pd>;
192*724ba675SRob Herring					};
193*724ba675SRob Herring				};
194*724ba675SRob Herring			};
195*724ba675SRob Herring			magnetometer {
196*724ba675SRob Herring				magn_tvk_mode: magn_tvk {
197*724ba675SRob Herring					/* GPIO 32 used for DRDY, pull this down */
198*724ba675SRob Herring					tvk_cfg {
199*724ba675SRob Herring						pins = "GPIO32_V2";
200*724ba675SRob Herring						ste,config = <&gpio_in_pd>;
201*724ba675SRob Herring					};
202*724ba675SRob Herring				};
203*724ba675SRob Herring			};
204*724ba675SRob Herring			cyttsp {
205*724ba675SRob Herring				cyttsp_tvk_mode: cyttsp_tvk {
206*724ba675SRob Herring					/* Touchscreen uses GPIO84 for IRQ */
207*724ba675SRob Herring					tvk_cfg1 {
208*724ba675SRob Herring						pins = "GPIO84_C2";
209*724ba675SRob Herring						ste,config = <&gpio_in_pu>;
210*724ba675SRob Herring					};
211*724ba675SRob Herring					/* GPIO143 is reset */
212*724ba675SRob Herring					tvk_cfg2 {
213*724ba675SRob Herring						pins = "GPIO143_D12";
214*724ba675SRob Herring						ste,config = <&gpio_out_hi>;
215*724ba675SRob Herring					};
216*724ba675SRob Herring				};
217*724ba675SRob Herring			};
218*724ba675SRob Herring		};
219*724ba675SRob Herring	};
220*724ba675SRob Herring};
221