1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/gpio/gpio.h>
6#include "rk3588.dtsi"
7
8/ {
9	model = "Radxa ROCK 5 Model B";
10	compatible = "radxa,rock-5b", "rockchip,rk3588";
11
12	aliases {
13		mmc0 = &sdhci;
14		serial2 = &uart2;
15	};
16
17	chosen {
18		stdout-path = "serial2:1500000n8";
19	};
20
21	fan: pwm-fan {
22		compatible = "pwm-fan";
23		cooling-levels = <0 95 145 195 255>;
24		fan-supply = <&vcc5v0_sys>;
25		pwms = <&pwm1 0 50000 0>;
26		#cooling-cells = <2>;
27	};
28
29	sound {
30		compatible = "audio-graph-card";
31		label = "Analog";
32
33		widgets = "Microphone", "Mic Jack",
34			  "Headphone", "Headphones";
35
36		routing = "MIC2", "Mic Jack",
37			  "Headphones", "HPOL",
38			  "Headphones", "HPOR";
39
40		dais = <&i2s0_8ch_p0>;
41		hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
42		pinctrl-names = "default";
43		pinctrl-0 = <&hp_detect>;
44	};
45
46	vcc5v0_sys: vcc5v0-sys-regulator {
47		compatible = "regulator-fixed";
48		regulator-name = "vcc5v0_sys";
49		regulator-always-on;
50		regulator-boot-on;
51		regulator-min-microvolt = <5000000>;
52		regulator-max-microvolt = <5000000>;
53	};
54};
55
56&cpu_b0 {
57	cpu-supply = <&vdd_cpu_big0_s0>;
58};
59
60&cpu_b1 {
61	cpu-supply = <&vdd_cpu_big0_s0>;
62};
63
64&cpu_b2 {
65	cpu-supply = <&vdd_cpu_big1_s0>;
66};
67
68&cpu_b3 {
69	cpu-supply = <&vdd_cpu_big1_s0>;
70};
71
72&i2c0 {
73	pinctrl-names = "default";
74	pinctrl-0 = <&i2c0m2_xfer>;
75	status = "okay";
76
77	vdd_cpu_big0_s0: regulator@42 {
78		compatible = "rockchip,rk8602";
79		reg = <0x42>;
80		fcs,suspend-voltage-selector = <1>;
81		regulator-name = "vdd_cpu_big0_s0";
82		regulator-always-on;
83		regulator-boot-on;
84		regulator-min-microvolt = <550000>;
85		regulator-max-microvolt = <1050000>;
86		regulator-ramp-delay = <2300>;
87		vin-supply = <&vcc5v0_sys>;
88
89		regulator-state-mem {
90			regulator-off-in-suspend;
91		};
92	};
93
94	vdd_cpu_big1_s0: regulator@43 {
95		compatible = "rockchip,rk8603", "rockchip,rk8602";
96		reg = <0x43>;
97		fcs,suspend-voltage-selector = <1>;
98		regulator-name = "vdd_cpu_big1_s0";
99		regulator-always-on;
100		regulator-boot-on;
101		regulator-min-microvolt = <550000>;
102		regulator-max-microvolt = <1050000>;
103		regulator-ramp-delay = <2300>;
104		vin-supply = <&vcc5v0_sys>;
105
106		regulator-state-mem {
107			regulator-off-in-suspend;
108		};
109	};
110};
111
112&i2c6 {
113	status = "okay";
114
115	hym8563: rtc@51 {
116		compatible = "haoyu,hym8563";
117		reg = <0x51>;
118		#clock-cells = <0>;
119		clock-output-names = "hym8563";
120		pinctrl-names = "default";
121		pinctrl-0 = <&hym8563_int>;
122		interrupt-parent = <&gpio0>;
123		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
124		wakeup-source;
125	};
126};
127
128&i2c7 {
129	status = "okay";
130
131	es8316: audio-codec@11 {
132		compatible = "everest,es8316";
133		reg = <0x11>;
134		clocks = <&cru I2S0_8CH_MCLKOUT>;
135		clock-names = "mclk";
136		#sound-dai-cells = <0>;
137
138		port {
139			es8316_p0_0: endpoint {
140				remote-endpoint = <&i2s0_8ch_p0_0>;
141			};
142		};
143	};
144};
145
146&i2s0_8ch {
147	pinctrl-names = "default";
148	pinctrl-0 = <&i2s0_lrck
149		     &i2s0_mclk
150		     &i2s0_sclk
151		     &i2s0_sdi0
152		     &i2s0_sdo0>;
153	status = "okay";
154
155	i2s0_8ch_p0: port {
156		i2s0_8ch_p0_0: endpoint {
157			dai-format = "i2s";
158			mclk-fs = <256>;
159			remote-endpoint = <&es8316_p0_0>;
160		};
161	};
162};
163
164&pinctrl {
165	hym8563 {
166		hym8563_int: hym8563-int {
167			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
168		};
169	};
170
171	sound {
172		hp_detect: hp-detect {
173			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
174		};
175	};
176};
177
178&pwm1 {
179	status = "okay";
180};
181
182&sdhci {
183	bus-width = <8>;
184	no-sdio;
185	no-sd;
186	non-removable;
187	max-frequency = <200000000>;
188	mmc-hs400-1_8v;
189	mmc-hs400-enhanced-strobe;
190	status = "okay";
191};
192
193&uart2 {
194	pinctrl-0 = <&uart2m0_xfer>;
195	status = "okay";
196};
197