xref: /linux/arch/arm/boot/dts/st/ste-href-tvk1281618-r3.dtsi (revision 724ba6751532055db75992fc6ae21c3e322e94a7)
18668223aSLinus Walleij// SPDX-License-Identifier: GPL-2.0-or-later
28668223aSLinus Walleij/*
3c9334538SLinus Walleij * Device Tree for the TVK1281618 R3 user interface board (UIB)
4c9334538SLinus Walleij * also known as the "CYTTSP board"
58668223aSLinus Walleij */
68668223aSLinus Walleij
7396e4dd8SLinus Walleij#include <dt-bindings/interrupt-controller/irq.h>
8c9334538SLinus Walleij#include <dt-bindings/input/input.h>
98668223aSLinus Walleij
108668223aSLinus Walleij/ {
11396e4dd8SLinus Walleij	gpio_keys {
12396e4dd8SLinus Walleij		compatible = "gpio-keys";
13396e4dd8SLinus Walleij		#address-cells = <1>;
14396e4dd8SLinus Walleij		#size-cells = <0>;
15396e4dd8SLinus Walleij		vdd-supply = <&ab8500_ldo_aux1_reg>;
16396e4dd8SLinus Walleij		pinctrl-names = "default";
17396e4dd8SLinus Walleij		pinctrl-0 = <&hall_tvk_mode>;
18396e4dd8SLinus Walleij
19396e4dd8SLinus Walleij		button@145 {
20396e4dd8SLinus Walleij			/* Hall sensor */
21396e4dd8SLinus Walleij			gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
22396e4dd8SLinus Walleij			linux,code = <0>; /* SW_LID */
23396e4dd8SLinus Walleij			label = "HED54XXU11 Hall Effect Sensor";
24396e4dd8SLinus Walleij		};
25396e4dd8SLinus Walleij	};
26396e4dd8SLinus Walleij
278668223aSLinus Walleij	soc {
28c9334538SLinus Walleij		i2c@80004000 {
29c9334538SLinus Walleij			tc35893@44 {
30c9334538SLinus Walleij				compatible = "toshiba,tc35893";
31c9334538SLinus Walleij				reg = <0x44>;
32c9334538SLinus Walleij				interrupt-parent = <&gpio2>;
33c9334538SLinus Walleij				interrupts = <0 IRQ_TYPE_EDGE_RISING>;
34c9334538SLinus Walleij				pinctrl-names = "default";
35c9334538SLinus Walleij				pinctrl-0 = <&tc35893_tvk_mode>;
36c9334538SLinus Walleij
37c9334538SLinus Walleij				interrupt-controller;
38c9334538SLinus Walleij				#interrupt-cells = <1>;
39c9334538SLinus Walleij				status = "disabled";
40c9334538SLinus Walleij
41c9334538SLinus Walleij				tc3589x_gpio {
42c9334538SLinus Walleij					compatible = "toshiba,tc3589x-gpio";
43c9334538SLinus Walleij					interrupts = <0>;
44c9334538SLinus Walleij
45c9334538SLinus Walleij					interrupt-controller;
46c9334538SLinus Walleij					#interrupt-cells = <2>;
47c9334538SLinus Walleij					gpio-controller;
48c9334538SLinus Walleij					#gpio-cells = <2>;
49c9334538SLinus Walleij				};
50c9334538SLinus Walleij				tc3589x_keypad {
51c9334538SLinus Walleij					compatible = "toshiba,tc3589x-keypad";
52c9334538SLinus Walleij					interrupts = <6>;
53c9334538SLinus Walleij					debounce-delay-ms = <4>;
54c9334538SLinus Walleij					keypad,num-columns = <8>;
55c9334538SLinus Walleij					keypad,num-rows = <8>;
56c9334538SLinus Walleij					linux,no-autorepeat;
57c9334538SLinus Walleij					wakeup-source;
58c9334538SLinus Walleij					linux,keymap = <MATRIX_KEY(3, 1, KEY_END)>,
59c9334538SLinus Walleij						       <MATRIX_KEY(4, 1, KEY_HOME)>,
60c9334538SLinus Walleij						       <MATRIX_KEY(6, 4, KEY_VOLUMEDOWN)>,
61c9334538SLinus Walleij						       <MATRIX_KEY(4, 2, KEY_EMAIL)>,
62c9334538SLinus Walleij						       <MATRIX_KEY(3, 3, KEY_RIGHT)>,
63c9334538SLinus Walleij						       <MATRIX_KEY(2, 5, KEY_BACKSPACE)>,
64c9334538SLinus Walleij						       <MATRIX_KEY(6, 7, KEY_MENU)>,
65c9334538SLinus Walleij						       <MATRIX_KEY(5, 0, KEY_ENTER)>,
66c9334538SLinus Walleij						       <MATRIX_KEY(4, 3, KEY_0)>,
67c9334538SLinus Walleij						       <MATRIX_KEY(3, 4, KEY_DOT)>,
68c9334538SLinus Walleij						       <MATRIX_KEY(5, 2, KEY_UP)>,
69c9334538SLinus Walleij						       <MATRIX_KEY(3, 5, KEY_DOWN)>,
70c9334538SLinus Walleij						       <MATRIX_KEY(4, 5, KEY_SEND)>,
71c9334538SLinus Walleij						       <MATRIX_KEY(0, 5, KEY_BACK)>,
72c9334538SLinus Walleij						       <MATRIX_KEY(6, 2, KEY_VOLUMEUP)>,
73c9334538SLinus Walleij						       <MATRIX_KEY(1, 3, KEY_SPACE)>,
74c9334538SLinus Walleij						       <MATRIX_KEY(7, 6, KEY_LEFT)>,
75c9334538SLinus Walleij						       <MATRIX_KEY(5, 5, KEY_SEARCH)>;
76c9334538SLinus Walleij				};
77c9334538SLinus Walleij			};
78c9334538SLinus Walleij		};
79c9334538SLinus Walleij
808668223aSLinus Walleij		i2c@80128000 {
81aeceecd4SLinus Walleij			accelerometer@19 {
82aeceecd4SLinus Walleij				compatible = "st,lsm303dlhc-accel";
838668223aSLinus Walleij				st,drdy-int-pin = <1>;
84aeceecd4SLinus Walleij				reg = <0x19>;
85aeceecd4SLinus Walleij				vdd-supply = <&ab8500_ldo_aux1_reg>;
86aeceecd4SLinus Walleij				vddio-supply = <&db8500_vsmps2_reg>;
87aeceecd4SLinus Walleij				interrupt-parent = <&gpio2>;
88aeceecd4SLinus Walleij				interrupts = <18 IRQ_TYPE_EDGE_RISING>,
89aeceecd4SLinus Walleij					     <19 IRQ_TYPE_EDGE_RISING>;
90aeceecd4SLinus Walleij				pinctrl-names = "default";
91aeceecd4SLinus Walleij				pinctrl-0 = <&accel_tvk_mode>;
92*4beba401SLinus Walleij				mount-matrix = "0", "-1", "0",
93*4beba401SLinus Walleij					       "-1", "0", "0",
94*4beba401SLinus Walleij					       "0", "0", "-1";
95aeceecd4SLinus Walleij			};
96aeceecd4SLinus Walleij			magnetometer@1e {
97aeceecd4SLinus Walleij				compatible = "st,lsm303dlm-magn";
98aeceecd4SLinus Walleij				reg = <0x1e>;
99aeceecd4SLinus Walleij				vdd-supply = <&ab8500_ldo_aux1_reg>;
100aeceecd4SLinus Walleij				vddio-supply = <&db8500_vsmps2_reg>;
101aeceecd4SLinus Walleij				// This interrupt is not properly working with the driver
102aeceecd4SLinus Walleij				// interrupt-parent = <&gpio1>;
103aeceecd4SLinus Walleij				// interrupts = <0 IRQ_TYPE_EDGE_RISING>;
104aeceecd4SLinus Walleij				pinctrl-names = "default";
105aeceecd4SLinus Walleij				pinctrl-0 = <&magn_tvk_mode>;
106aeceecd4SLinus Walleij			};
107aeceecd4SLinus Walleij			gyroscope@68 {
108aeceecd4SLinus Walleij				/* Gyroscope */
109aeceecd4SLinus Walleij				compatible = "st,l3g4200d-gyro";
110aeceecd4SLinus Walleij				reg = <0x68>;
1118668223aSLinus Walleij				vdd-supply = <&ab8500_ldo_aux1_reg>;
1128668223aSLinus Walleij				vddio-supply = <&db8500_vsmps2_reg>;
1138668223aSLinus Walleij			};
114aeceecd4SLinus Walleij			pressure@5c {
115aeceecd4SLinus Walleij				/* Barometer/pressure sensor */
116aeceecd4SLinus Walleij				compatible = "st,lps001wp-press";
117aeceecd4SLinus Walleij				reg = <0x5c>;
1188668223aSLinus Walleij				vdd-supply = <&ab8500_ldo_aux1_reg>;
1198668223aSLinus Walleij				vddio-supply = <&db8500_vsmps2_reg>;
1208668223aSLinus Walleij			};
1218668223aSLinus Walleij		};
1228668223aSLinus Walleij
123fa99edd8SLinus Walleij		spi@80111000 {
124fa99edd8SLinus Walleij			num-cs = <1>;
125fa99edd8SLinus Walleij			cs-gpios = <&gpio6 24 GPIO_ACTIVE_LOW>;
126fa99edd8SLinus Walleij			pinctrl-names = "default";
127fa99edd8SLinus Walleij			pinctrl-0 = <&spi2_default_mode>;
128fa99edd8SLinus Walleij			status = "okay";
129fa99edd8SLinus Walleij
130fa99edd8SLinus Walleij			touchscreen@0 {
131fa99edd8SLinus Walleij				compatible = "cypress,cy8ctma340";
132fa99edd8SLinus Walleij				/*
133fa99edd8SLinus Walleij				 * Actually the max frequency is 6 MHz, but over 2 MHz the
134fa99edd8SLinus Walleij				 * data rate needs to be restricted to max 2Mbps which the
135fa99edd8SLinus Walleij				 * SPI framework cannot handle.
136fa99edd8SLinus Walleij				 */
137fa99edd8SLinus Walleij				spi-max-frequency = <2000000>;
138fa99edd8SLinus Walleij				reg = <0>;
139fa99edd8SLinus Walleij				interrupt-parent = <&gpio2>;
140fa99edd8SLinus Walleij				interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
141fa99edd8SLinus Walleij				vcpin-supply = <&ab8500_ldo_aux1_reg>;
142fa99edd8SLinus Walleij				vdd-supply = <&db8500_vsmps2_reg>;
143fa99edd8SLinus Walleij				reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
144fa99edd8SLinus Walleij				touchscreen-size-x = <480>;
145fa99edd8SLinus Walleij				touchscreen-size-y = <854>;
146fa99edd8SLinus Walleij				active-interval-ms = <0>;
147fa99edd8SLinus Walleij				touch-timeout-ms = <255>;
148fa99edd8SLinus Walleij				lowpower-interval-ms = <10>;
149fa99edd8SLinus Walleij				bootloader-key = /bits/ 8 <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>;
150fa99edd8SLinus Walleij				pinctrl-names = "default";
151fa99edd8SLinus Walleij				pinctrl-0 = <&cyttsp_tvk_mode>;
152fa99edd8SLinus Walleij			};
153fa99edd8SLinus Walleij		};
154fa99edd8SLinus Walleij
1558668223aSLinus Walleij		mcde@a0350000 {
1568668223aSLinus Walleij			status = "okay";
1578668223aSLinus Walleij
1586cbf13e3SLinus Walleij			dsi@a0351000 {
1598668223aSLinus Walleij				panel {
1608668223aSLinus Walleij					compatible = "sony,acx424akp";
1618668223aSLinus Walleij					reg = <0>;
1628668223aSLinus Walleij					vddi-supply = <&ab8500_ldo_aux1_reg>;
1638668223aSLinus Walleij					reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
1648668223aSLinus Walleij				};
1658668223aSLinus Walleij			};
1668668223aSLinus Walleij		};
167aeceecd4SLinus Walleij
168aeceecd4SLinus Walleij		pinctrl {
169396e4dd8SLinus Walleij			hall {
170396e4dd8SLinus Walleij				hall_tvk_mode: hall_tvk {
171396e4dd8SLinus Walleij					tvk_cfg {
172396e4dd8SLinus Walleij						pins = "GPIO145_C13";
173396e4dd8SLinus Walleij						ste,config = <&gpio_in_pu>;
174396e4dd8SLinus Walleij					};
175396e4dd8SLinus Walleij				};
176396e4dd8SLinus Walleij			};
177c9334538SLinus Walleij			tc35893 {
178c9334538SLinus Walleij				/* IRQ from the TC35893 */
179c9334538SLinus Walleij				tc35893_tvk_mode: tc35893_tvk {
180c9334538SLinus Walleij					tvk_cfg {
181c9334538SLinus Walleij						pins = "GPIO64_F3";
182c9334538SLinus Walleij						ste,config = <&gpio_in_pu>;
183c9334538SLinus Walleij					};
184c9334538SLinus Walleij				};
185c9334538SLinus Walleij			};
186aeceecd4SLinus Walleij			accelerometer {
187aeceecd4SLinus Walleij				accel_tvk_mode: accel_tvk {
188aeceecd4SLinus Walleij					/* Accelerometer interrupt lines 1 & 2 */
189aeceecd4SLinus Walleij					tvk_cfg {
190aeceecd4SLinus Walleij						pins = "GPIO82_C1", "GPIO83_D3";
191aeceecd4SLinus Walleij						ste,config = <&gpio_in_pd>;
192aeceecd4SLinus Walleij					};
193aeceecd4SLinus Walleij				};
194aeceecd4SLinus Walleij			};
195aeceecd4SLinus Walleij			magnetometer {
196aeceecd4SLinus Walleij				magn_tvk_mode: magn_tvk {
197aeceecd4SLinus Walleij					/* GPIO 32 used for DRDY, pull this down */
198aeceecd4SLinus Walleij					tvk_cfg {
199aeceecd4SLinus Walleij						pins = "GPIO32_V2";
200aeceecd4SLinus Walleij						ste,config = <&gpio_in_pd>;
201aeceecd4SLinus Walleij					};
202aeceecd4SLinus Walleij				};
203aeceecd4SLinus Walleij			};
204fa99edd8SLinus Walleij			cyttsp {
205fa99edd8SLinus Walleij				cyttsp_tvk_mode: cyttsp_tvk {
206fa99edd8SLinus Walleij					/* Touchscreen uses GPIO84 for IRQ */
207fa99edd8SLinus Walleij					tvk_cfg1 {
208fa99edd8SLinus Walleij						pins = "GPIO84_C2";
209fa99edd8SLinus Walleij						ste,config = <&gpio_in_pu>;
210fa99edd8SLinus Walleij					};
211fa99edd8SLinus Walleij					/* GPIO143 is reset */
212fa99edd8SLinus Walleij					tvk_cfg2 {
213fa99edd8SLinus Walleij						pins = "GPIO143_D12";
214fa99edd8SLinus Walleij						ste,config = <&gpio_out_hi>;
215fa99edd8SLinus Walleij					};
216fa99edd8SLinus Walleij				};
217fa99edd8SLinus Walleij			};
218aeceecd4SLinus Walleij		};
2198668223aSLinus Walleij	};
2208668223aSLinus Walleij};
221