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	disable-over-current;
316	srp-disable;
317	hnp-disable;
318	adp-disable;
319	status = "okay";
320};
321