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