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