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