1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2023 Arm Ltd.
4 */
5
6/dts-v1/;
7
8#include "sun50i-h616.dtsi"
9#include "sun50i-h616-cpu-opp.dtsi"
10
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13
14/ {
15	model = "Transpeed 8K618-T";
16	compatible = "transpeed,8k618-t", "allwinner,sun50i-h618";
17
18	aliases {
19		ethernet1 = &sdio_wifi;
20		serial0 = &uart0;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	reg_vcc5v: vcc5v {
28		/* board wide 5V supply directly from the DC input */
29		compatible = "regulator-fixed";
30		regulator-name = "vcc-5v";
31		regulator-min-microvolt = <5000000>;
32		regulator-max-microvolt = <5000000>;
33		regulator-always-on;
34	};
35
36	reg_vcc3v3: vcc3v3 {
37		/* discrete 3.3V regulator */
38		compatible = "regulator-fixed";
39		regulator-name = "vcc-3v3";
40		regulator-min-microvolt = <3300000>;
41		regulator-max-microvolt = <3300000>;
42		regulator-always-on;
43	};
44
45	wifi_pwrseq: pwrseq {
46		compatible = "mmc-pwrseq-simple";
47		clocks = <&rtc CLK_OSC32K_FANOUT>;
48		clock-names = "ext_clock";
49		pinctrl-0 = <&x32clk_fanout_pin>;
50		pinctrl-names = "default";
51		reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
52	};
53};
54
55&cpu0 {
56	cpu-supply = <&reg_dcdc2>;
57};
58
59&ehci0 {
60	status = "okay";
61};
62
63&ehci1 {
64	status = "okay";
65};
66
67&ir {
68	status = "okay";
69};
70
71&mmc0 {
72	vmmc-supply = <&reg_dldo1>;
73	cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>;	/* PI16 */
74	bus-width = <4>;
75	status = "okay";
76};
77
78&mmc1 {
79	vmmc-supply = <&reg_dldo1>;
80	vqmmc-supply = <&reg_aldo1>;
81	mmc-pwrseq = <&wifi_pwrseq>;
82	bus-width = <4>;
83	non-removable;
84	status = "okay";
85
86	sdio_wifi: wifi@1 {
87		reg = <1>;
88	};
89};
90
91&mmc2 {
92	vmmc-supply = <&reg_dldo1>;
93	vqmmc-supply = <&reg_aldo1>;
94	bus-width = <8>;
95	non-removable;
96	cap-mmc-hw-reset;
97	mmc-ddr-1_8v;
98	mmc-hs200-1_8v;
99	status = "okay";
100};
101
102&ohci0 {
103	status = "okay";
104};
105
106&ohci1 {
107	status = "okay";
108};
109
110&r_i2c {
111	status = "okay";
112
113	axp313: pmic@36 {
114		compatible = "x-powers,axp313a";
115		reg = <0x36>;
116		#interrupt-cells = <1>;
117		interrupt-controller;
118
119		vin1-supply = <&reg_vcc5v>;
120		vin2-supply = <&reg_vcc5v>;
121		vin3-supply = <&reg_vcc5v>;
122
123		regulators {
124			reg_aldo1: aldo1 {
125				regulator-always-on;
126				regulator-min-microvolt = <1800000>;
127				regulator-max-microvolt = <1800000>;
128				regulator-name = "vcc-1v8-pll";
129			};
130
131			reg_dldo1: dldo1 {
132				regulator-always-on;
133				regulator-min-microvolt = <3300000>;
134				regulator-max-microvolt = <3300000>;
135				regulator-name = "vcc-3v3-io-mmc";
136			};
137
138			reg_dcdc1: dcdc1 {
139				regulator-always-on;
140				regulator-min-microvolt = <810000>;
141				regulator-max-microvolt = <990000>;
142				regulator-name = "vdd-gpu-sys";
143			};
144
145			reg_dcdc2: dcdc2 {
146				regulator-always-on;
147				regulator-min-microvolt = <810000>;
148				regulator-max-microvolt = <1100000>;
149				regulator-name = "vdd-cpu";
150			};
151
152			reg_dcdc3: dcdc3 {
153				regulator-always-on;
154				regulator-min-microvolt = <1360000>;
155				regulator-max-microvolt = <1360000>;
156				regulator-name = "vdd-dram";
157			};
158		};
159	};
160};
161
162&pio {
163	vcc-pc-supply = <&reg_aldo1>;
164	vcc-pg-supply = <&reg_dldo1>;
165	vcc-ph-supply = <&reg_dldo1>;
166	vcc-pi-supply = <&reg_dldo1>;
167};
168
169&uart0 {
170	pinctrl-names = "default";
171	pinctrl-0 = <&uart0_ph_pins>;
172	status = "okay";
173};
174
175&uart1 {
176	pinctrl-names = "default";
177	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
178	uart-has-rtscts;
179	status = "okay";
180};
181
182&usbotg {
183	dr_mode = "host";	/* USB A type receptable */
184	status = "okay";
185};
186
187&usbphy {
188	status = "okay";
189};
190