xref: /linux/arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts (revision cf9ae4a0077496e8224d68fc88e3df13dd7e5f37)
15859b5a9SPeter Geis// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
25859b5a9SPeter Geis
35859b5a9SPeter Geis/dts-v1/;
45859b5a9SPeter Geis
55859b5a9SPeter Geis#include "rk3566-soquartz.dtsi"
65859b5a9SPeter Geis
75859b5a9SPeter Geis/ {
85859b5a9SPeter Geis	model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board";
95859b5a9SPeter Geis	compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566";
105859b5a9SPeter Geis
115859b5a9SPeter Geis	/* labeled +12v in schematic */
125859b5a9SPeter Geis	vcc12v_dcin: vcc12v-dcin-regulator {
135859b5a9SPeter Geis		compatible = "regulator-fixed";
145859b5a9SPeter Geis		regulator-name = "vcc12v_dcin";
155859b5a9SPeter Geis		regulator-always-on;
165859b5a9SPeter Geis		regulator-boot-on;
175859b5a9SPeter Geis		regulator-min-microvolt = <12000000>;
185859b5a9SPeter Geis		regulator-max-microvolt = <12000000>;
195859b5a9SPeter Geis	};
205859b5a9SPeter Geis
215859b5a9SPeter Geis	/* labeled +5v in schematic */
225859b5a9SPeter Geis	vcc_5v: vcc-5v-regulator {
235859b5a9SPeter Geis		compatible = "regulator-fixed";
245859b5a9SPeter Geis		regulator-name = "vcc_5v";
255859b5a9SPeter Geis		regulator-always-on;
265859b5a9SPeter Geis		regulator-boot-on;
275859b5a9SPeter Geis		regulator-min-microvolt = <5000000>;
285859b5a9SPeter Geis		regulator-max-microvolt = <5000000>;
295859b5a9SPeter Geis		vin-supply = <&vcc12v_dcin>;
305859b5a9SPeter Geis	};
31*cf9ae4a0SNicolas Frattaroli
32*cf9ae4a0SNicolas Frattaroli	vcc_sd_pwr: vcc-sd-pwr-regulator {
33*cf9ae4a0SNicolas Frattaroli		compatible = "regulator-fixed";
34*cf9ae4a0SNicolas Frattaroli		regulator-name = "vcc_sd_pwr";
35*cf9ae4a0SNicolas Frattaroli		regulator-always-on;
36*cf9ae4a0SNicolas Frattaroli		regulator-boot-on;
37*cf9ae4a0SNicolas Frattaroli		regulator-min-microvolt = <3300000>;
38*cf9ae4a0SNicolas Frattaroli		regulator-max-microvolt = <3300000>;
39*cf9ae4a0SNicolas Frattaroli		vin-supply = <&vcc3v3_sys>;
40*cf9ae4a0SNicolas Frattaroli	};
415859b5a9SPeter Geis};
425859b5a9SPeter Geis
433736aa7eSNicolas Frattaroli/* phy for pcie */
443736aa7eSNicolas Frattaroli&combphy2 {
453736aa7eSNicolas Frattaroli	phy-supply = <&vcc3v3_sys>;
463736aa7eSNicolas Frattaroli	status = "okay";
473736aa7eSNicolas Frattaroli};
483736aa7eSNicolas Frattaroli
495859b5a9SPeter Geis&gmac1 {
505859b5a9SPeter Geis	status = "okay";
515859b5a9SPeter Geis};
525859b5a9SPeter Geis
535859b5a9SPeter Geis/*
545859b5a9SPeter Geis * i2c1 is exposed on CM1 / Module1A
555859b5a9SPeter Geis * pin 80 - SCL0 - i2c1_scl_m0, pullup to vcc3v3_pmu
565859b5a9SPeter Geis * pin 82 - SDA0 - i2c1_sda_m0, pullup to vcc3v3_pmu
575859b5a9SPeter Geis */
585859b5a9SPeter Geis&i2c1 {
595859b5a9SPeter Geis	status = "okay";
605859b5a9SPeter Geis
615859b5a9SPeter Geis	/*
625859b5a9SPeter Geis	 * the rtc interrupt is tied to PMIC_PWRON,
635859b5a9SPeter Geis	 * it will force reset the board if triggered.
645859b5a9SPeter Geis	 */
655859b5a9SPeter Geis	pcf85063: rtc@51 {
665859b5a9SPeter Geis		compatible = "nxp,pcf85063";
675859b5a9SPeter Geis		reg = <0x51>;
685859b5a9SPeter Geis	};
695859b5a9SPeter Geis};
705859b5a9SPeter Geis
715859b5a9SPeter Geis/*
725859b5a9SPeter Geis * i2c2 is exposed on CM1 / Module1A - to PI40
735859b5a9SPeter Geis * pin 56 - GPIO3 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
745859b5a9SPeter Geis * pin 58 - GPIO2 - i2c2_sda_m1, pullup to vcc_3v3
755859b5a9SPeter Geis */
765859b5a9SPeter Geis&i2c2 {
775859b5a9SPeter Geis	status = "disabled";
785859b5a9SPeter Geis};
795859b5a9SPeter Geis
805859b5a9SPeter Geis/*
815859b5a9SPeter Geis * i2c3 is exposed on CM1 / Module1A - to PI40
825859b5a9SPeter Geis * pin 35 - ID_SC(GPIO28) - i2c3_scl_m0, pullup to vcc_3v3
835859b5a9SPeter Geis * pin 36 - ID_SD(GPIO27) - i2c3_sda_m0, pullup to vcc_3v3
845859b5a9SPeter Geis */
855859b5a9SPeter Geis&i2c3 {
865859b5a9SPeter Geis	status = "disabled";
875859b5a9SPeter Geis};
885859b5a9SPeter Geis
895859b5a9SPeter Geis/*
905859b5a9SPeter Geis * i2c4 is exposed on CM2 / Module1B - to PI40
915859b5a9SPeter Geis * pin 45 - GPIO24 - i2c4_scl_m1
925859b5a9SPeter Geis * pin 47 - GPIO23 - i2c4_sda_m1
935859b5a9SPeter Geis */
945859b5a9SPeter Geis&i2c4 {
955859b5a9SPeter Geis	status = "disabled";
965859b5a9SPeter Geis};
975859b5a9SPeter Geis
985859b5a9SPeter Geis/*
995859b5a9SPeter Geis * i2s1_8ch is exposed on CM1 / Module1A - to PI40
1005859b5a9SPeter Geis * pin 24 - GPIO26 - i2s1_sdi1_m1
1015859b5a9SPeter Geis * pin 25 - GPIO21 - i2s1_sdo0_m1
1025859b5a9SPeter Geis * pin 26 - GPIO19 - i2s1_lrck_tx_m1
1035859b5a9SPeter Geis * pin 27 - GPIO20 - i2s1_sdi0_m1
1045859b5a9SPeter Geis * pin 29 - GPIO16 - i2s1_sdi3_m1
1055859b5a9SPeter Geis * pin 30 - GPIO6  - i2s1_sdi2_m1
1065859b5a9SPeter Geis * pin 40 - GPIO9  - i2s1_sdo1_m1, shared with spi3
1075859b5a9SPeter Geis * pin 41 - GPIO25 - i2s1_sdo2_m1
1085859b5a9SPeter Geis * pin 49 - GPIO18 - i2s1_sclk_tx_m1
1095859b5a9SPeter Geis * pin 50 - GPIO17 - i2s1_mclk_m1
1105859b5a9SPeter Geis * pin 56 - GPIO3  - i2s1_sdo3_m1, shared with i2c2
1115859b5a9SPeter Geis */
1125859b5a9SPeter Geis&i2s1_8ch {
1135859b5a9SPeter Geis	status = "disabled";
1145859b5a9SPeter Geis};
1155859b5a9SPeter Geis
1165859b5a9SPeter Geis&led_diy {
1175859b5a9SPeter Geis	status = "okay";
1185859b5a9SPeter Geis};
1195859b5a9SPeter Geis
1205859b5a9SPeter Geis&led_work {
1215859b5a9SPeter Geis	status = "okay";
1225859b5a9SPeter Geis};
1235859b5a9SPeter Geis
1243736aa7eSNicolas Frattaroli&pcie2x1 {
1253736aa7eSNicolas Frattaroli	vpcie3v3-supply = <&vcc_3v3>;
1263736aa7eSNicolas Frattaroli	status = "okay";
1273736aa7eSNicolas Frattaroli};
1283736aa7eSNicolas Frattaroli
1295859b5a9SPeter Geis&rgmii_phy1 {
1305859b5a9SPeter Geis	status = "okay";
1315859b5a9SPeter Geis};
1325859b5a9SPeter Geis
1335859b5a9SPeter Geis/*
1345859b5a9SPeter Geis * saradc is exposed on CM1 / Module1A - to J2
1355859b5a9SPeter Geis * pin 94 - AIN1 - saradc_vin3
1365859b5a9SPeter Geis * pin 96 - AIN0 - saradc_vin2
1375859b5a9SPeter Geis */
1385859b5a9SPeter Geis&saradc {
1395859b5a9SPeter Geis	status = "disabled";
1405859b5a9SPeter Geis};
1415859b5a9SPeter Geis
1425859b5a9SPeter Geis&sdmmc0 {
143*cf9ae4a0SNicolas Frattaroli	vmmc-supply = <&vcc_sd_pwr>;
1445859b5a9SPeter Geis	status = "okay";
1455859b5a9SPeter Geis};
1465859b5a9SPeter Geis
1475859b5a9SPeter Geis/*
1485859b5a9SPeter Geis *  spi3 is exposed on CM1 / Module1A - to PI40
1495859b5a9SPeter Geis * pin 37 - GPIO7  - spi3_cs1_m0
1505859b5a9SPeter Geis * pin 38 - GPIO11 - spi3_clk_m0
1515859b5a9SPeter Geis * pin 39 - GPIO8  - spi3_cs0_m0
1525859b5a9SPeter Geis * pin 40 - GPIO9  - spi3_miso_m0, shared with i2s1_8ch
1535859b5a9SPeter Geis * pin 44 - GPIO10 - spi3_mosi_m0
1545859b5a9SPeter Geis */
1555859b5a9SPeter Geis&spi3 {
1565859b5a9SPeter Geis	status = "disabled";
1575859b5a9SPeter Geis};
1585859b5a9SPeter Geis
1595859b5a9SPeter Geis/*
1605859b5a9SPeter Geis * uart2 is exposed on CM1 / Module1A - to PI40
1615859b5a9SPeter Geis * pin 51 - GPIO15 - uart2_rx_m0
1625859b5a9SPeter Geis * pin 55 - GPIO14 - uart2_tx_m0
1635859b5a9SPeter Geis */
1645859b5a9SPeter Geis&uart2 {
1655859b5a9SPeter Geis	status = "okay";
1665859b5a9SPeter Geis};
1675859b5a9SPeter Geis
1685859b5a9SPeter Geis/*
1695859b5a9SPeter Geis * uart7 is exposed on CM1 / Module1A - to PI40
1705859b5a9SPeter Geis * pin 46 - GPIO22 - uart7_tx_m2
1715859b5a9SPeter Geis * pin 47 - GPIO23 - uart7_rx_m2
1725859b5a9SPeter Geis */
1735859b5a9SPeter Geis&uart7 {
1745859b5a9SPeter Geis	status = "okay";
1755859b5a9SPeter Geis};
1765859b5a9SPeter Geis
1775859b5a9SPeter Geis&usb2phy0 {
1785859b5a9SPeter Geis	status = "okay";
1795859b5a9SPeter Geis};
1805859b5a9SPeter Geis
1815859b5a9SPeter Geis&usb2phy0_otg {
1825859b5a9SPeter Geis	phy-supply = <&vcc_5v>;
1835859b5a9SPeter Geis	status = "okay";
1845859b5a9SPeter Geis};
1855859b5a9SPeter Geis
1865859b5a9SPeter Geis&usb_host0_xhci {
1875859b5a9SPeter Geis	status = "okay";
1885859b5a9SPeter Geis};
1895859b5a9SPeter Geis
1905859b5a9SPeter Geis&vbus {
1915859b5a9SPeter Geis	vin-supply = <&vcc_5v>;
1925859b5a9SPeter Geis};
193