xref: /linux/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts (revision e78f70bad29c5ae1e1076698b690b15794e9b81e)
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&codec {
56	allwinner,audio-routing = "Line Out", "LINEOUT";
57	status = "okay";
58};
59
60&cpu0 {
61	cpu-supply = <&reg_dcdc2>;
62};
63
64&ehci0 {
65	status = "okay";
66};
67
68&ehci1 {
69	status = "okay";
70};
71
72&gpu {
73	mali-supply = <&reg_dcdc1>;
74	status = "okay";
75};
76
77&ir {
78	status = "okay";
79};
80
81&mmc0 {
82	vmmc-supply = <&reg_dldo1>;
83	cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>;	/* PI16 */
84	disable-wp;
85	bus-width = <4>;
86	status = "okay";
87};
88
89&mmc1 {
90	vmmc-supply = <&reg_dldo1>;
91	vqmmc-supply = <&reg_aldo1>;
92	mmc-pwrseq = <&wifi_pwrseq>;
93	bus-width = <4>;
94	non-removable;
95	status = "okay";
96
97	sdio_wifi: wifi@1 {
98		reg = <1>;
99	};
100};
101
102&mmc2 {
103	vmmc-supply = <&reg_dldo1>;
104	vqmmc-supply = <&reg_aldo1>;
105	bus-width = <8>;
106	non-removable;
107	cap-mmc-hw-reset;
108	mmc-ddr-1_8v;
109	mmc-hs200-1_8v;
110	status = "okay";
111};
112
113&ohci0 {
114	status = "okay";
115};
116
117&ohci1 {
118	status = "okay";
119};
120
121&r_i2c {
122	status = "okay";
123
124	axp313: pmic@36 {
125		compatible = "x-powers,axp313a";
126		reg = <0x36>;
127		#interrupt-cells = <1>;
128		interrupt-controller;
129
130		vin1-supply = <&reg_vcc5v>;
131		vin2-supply = <&reg_vcc5v>;
132		vin3-supply = <&reg_vcc5v>;
133
134		regulators {
135			reg_aldo1: aldo1 {
136				regulator-always-on;
137				regulator-min-microvolt = <1800000>;
138				regulator-max-microvolt = <1800000>;
139				regulator-name = "vcc-1v8-pll";
140			};
141
142			reg_dldo1: dldo1 {
143				regulator-always-on;
144				regulator-min-microvolt = <3300000>;
145				regulator-max-microvolt = <3300000>;
146				regulator-name = "vcc-3v3-io-mmc";
147			};
148
149			reg_dcdc1: dcdc1 {
150				regulator-always-on;
151				regulator-min-microvolt = <810000>;
152				regulator-max-microvolt = <990000>;
153				regulator-name = "vdd-gpu-sys";
154			};
155
156			reg_dcdc2: dcdc2 {
157				regulator-always-on;
158				regulator-min-microvolt = <810000>;
159				regulator-max-microvolt = <1100000>;
160				regulator-name = "vdd-cpu";
161			};
162
163			reg_dcdc3: dcdc3 {
164				regulator-always-on;
165				regulator-min-microvolt = <1360000>;
166				regulator-max-microvolt = <1360000>;
167				regulator-name = "vdd-dram";
168			};
169		};
170	};
171};
172
173&pio {
174	vcc-pc-supply = <&reg_aldo1>;
175	vcc-pg-supply = <&reg_dldo1>;
176	vcc-ph-supply = <&reg_dldo1>;
177	vcc-pi-supply = <&reg_dldo1>;
178};
179
180&uart0 {
181	pinctrl-names = "default";
182	pinctrl-0 = <&uart0_ph_pins>;
183	status = "okay";
184};
185
186&uart1 {
187	pinctrl-names = "default";
188	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
189	uart-has-rtscts;
190	status = "okay";
191};
192
193&usbotg {
194	dr_mode = "host";	/* USB A type receptable */
195	status = "okay";
196};
197
198&usbphy {
199	status = "okay";
200};
201