GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / e70k02.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright 2021 Andreas Kemnade
4  * based on works
5  * Copyright 2016 Freescale Semiconductor, Inc.
6  * and
7  * Copyright (C) 2014 Ricoh Electronic Devices Co., Ltd
8  *
9  * Netronix E70K02 board common.
10  * This board is equipped with different SoCs and
11  * found in ebook-readers like the Kobo Clara HD (with i.MX6SLL) and
12  * the Tolino Shine 3 (with i.MX6SL)
13  */
14 #include <dt-bindings/input/input.h>
15
16 / {
17         aliases {
18                 mmc0 = &usdhc1;
19                 mmc1 = &usdhc3;
20         };
21
22         chosen {
23                 stdout-path = &uart1;
24         };
25
26         gpio_keys: gpio-keys {
27                 compatible = "gpio-keys";
28
29                 key-power {
30                         label = "Power";
31                         gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;
32                         linux,code = <KEY_POWER>;
33                         wakeup-source;
34                 };
35
36                 key-cover {
37                         label = "Cover";
38                         gpios = <&gpio4 23 GPIO_ACTIVE_LOW>;
39                         linux,code = <SW_LID>;
40                         linux,input-type = <EV_SW>;
41                         wakeup-source;
42                 };
43
44                 key-pageup {
45                         label = "PageUp";
46                         gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
47                         linux,code = <KEY_PAGEUP>;
48                 };
49
50                 key-pagedown {
51                         label = "PageDown";
52                         gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
53                         linux,code = <KEY_PAGEDOWN>;
54                 };
55         };
56
57         leds: leds {
58                 compatible = "gpio-leds";
59
60                 led {
61                         label = "e70k02:white:on";
62                         gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
63                         linux,default-trigger = "timer";
64                 };
65         };
66
67         memory@80000000 {
68                 device_type = "memory";
69                 reg = <0x80000000 0x20000000>;
70         };
71
72         reg_wifi: regulator-wifi {
73                 compatible = "regulator-fixed";
74                 regulator-name = "SD3_SPWR";
75                 regulator-min-microvolt = <3000000>;
76                 regulator-max-microvolt = <3000000>;
77                 gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
78                 enable-active-high;
79         };
80
81         wifi_pwrseq: wifi-pwrseq {
82                 compatible = "mmc-pwrseq-simple";
83                 post-power-on-delay-ms = <20>;
84                 reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
85         };
86 };
87
88 &i2c1 {
89         clock-frequency = <100000>;
90         status = "okay";
91
92         lm3630a: backlight@36 {
93                 reg = <0x36>;
94                 compatible = "ti,lm3630a";
95                 enable-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
96
97                 #address-cells = <1>;
98                 #size-cells = <0>;
99
100                 led@0 {
101                         reg = <0>;
102                         led-sources = <0>;
103                         label = "backlight_warm";
104                         default-brightness = <0>;
105                         max-brightness = <255>;
106                 };
107
108                 led@1 {
109                         reg = <1>;
110                         led-sources = <1>;
111                         label = "backlight_cold";
112                         default-brightness = <0>;
113                         max-brightness = <255>;
114                 };
115         };
116
117         /* TODO: KX122 acceleration sensor a 0x1e */
118
119 };
120
121 &i2c2 {
122         clock-frequency = <100000>;
123         status = "okay";
124
125         /* TODO: CYTTSP5 touch controller at 0x24 */
126
127         /* TODO: SY7636 PMIC for E Ink at 0x62 */
128
129 };
130
131 &i2c3 {
132         clock-frequency = <100000>;
133         status = "okay";
134
135         ricoh619: pmic@32 {
136                 compatible = "ricoh,rc5t619";
137                 reg = <0x32>;
138                 interrupt-parent = <&gpio4>;
139                 interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
140                 system-power-controller;
141
142                 regulators {
143                         dcdc1_reg: DCDC1 {
144                                 regulator-name = "DCDC1";
145                                 regulator-min-microvolt = <300000>;
146                                 regulator-max-microvolt = <1875000>;
147                                 regulator-always-on;
148                                 regulator-boot-on;
149
150                                 regulator-state-mem {
151                                         regulator-on-in-suspend;
152                                         regulator-suspend-max-microvolt = <900000>;
153                                         regulator-suspend-min-microvolt = <900000>;
154                                 };
155                         };
156
157                         /* Core3_3V3 */
158                         dcdc2_reg: DCDC2 {
159                                 regulator-name = "DCDC2";
160                                 regulator-always-on;
161                                 regulator-boot-on;
162
163                                 regulator-state-mem {
164                                         regulator-on-in-suspend;
165                                         regulator-suspend-max-microvolt = <3300000>;
166                                         regulator-suspend-min-microvolt = <3300000>;
167                                 };
168                         };
169
170                         dcdc3_reg: DCDC3 {
171                                 regulator-name = "DCDC3";
172                                 regulator-min-microvolt = <300000>;
173                                 regulator-max-microvolt = <1875000>;
174                                 regulator-always-on;
175                                 regulator-boot-on;
176
177                                 regulator-state-mem {
178                                         regulator-on-in-suspend;
179                                         regulator-suspend-max-microvolt = <1140000>;
180                                         regulator-suspend-min-microvolt = <1140000>;
181                                 };
182                         };
183
184                         /* Core4_1V2 */
185                         dcdc4_reg: DCDC4 {
186                                 regulator-name = "DCDC4";
187                                 regulator-min-microvolt = <1200000>;
188                                 regulator-max-microvolt = <1200000>;
189                                 regulator-always-on;
190                                 regulator-boot-on;
191
192                                 regulator-state-mem {
193                                         regulator-on-in-suspend;
194                                         regulator-suspend-max-microvolt = <1140000>;
195                                         regulator-suspend-min-microvolt = <1140000>;
196                                 };
197                         };
198
199                         /* Core4_1V8 */
200                         dcdc5_reg: DCDC5 {
201                                 regulator-name = "DCDC5";
202                                 regulator-min-microvolt = <1800000>;
203                                 regulator-max-microvolt = <1800000>;
204                                 regulator-always-on;
205                                 regulator-boot-on;
206
207                                 regulator-state-mem {
208                                         regulator-on-in-suspend;
209                                         regulator-suspend-max-microvolt = <1700000>;
210                                         regulator-suspend-min-microvolt = <1700000>;
211                                 };
212                         };
213
214                         ldo1_reg: LDO1  {
215                                 regulator-name = "LDO1";
216                                 regulator-boot-on;
217                         };
218
219                         /* Core1_3V3 */
220                         ldo2_reg: LDO2  {
221                                 regulator-name = "LDO2";
222                                 regulator-always-on;
223                                 regulator-boot-on;
224
225                                 regulator-state-mem {
226                                         regulator-on-in-suspend;
227                                         regulator-suspend-max-microvolt = <3000000>;
228                                         regulator-suspend-min-microvolt = <3000000>;
229                                 };
230                         };
231
232                         /* Core5_1V2 */
233                         ldo3_reg: LDO3  {
234                                 regulator-name = "LDO3";
235                                 regulator-always-on;
236                                 regulator-boot-on;
237                         };
238
239                         ldo4_reg: LDO4 {
240                                 regulator-name = "LDO4";
241                                 regulator-boot-on;
242                         };
243
244                         /* SPD_3V3 */
245                         ldo5_reg: LDO5 {
246                                 regulator-name = "LDO5";
247                                 regulator-always-on;
248                                 regulator-boot-on;
249                         };
250
251                         /* DDR_0V6 */
252                         ldo6_reg: LDO6 {
253                                 regulator-name = "LDO6";
254                                 regulator-always-on;
255                                 regulator-boot-on;
256                         };
257
258                         /* VDD_PWM */
259                         ldo7_reg: LDO7 {
260                                 regulator-name = "LDO7";
261                                 regulator-boot-on;
262                         };
263
264                         /* ldo_1v8 */
265                         ldo8_reg: LDO8 {
266                                 regulator-name = "LDO8";
267                                 regulator-min-microvolt = <1800000>;
268                                 regulator-max-microvolt = <1800000>;
269                                 regulator-boot-on;
270                         };
271
272                         ldo9_reg: LDO9 {
273                                 regulator-name = "LDO9";
274                                 regulator-boot-on;
275                         };
276
277                         ldo10_reg: LDO10 {
278                                 regulator-name = "LDO10";
279                                 regulator-boot-on;
280                         };
281
282                         ldortc1_reg: LDORTC1  {
283                                 regulator-name = "LDORTC1";
284                                 regulator-boot-on;
285                         };
286                 };
287         };
288 };
289
290 &snvs_rtc {
291         /* we are using the rtc in the pmic, not disabled in imx6sll.dtsi */
292         status = "disabled";
293 };
294
295 &uart1 {
296         status = "okay";
297 };
298
299 &usdhc1 {
300         non-removable;
301         no-1-8-v;
302         status = "okay";
303 };
304
305 &usdhc3 {
306         vmmc-supply = <&reg_wifi>;
307         mmc-pwrseq = <&wifi_pwrseq>;
308         cap-power-off-card;
309         non-removable;
310         status = "okay";
311 };
312
313 &usbotg1 {
314         pinctrl-names = "default";
315         pinctrl-0 = <&pinctrl_usbotg1>;
316         disable-over-current;
317         srp-disable;
318         hnp-disable;
319         adp-disable;
320         status = "okay";
321 };