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	touchscreen@24 {
126		compatible = "cypress,tt21000";
127		reg = <0x24>;
128		pinctrl-names = "default";
129		pinctrl-0 = <&pinctrl_cyttsp5_gpio>;
130		interrupt-parent = <&gpio4>;
131		interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
132		reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>;
133		vdd-supply = <&ldo5_reg>;
134	};
135
136	/* TODO: SY7636 PMIC for E Ink at 0x62 */
137
138};
139
140&i2c3 {
141	clock-frequency = <100000>;
142	status = "okay";
143
144	ricoh619: pmic@32 {
145		compatible = "ricoh,rc5t619";
146		reg = <0x32>;
147		interrupt-parent = <&gpio4>;
148		interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
149		system-power-controller;
150
151		regulators {
152			dcdc1_reg: DCDC1 {
153				regulator-name = "DCDC1";
154				regulator-min-microvolt = <300000>;
155				regulator-max-microvolt = <1875000>;
156				regulator-always-on;
157				regulator-boot-on;
158
159				regulator-state-mem {
160					regulator-on-in-suspend;
161					regulator-suspend-max-microvolt = <900000>;
162					regulator-suspend-min-microvolt = <900000>;
163				};
164			};
165
166			/* Core3_3V3 */
167			dcdc2_reg: DCDC2 {
168				regulator-name = "DCDC2";
169				regulator-always-on;
170				regulator-boot-on;
171
172				regulator-state-mem {
173					regulator-on-in-suspend;
174					regulator-suspend-max-microvolt = <3300000>;
175					regulator-suspend-min-microvolt = <3300000>;
176				};
177			};
178
179			dcdc3_reg: DCDC3 {
180				regulator-name = "DCDC3";
181				regulator-min-microvolt = <300000>;
182				regulator-max-microvolt = <1875000>;
183				regulator-always-on;
184				regulator-boot-on;
185
186				regulator-state-mem {
187					regulator-on-in-suspend;
188					regulator-suspend-max-microvolt = <1140000>;
189					regulator-suspend-min-microvolt = <1140000>;
190				};
191			};
192
193			/* Core4_1V2 */
194			dcdc4_reg: DCDC4 {
195				regulator-name = "DCDC4";
196				regulator-min-microvolt = <1200000>;
197				regulator-max-microvolt = <1200000>;
198				regulator-always-on;
199				regulator-boot-on;
200
201				regulator-state-mem {
202					regulator-on-in-suspend;
203					regulator-suspend-max-microvolt = <1140000>;
204					regulator-suspend-min-microvolt = <1140000>;
205				};
206			};
207
208			/* Core4_1V8 */
209			dcdc5_reg: DCDC5 {
210				regulator-name = "DCDC5";
211				regulator-min-microvolt = <1800000>;
212				regulator-max-microvolt = <1800000>;
213				regulator-always-on;
214				regulator-boot-on;
215
216				regulator-state-mem {
217					regulator-on-in-suspend;
218					regulator-suspend-max-microvolt = <1700000>;
219					regulator-suspend-min-microvolt = <1700000>;
220				};
221			};
222
223			ldo1_reg: LDO1  {
224				regulator-name = "LDO1";
225				regulator-boot-on;
226			};
227
228			/* Core1_3V3 */
229			ldo2_reg: LDO2  {
230				regulator-name = "LDO2";
231				regulator-always-on;
232				regulator-boot-on;
233
234				regulator-state-mem {
235					regulator-on-in-suspend;
236					regulator-suspend-max-microvolt = <3000000>;
237					regulator-suspend-min-microvolt = <3000000>;
238				};
239			};
240
241			/* Core5_1V2 */
242			ldo3_reg: LDO3  {
243				regulator-name = "LDO3";
244				regulator-always-on;
245				regulator-boot-on;
246			};
247
248			ldo4_reg: LDO4 {
249				regulator-name = "LDO4";
250				regulator-boot-on;
251			};
252
253			/* SPD_3V3 */
254			ldo5_reg: LDO5 {
255				regulator-name = "LDO5";
256				regulator-always-on;
257				regulator-boot-on;
258			};
259
260			/* DDR_0V6 */
261			ldo6_reg: LDO6 {
262				regulator-name = "LDO6";
263				regulator-always-on;
264				regulator-boot-on;
265			};
266
267			/* VDD_PWM */
268			ldo7_reg: LDO7 {
269				regulator-name = "LDO7";
270				regulator-boot-on;
271			};
272
273			/* ldo_1v8 */
274			ldo8_reg: LDO8 {
275				regulator-name = "LDO8";
276				regulator-min-microvolt = <1800000>;
277				regulator-max-microvolt = <1800000>;
278				regulator-boot-on;
279			};
280
281			ldo9_reg: LDO9 {
282				regulator-name = "LDO9";
283				regulator-boot-on;
284			};
285
286			ldo10_reg: LDO10 {
287				regulator-name = "LDO10";
288				regulator-boot-on;
289			};
290
291			ldortc1_reg: LDORTC1  {
292				regulator-name = "LDORTC1";
293				regulator-boot-on;
294			};
295		};
296	};
297};
298
299&snvs_rtc {
300	/* we are using the rtc in the pmic, not disabled in imx6sll.dtsi */
301	status = "disabled";
302};
303
304&uart1 {
305	status = "okay";
306};
307
308&usdhc1 {
309	non-removable;
310	no-1-8-v;
311	status = "okay";
312};
313
314&usdhc3 {
315	vmmc-supply = <&reg_wifi>;
316	mmc-pwrseq = <&wifi_pwrseq>;
317	cap-power-off-card;
318	non-removable;
319	status = "okay";
320};
321
322&usbotg1 {
323	pinctrl-names = "default";
324	pinctrl-0 = <&pinctrl_usbotg1>;
325	disable-over-current;
326	srp-disable;
327	hnp-disable;
328	adp-disable;
329	status = "okay";
330};
331