1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
4f126890aSEmmanuel Vadot * Copyright (c) 2022 Edgeble AI Technologies Pvt. Ltd.
5f126890aSEmmanuel Vadot */
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadot/ {
8f126890aSEmmanuel Vadot	compatible = "edgeble,neural-compute-module-2", "rockchip,rv1126";
9f126890aSEmmanuel Vadot
10f126890aSEmmanuel Vadot	aliases {
11f126890aSEmmanuel Vadot		mmc0 = &emmc;
12f126890aSEmmanuel Vadot	};
13f126890aSEmmanuel Vadot
14f126890aSEmmanuel Vadot	vccio_flash: vccio-flash-regulator {
15f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
16f126890aSEmmanuel Vadot		enable-active-high;
17f126890aSEmmanuel Vadot		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
18f126890aSEmmanuel Vadot		pinctrl-names = "default";
19f126890aSEmmanuel Vadot		pinctrl-0 = <&flash_vol_sel>;
20f126890aSEmmanuel Vadot		regulator-name = "vccio_flash";
21f126890aSEmmanuel Vadot		regulator-always-on;
22f126890aSEmmanuel Vadot		regulator-boot-on;
23f126890aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
24f126890aSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
25f126890aSEmmanuel Vadot		vin-supply = <&vcc_3v3>;
26f126890aSEmmanuel Vadot	};
27f126890aSEmmanuel Vadot
28f126890aSEmmanuel Vadot	sdio_pwrseq: pwrseq-sdio {
29f126890aSEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
30f126890aSEmmanuel Vadot		clocks = <&rk809 1>;
31f126890aSEmmanuel Vadot		clock-names = "ext_clock";
32f126890aSEmmanuel Vadot		pinctrl-names = "default";
33f126890aSEmmanuel Vadot		pinctrl-0 = <&wifi_enable_h>;
34f126890aSEmmanuel Vadot		reset-gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_LOW>;
35f126890aSEmmanuel Vadot	};
36f126890aSEmmanuel Vadot};
37f126890aSEmmanuel Vadot
38f126890aSEmmanuel Vadot&cpu0 {
39f126890aSEmmanuel Vadot	cpu-supply = <&vdd_arm>;
40f126890aSEmmanuel Vadot};
41f126890aSEmmanuel Vadot
42f126890aSEmmanuel Vadot&emmc {
43f126890aSEmmanuel Vadot	bus-width = <8>;
44f126890aSEmmanuel Vadot	non-removable;
45f126890aSEmmanuel Vadot	pinctrl-names = "default";
46*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk>;
47f126890aSEmmanuel Vadot	rockchip,default-sample-phase = <90>;
48f126890aSEmmanuel Vadot	vmmc-supply = <&vcc_3v3>;
49f126890aSEmmanuel Vadot	vqmmc-supply = <&vccio_flash>;
50f126890aSEmmanuel Vadot	status = "okay";
51f126890aSEmmanuel Vadot};
52f126890aSEmmanuel Vadot
53f126890aSEmmanuel Vadot&i2c0 {
54f126890aSEmmanuel Vadot	clock-frequency = <400000>;
55f126890aSEmmanuel Vadot	status = "okay";
56f126890aSEmmanuel Vadot
57f126890aSEmmanuel Vadot	rk809: pmic@20 {
58f126890aSEmmanuel Vadot		compatible = "rockchip,rk809";
59f126890aSEmmanuel Vadot		reg = <0x20>;
60f126890aSEmmanuel Vadot		interrupt-parent = <&gpio0>;
61f126890aSEmmanuel Vadot		interrupts = <RK_PB1 IRQ_TYPE_LEVEL_LOW>;
62f126890aSEmmanuel Vadot		#clock-cells = <1>;
63f126890aSEmmanuel Vadot		clock-output-names = "rk808-clkout1", "rk808-clkout2";
64f126890aSEmmanuel Vadot		pinctrl-names = "default";
65f126890aSEmmanuel Vadot		pinctrl-0 = <&pmic_int_l>;
66f126890aSEmmanuel Vadot		rockchip,system-power-controller;
67f126890aSEmmanuel Vadot		wakeup-source;
68f126890aSEmmanuel Vadot
69f126890aSEmmanuel Vadot		vcc1-supply = <&vcc5v0_sys>;
70f126890aSEmmanuel Vadot		vcc2-supply = <&vcc5v0_sys>;
71f126890aSEmmanuel Vadot		vcc3-supply = <&vcc5v0_sys>;
72f126890aSEmmanuel Vadot		vcc4-supply = <&vcc5v0_sys>;
73f126890aSEmmanuel Vadot		vcc5-supply = <&vcc_buck5>;
74f126890aSEmmanuel Vadot		vcc6-supply = <&vcc_buck5>;
75f126890aSEmmanuel Vadot		vcc7-supply = <&vcc5v0_sys>;
76f126890aSEmmanuel Vadot		vcc8-supply = <&vcc3v3_sys>;
77f126890aSEmmanuel Vadot		vcc9-supply = <&vcc5v0_sys>;
78f126890aSEmmanuel Vadot
79f126890aSEmmanuel Vadot		regulators {
80f126890aSEmmanuel Vadot			vdd_npu_vepu: DCDC_REG1 {
81f126890aSEmmanuel Vadot				regulator-name = "vdd_npu_vepu";
82f126890aSEmmanuel Vadot				regulator-always-on;
83f126890aSEmmanuel Vadot				regulator-boot-on;
84f126890aSEmmanuel Vadot				regulator-initial-mode = <0x2>;
85f126890aSEmmanuel Vadot				regulator-min-microvolt = <650000>;
86f126890aSEmmanuel Vadot				regulator-max-microvolt = <950000>;
87f126890aSEmmanuel Vadot				regulator-ramp-delay = <6001>;
88f126890aSEmmanuel Vadot				regulator-state-mem {
89f126890aSEmmanuel Vadot					regulator-off-in-suspend;
90f126890aSEmmanuel Vadot				};
91f126890aSEmmanuel Vadot			};
92f126890aSEmmanuel Vadot
93f126890aSEmmanuel Vadot			vdd_arm: DCDC_REG2 {
94f126890aSEmmanuel Vadot				regulator-name = "vdd_arm";
95f126890aSEmmanuel Vadot				regulator-always-on;
96f126890aSEmmanuel Vadot				regulator-boot-on;
97f126890aSEmmanuel Vadot				regulator-initial-mode = <0x2>;
98f126890aSEmmanuel Vadot				regulator-min-microvolt = <725000>;
99f126890aSEmmanuel Vadot				regulator-max-microvolt = <1350000>;
100f126890aSEmmanuel Vadot				regulator-ramp-delay = <6001>;
101f126890aSEmmanuel Vadot				regulator-state-mem {
102f126890aSEmmanuel Vadot					regulator-off-in-suspend;
103f126890aSEmmanuel Vadot				};
104f126890aSEmmanuel Vadot			};
105f126890aSEmmanuel Vadot
106f126890aSEmmanuel Vadot			vcc_ddr: DCDC_REG3 {
107f126890aSEmmanuel Vadot				regulator-name = "vcc_ddr";
108f126890aSEmmanuel Vadot				regulator-always-on;
109f126890aSEmmanuel Vadot				regulator-boot-on;
110f126890aSEmmanuel Vadot				regulator-initial-mode = <0x2>;
111f126890aSEmmanuel Vadot				regulator-state-mem {
112f126890aSEmmanuel Vadot					regulator-on-in-suspend;
113f126890aSEmmanuel Vadot				};
114f126890aSEmmanuel Vadot			};
115f126890aSEmmanuel Vadot
116f126890aSEmmanuel Vadot			vcc3v3_sys: DCDC_REG4 {
117f126890aSEmmanuel Vadot				regulator-name = "vcc3v3_sys";
118f126890aSEmmanuel Vadot				regulator-always-on;
119f126890aSEmmanuel Vadot				regulator-boot-on;
120f126890aSEmmanuel Vadot				regulator-initial-mode = <0x2>;
121f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
122f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
123f126890aSEmmanuel Vadot				regulator-state-mem {
124f126890aSEmmanuel Vadot					regulator-on-in-suspend;
125f126890aSEmmanuel Vadot					regulator-suspend-microvolt = <3300000>;
126f126890aSEmmanuel Vadot				};
127f126890aSEmmanuel Vadot			};
128f126890aSEmmanuel Vadot
129f126890aSEmmanuel Vadot			vcc_buck5: DCDC_REG5 {
130f126890aSEmmanuel Vadot				regulator-name = "vcc_buck5";
131f126890aSEmmanuel Vadot				regulator-always-on;
132f126890aSEmmanuel Vadot				regulator-boot-on;
133f126890aSEmmanuel Vadot				regulator-min-microvolt = <2200000>;
134f126890aSEmmanuel Vadot				regulator-max-microvolt = <2200000>;
135f126890aSEmmanuel Vadot				regulator-state-mem {
136f126890aSEmmanuel Vadot					regulator-on-in-suspend;
137f126890aSEmmanuel Vadot					regulator-suspend-microvolt = <2200000>;
138f126890aSEmmanuel Vadot				};
139f126890aSEmmanuel Vadot			};
140f126890aSEmmanuel Vadot
141f126890aSEmmanuel Vadot			vcc_0v8: LDO_REG1 {
142f126890aSEmmanuel Vadot				regulator-name = "vcc_0v8";
143f126890aSEmmanuel Vadot				regulator-always-on;
144f126890aSEmmanuel Vadot				regulator-boot-on;
145f126890aSEmmanuel Vadot				regulator-min-microvolt = <800000>;
146f126890aSEmmanuel Vadot				regulator-max-microvolt = <800000>;
147f126890aSEmmanuel Vadot				regulator-state-mem {
148f126890aSEmmanuel Vadot					regulator-off-in-suspend;
149f126890aSEmmanuel Vadot				};
150f126890aSEmmanuel Vadot			};
151f126890aSEmmanuel Vadot
152f126890aSEmmanuel Vadot			vcc1v8_pmu: LDO_REG2 {
153f126890aSEmmanuel Vadot				regulator-name = "vcc1v8_pmu";
154f126890aSEmmanuel Vadot				regulator-always-on;
155f126890aSEmmanuel Vadot				regulator-boot-on;
156f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
157f126890aSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
158f126890aSEmmanuel Vadot				regulator-state-mem {
159f126890aSEmmanuel Vadot					regulator-on-in-suspend;
160f126890aSEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
161f126890aSEmmanuel Vadot				};
162f126890aSEmmanuel Vadot			};
163f126890aSEmmanuel Vadot
164f126890aSEmmanuel Vadot			vdd0v8_pmu: LDO_REG3 {
165f126890aSEmmanuel Vadot				regulator-name = "vcc0v8_pmu";
166f126890aSEmmanuel Vadot				regulator-always-on;
167f126890aSEmmanuel Vadot				regulator-boot-on;
168f126890aSEmmanuel Vadot				regulator-min-microvolt = <800000>;
169f126890aSEmmanuel Vadot				regulator-max-microvolt = <800000>;
170f126890aSEmmanuel Vadot				regulator-state-mem {
171f126890aSEmmanuel Vadot					regulator-on-in-suspend;
172f126890aSEmmanuel Vadot					regulator-suspend-microvolt = <800000>;
173f126890aSEmmanuel Vadot				};
174f126890aSEmmanuel Vadot			};
175f126890aSEmmanuel Vadot
176f126890aSEmmanuel Vadot			vcc_1v8: LDO_REG4 {
177f126890aSEmmanuel Vadot				regulator-name = "vcc_1v8";
178f126890aSEmmanuel Vadot				regulator-always-on;
179f126890aSEmmanuel Vadot				regulator-boot-on;
180f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
181f126890aSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
182f126890aSEmmanuel Vadot				regulator-state-mem {
183f126890aSEmmanuel Vadot					regulator-on-in-suspend;
184f126890aSEmmanuel Vadot					regulator-suspend-microvolt = <1800000>;
185f126890aSEmmanuel Vadot				};
186f126890aSEmmanuel Vadot			};
187f126890aSEmmanuel Vadot
188f126890aSEmmanuel Vadot			vcc_dovdd: LDO_REG5 {
189f126890aSEmmanuel Vadot				regulator-name = "vcc_dovdd";
190f126890aSEmmanuel Vadot				regulator-boot-on;
191f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
192f126890aSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
193f126890aSEmmanuel Vadot				regulator-state-mem {
194f126890aSEmmanuel Vadot					regulator-off-in-suspend;
195f126890aSEmmanuel Vadot				};
196f126890aSEmmanuel Vadot			};
197f126890aSEmmanuel Vadot
198f126890aSEmmanuel Vadot			vcc_dvdd: LDO_REG6 {
199f126890aSEmmanuel Vadot				regulator-name = "vcc_dvdd";
200f126890aSEmmanuel Vadot				regulator-min-microvolt = <1200000>;
201f126890aSEmmanuel Vadot				regulator-max-microvolt = <1200000>;
202f126890aSEmmanuel Vadot				regulator-state-mem {
203f126890aSEmmanuel Vadot					regulator-off-in-suspend;
204f126890aSEmmanuel Vadot				};
205f126890aSEmmanuel Vadot			};
206f126890aSEmmanuel Vadot
207f126890aSEmmanuel Vadot			vcc_avdd: LDO_REG7 {
208f126890aSEmmanuel Vadot				regulator-name = "vcc_avdd";
209f126890aSEmmanuel Vadot				regulator-min-microvolt = <2800000>;
210f126890aSEmmanuel Vadot				regulator-max-microvolt = <2800000>;
211f126890aSEmmanuel Vadot				regulator-state-mem {
212f126890aSEmmanuel Vadot					regulator-off-in-suspend;
213f126890aSEmmanuel Vadot				};
214f126890aSEmmanuel Vadot			};
215f126890aSEmmanuel Vadot
216f126890aSEmmanuel Vadot			vccio_sd: LDO_REG8 {
217f126890aSEmmanuel Vadot				regulator-name = "vccio_sd";
218f126890aSEmmanuel Vadot				regulator-always-on;
219f126890aSEmmanuel Vadot				regulator-boot-on;
220f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
221f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
222f126890aSEmmanuel Vadot				regulator-state-mem {
223f126890aSEmmanuel Vadot					regulator-off-in-suspend;
224f126890aSEmmanuel Vadot				};
225f126890aSEmmanuel Vadot			};
226f126890aSEmmanuel Vadot
227f126890aSEmmanuel Vadot			vcc3v3_sd: LDO_REG9 {
228f126890aSEmmanuel Vadot				regulator-name = "vcc3v3_sd";
229f126890aSEmmanuel Vadot				regulator-always-on;
230f126890aSEmmanuel Vadot				regulator-boot-on;
231f126890aSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
232f126890aSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
233f126890aSEmmanuel Vadot				regulator-state-mem {
234f126890aSEmmanuel Vadot					regulator-off-in-suspend;
235f126890aSEmmanuel Vadot				};
236f126890aSEmmanuel Vadot			};
237f126890aSEmmanuel Vadot
238f126890aSEmmanuel Vadot			vcc_5v0: SWITCH_REG1 {
239f126890aSEmmanuel Vadot				regulator-name = "vcc_5v0";
240f126890aSEmmanuel Vadot			};
241f126890aSEmmanuel Vadot
242f126890aSEmmanuel Vadot			vcc_3v3: SWITCH_REG2 {
243f126890aSEmmanuel Vadot				regulator-name = "vcc_3v3";
244f126890aSEmmanuel Vadot				regulator-always-on;
245f126890aSEmmanuel Vadot				regulator-boot-on;
246f126890aSEmmanuel Vadot			};
247f126890aSEmmanuel Vadot		};
248f126890aSEmmanuel Vadot	};
249f126890aSEmmanuel Vadot};
250f126890aSEmmanuel Vadot
251f126890aSEmmanuel Vadot&pinctrl {
252f126890aSEmmanuel Vadot	bt {
253f126890aSEmmanuel Vadot		bt_enable: bt-enable {
254f126890aSEmmanuel Vadot			rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
255f126890aSEmmanuel Vadot		};
256f126890aSEmmanuel Vadot	};
257f126890aSEmmanuel Vadot
258f126890aSEmmanuel Vadot	flash {
259f126890aSEmmanuel Vadot		flash_vol_sel: flash-vol-sel {
260f126890aSEmmanuel Vadot			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
261f126890aSEmmanuel Vadot		};
262f126890aSEmmanuel Vadot	};
263f126890aSEmmanuel Vadot
264f126890aSEmmanuel Vadot	pmic {
265f126890aSEmmanuel Vadot		pmic_int_l: pmic-int-l {
266f126890aSEmmanuel Vadot			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
267f126890aSEmmanuel Vadot		};
268f126890aSEmmanuel Vadot	};
269f126890aSEmmanuel Vadot
270f126890aSEmmanuel Vadot	wifi {
271f126890aSEmmanuel Vadot		wifi_enable_h: wifi-enable-h {
272f126890aSEmmanuel Vadot			rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
273f126890aSEmmanuel Vadot		};
274f126890aSEmmanuel Vadot	};
275f126890aSEmmanuel Vadot};
276f126890aSEmmanuel Vadot
277f126890aSEmmanuel Vadot&pmu_io_domains {
278f126890aSEmmanuel Vadot	pmuio0-supply = <&vcc1v8_pmu>;
279f126890aSEmmanuel Vadot	pmuio1-supply = <&vcc3v3_sys>;
280f126890aSEmmanuel Vadot	vccio1-supply = <&vccio_flash>;
281f126890aSEmmanuel Vadot	vccio2-supply = <&vccio_sd>;
282f126890aSEmmanuel Vadot	vccio3-supply = <&vcc_1v8>;
283f126890aSEmmanuel Vadot	vccio4-supply = <&vcc_dovdd>;
284f126890aSEmmanuel Vadot	vccio5-supply = <&vcc_1v8>;
285f126890aSEmmanuel Vadot	vccio6-supply = <&vcc_1v8>;
286f126890aSEmmanuel Vadot	vccio7-supply = <&vcc_dovdd>;
287f126890aSEmmanuel Vadot	status = "okay";
288f126890aSEmmanuel Vadot};
289f126890aSEmmanuel Vadot
290f126890aSEmmanuel Vadot&saradc {
291f126890aSEmmanuel Vadot	vref-supply = <&vcc_1v8>;
292f126890aSEmmanuel Vadot	status = "okay";
293f126890aSEmmanuel Vadot};
294f126890aSEmmanuel Vadot
295*aa1a8ff2SEmmanuel Vadot&sfc {
296*aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
297*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&fspi_pins>;
298*aa1a8ff2SEmmanuel Vadot	#address-cells = <1>;
299*aa1a8ff2SEmmanuel Vadot	#size-cells = <0>;
300*aa1a8ff2SEmmanuel Vadot	status = "okay";
301*aa1a8ff2SEmmanuel Vadot
302*aa1a8ff2SEmmanuel Vadot	flash@0 {
303*aa1a8ff2SEmmanuel Vadot		compatible = "jedec,spi-nor";
304*aa1a8ff2SEmmanuel Vadot		reg = <0>;
305*aa1a8ff2SEmmanuel Vadot		spi-max-frequency = <50000000>;
306*aa1a8ff2SEmmanuel Vadot		spi-rx-bus-width = <4>;
307*aa1a8ff2SEmmanuel Vadot		spi-tx-bus-width = <1>;
308*aa1a8ff2SEmmanuel Vadot	};
309*aa1a8ff2SEmmanuel Vadot};
310*aa1a8ff2SEmmanuel Vadot
311f126890aSEmmanuel Vadot&sdio {
312f126890aSEmmanuel Vadot	bus-width = <4>;
313f126890aSEmmanuel Vadot	cap-sd-highspeed;
314f126890aSEmmanuel Vadot	cap-sdio-irq;
315f126890aSEmmanuel Vadot	keep-power-in-suspend;
316f126890aSEmmanuel Vadot	max-frequency = <100000000>;
317f126890aSEmmanuel Vadot	mmc-pwrseq = <&sdio_pwrseq>;
318f126890aSEmmanuel Vadot	non-removable;
319f126890aSEmmanuel Vadot	pinctrl-names = "default";
320f126890aSEmmanuel Vadot	pinctrl-0 = <&sdmmc1_clk &sdmmc1_cmd &sdmmc1_bus4>;
321f126890aSEmmanuel Vadot	rockchip,default-sample-phase = <90>;
322f126890aSEmmanuel Vadot	sd-uhs-sdr104;
323f126890aSEmmanuel Vadot	vmmc-supply = <&vcc3v3_sys>;
324f126890aSEmmanuel Vadot	vqmmc-supply = <&vcc_1v8>;
325f126890aSEmmanuel Vadot	status = "okay";
326f126890aSEmmanuel Vadot	#address-cells = <1>;
327f126890aSEmmanuel Vadot	#size-cells = <0>;
328f126890aSEmmanuel Vadot};
329f126890aSEmmanuel Vadot
330f126890aSEmmanuel Vadot&uart0 {
331f126890aSEmmanuel Vadot	pinctrl-names = "default";
332f126890aSEmmanuel Vadot	pinctrl-0 = <&uart0_xfer &uart0_ctsn &uart0_rtsn>;
333f126890aSEmmanuel Vadot	status = "okay";
334f126890aSEmmanuel Vadot
335f126890aSEmmanuel Vadot	bluetooth {
336f126890aSEmmanuel Vadot		compatible = "qcom,qca9377-bt";
337f126890aSEmmanuel Vadot		clocks = <&rk809 1>;
338f126890aSEmmanuel Vadot		enable-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>; /* BT_RST */
339f126890aSEmmanuel Vadot		max-speed = <2000000>;
340f126890aSEmmanuel Vadot		pinctrl-names = "default";
341f126890aSEmmanuel Vadot		pinctrl-0 = <&bt_enable>;
342f126890aSEmmanuel Vadot		vddxo-supply = <&vcc3v3_sys>;
343f126890aSEmmanuel Vadot		vddio-supply = <&vcc_1v8>;
344f126890aSEmmanuel Vadot	};
345f126890aSEmmanuel Vadot};
346