1*096ebfb7SJagan Teki// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*096ebfb7SJagan Teki/*
3*096ebfb7SJagan Teki * Copyright (c) 2022 Radxa Limited
4*096ebfb7SJagan Teki * Copyright (c) 2022 Amarula Solutions(India)
5*096ebfb7SJagan Teki */
6*096ebfb7SJagan Teki
7*096ebfb7SJagan Teki/dts-v1/;
8*096ebfb7SJagan Teki#include <dt-bindings/soc/rockchip,vop2.h>
9*096ebfb7SJagan Teki#include "rk3566.dtsi"
10*096ebfb7SJagan Teki#include "rk3566-radxa-cm3.dtsi"
11*096ebfb7SJagan Teki
12*096ebfb7SJagan Teki/ {
13*096ebfb7SJagan Teki	model = "Radxa Compute Module 3(CM3) IO Board";
14*096ebfb7SJagan Teki	compatible = "radxa,radxa-cm3-io", "radxa,radxa-cm3", "rockchip,rk3566";
15*096ebfb7SJagan Teki
16*096ebfb7SJagan Teki	aliases {
17*096ebfb7SJagan Teki		mmc1 = &sdmmc0;
18*096ebfb7SJagan Teki	};
19*096ebfb7SJagan Teki
20*096ebfb7SJagan Teki	chosen: chosen {
21*096ebfb7SJagan Teki		stdout-path = "serial2:1500000n8";
22*096ebfb7SJagan Teki	};
23*096ebfb7SJagan Teki
24*096ebfb7SJagan Teki	hdmi-con {
25*096ebfb7SJagan Teki		compatible = "hdmi-connector";
26*096ebfb7SJagan Teki		type = "a";
27*096ebfb7SJagan Teki
28*096ebfb7SJagan Teki		port {
29*096ebfb7SJagan Teki			hdmi_con_in: endpoint {
30*096ebfb7SJagan Teki				remote-endpoint = <&hdmi_out_con>;
31*096ebfb7SJagan Teki			};
32*096ebfb7SJagan Teki		};
33*096ebfb7SJagan Teki	};
34*096ebfb7SJagan Teki
35*096ebfb7SJagan Teki	leds {
36*096ebfb7SJagan Teki		compatible = "gpio-leds";
37*096ebfb7SJagan Teki
38*096ebfb7SJagan Teki		led-1 {
39*096ebfb7SJagan Teki			gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_LOW>;
40*096ebfb7SJagan Teki			color = <LED_COLOR_ID_GREEN>;
41*096ebfb7SJagan Teki			function = LED_FUNCTION_ACTIVITY;
42*096ebfb7SJagan Teki			linux,default-trigger = "heartbeat";
43*096ebfb7SJagan Teki			pinctrl-names = "default";
44*096ebfb7SJagan Teki			pinctrl-0 = <&pi_nled_activity>;
45*096ebfb7SJagan Teki		};
46*096ebfb7SJagan Teki	};
47*096ebfb7SJagan Teki
48*096ebfb7SJagan Teki	vcc5v0_usb30: vcc5v0-usb30-regulator {
49*096ebfb7SJagan Teki		compatible = "regulator-fixed";
50*096ebfb7SJagan Teki		regulator-name = "vcc5v0_usb30";
51*096ebfb7SJagan Teki		enable-active-high;
52*096ebfb7SJagan Teki		gpio = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>;
53*096ebfb7SJagan Teki		pinctrl-names = "default";
54*096ebfb7SJagan Teki		pinctrl-0 = <&vcc5v0_usb30_en_h>;
55*096ebfb7SJagan Teki		regulator-always-on;
56*096ebfb7SJagan Teki		regulator-min-microvolt = <5000000>;
57*096ebfb7SJagan Teki		regulator-max-microvolt = <5000000>;
58*096ebfb7SJagan Teki		vin-supply = <&vcc_sys>;
59*096ebfb7SJagan Teki	};
60*096ebfb7SJagan Teki
61*096ebfb7SJagan Teki	vcca1v8_image: vcca1v8-image-regulator {
62*096ebfb7SJagan Teki		compatible = "regulator-fixed";
63*096ebfb7SJagan Teki		regulator-name = "vcca1v8_image";
64*096ebfb7SJagan Teki		regulator-always-on;
65*096ebfb7SJagan Teki		regulator-boot-on;
66*096ebfb7SJagan Teki		regulator-min-microvolt = <1800000>;
67*096ebfb7SJagan Teki		regulator-max-microvolt = <1800000>;
68*096ebfb7SJagan Teki		vin-supply = <&vcc_1v8_p>;
69*096ebfb7SJagan Teki	};
70*096ebfb7SJagan Teki
71*096ebfb7SJagan Teki	vdda0v9_image: vdda0v9-image-regulator {
72*096ebfb7SJagan Teki		compatible = "regulator-fixed";
73*096ebfb7SJagan Teki		regulator-name = "vcca0v9_image";
74*096ebfb7SJagan Teki		regulator-always-on;
75*096ebfb7SJagan Teki		regulator-boot-on;
76*096ebfb7SJagan Teki		regulator-min-microvolt = <900000>;
77*096ebfb7SJagan Teki		regulator-max-microvolt = <900000>;
78*096ebfb7SJagan Teki		vin-supply = <&vdda_0v9>;
79*096ebfb7SJagan Teki	};
80*096ebfb7SJagan Teki};
81*096ebfb7SJagan Teki
82*096ebfb7SJagan Teki&combphy1 {
83*096ebfb7SJagan Teki	status = "okay";
84*096ebfb7SJagan Teki};
85*096ebfb7SJagan Teki
86*096ebfb7SJagan Teki&hdmi {
87*096ebfb7SJagan Teki	avdd-0v9-supply = <&vdda0v9_image>;
88*096ebfb7SJagan Teki	avdd-1v8-supply = <&vcca1v8_image>;
89*096ebfb7SJagan Teki	status = "okay";
90*096ebfb7SJagan Teki};
91*096ebfb7SJagan Teki
92*096ebfb7SJagan Teki&hdmi_in {
93*096ebfb7SJagan Teki	hdmi_in_vp0: endpoint {
94*096ebfb7SJagan Teki		remote-endpoint = <&vp0_out_hdmi>;
95*096ebfb7SJagan Teki	};
96*096ebfb7SJagan Teki};
97*096ebfb7SJagan Teki
98*096ebfb7SJagan Teki&hdmi_out {
99*096ebfb7SJagan Teki	hdmi_out_con: endpoint {
100*096ebfb7SJagan Teki		remote-endpoint = <&hdmi_con_in>;
101*096ebfb7SJagan Teki	};
102*096ebfb7SJagan Teki};
103*096ebfb7SJagan Teki
104*096ebfb7SJagan Teki&hdmi_sound {
105*096ebfb7SJagan Teki	status = "okay";
106*096ebfb7SJagan Teki};
107*096ebfb7SJagan Teki
108*096ebfb7SJagan Teki&pinctrl {
109*096ebfb7SJagan Teki	leds {
110*096ebfb7SJagan Teki		pi_nled_activity: pi-nled-activity {
111*096ebfb7SJagan Teki			rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
112*096ebfb7SJagan Teki		};
113*096ebfb7SJagan Teki	};
114*096ebfb7SJagan Teki
115*096ebfb7SJagan Teki	sdcard {
116*096ebfb7SJagan Teki		sdmmc_pwren: sdmmc-pwren {
117*096ebfb7SJagan Teki			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
118*096ebfb7SJagan Teki		};
119*096ebfb7SJagan Teki	};
120*096ebfb7SJagan Teki
121*096ebfb7SJagan Teki	usb {
122*096ebfb7SJagan Teki		vcc5v0_usb30_en_h: vcc5v0-host-en-h {
123*096ebfb7SJagan Teki			rockchip,pins = <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
124*096ebfb7SJagan Teki		};
125*096ebfb7SJagan Teki	};
126*096ebfb7SJagan Teki};
127*096ebfb7SJagan Teki
128*096ebfb7SJagan Teki&sdmmc0 {
129*096ebfb7SJagan Teki	bus-width = <4>;
130*096ebfb7SJagan Teki	cap-mmc-highspeed;
131*096ebfb7SJagan Teki	cap-sd-highspeed;
132*096ebfb7SJagan Teki	disable-wp;
133*096ebfb7SJagan Teki	vqmmc-supply = <&vccio_sd>;
134*096ebfb7SJagan Teki	pinctrl-names = "default";
135*096ebfb7SJagan Teki	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det &sdmmc0_pwren>;
136*096ebfb7SJagan Teki	status = "okay";
137*096ebfb7SJagan Teki};
138*096ebfb7SJagan Teki
139*096ebfb7SJagan Teki&uart2 {
140*096ebfb7SJagan Teki	status = "okay";
141*096ebfb7SJagan Teki};
142*096ebfb7SJagan Teki
143*096ebfb7SJagan Teki&usb2phy0_host {
144*096ebfb7SJagan Teki	phy-supply = <&vcc5v0_usb30>;
145*096ebfb7SJagan Teki	status = "okay";
146*096ebfb7SJagan Teki};
147*096ebfb7SJagan Teki
148*096ebfb7SJagan Teki&usb2phy1_host {
149*096ebfb7SJagan Teki	status = "okay";
150*096ebfb7SJagan Teki};
151*096ebfb7SJagan Teki
152*096ebfb7SJagan Teki&usb2phy1_otg {
153*096ebfb7SJagan Teki	status = "okay";
154*096ebfb7SJagan Teki};
155*096ebfb7SJagan Teki
156*096ebfb7SJagan Teki&usb_host0_ehci {
157*096ebfb7SJagan Teki	status = "okay";
158*096ebfb7SJagan Teki};
159*096ebfb7SJagan Teki
160*096ebfb7SJagan Teki&usb_host1_xhci {
161*096ebfb7SJagan Teki	status = "okay";
162*096ebfb7SJagan Teki};
163*096ebfb7SJagan Teki
164*096ebfb7SJagan Teki&vop {
165*096ebfb7SJagan Teki	assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
166*096ebfb7SJagan Teki	assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
167*096ebfb7SJagan Teki	status = "okay";
168*096ebfb7SJagan Teki};
169*096ebfb7SJagan Teki
170*096ebfb7SJagan Teki&vop_mmu {
171*096ebfb7SJagan Teki	status = "okay";
172*096ebfb7SJagan Teki};
173*096ebfb7SJagan Teki
174*096ebfb7SJagan Teki&vp0 {
175*096ebfb7SJagan Teki	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
176*096ebfb7SJagan Teki		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
177*096ebfb7SJagan Teki		remote-endpoint = <&hdmi_in_vp0>;
178*096ebfb7SJagan Teki	};
179*096ebfb7SJagan Teki};
180