xref: /linux/arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts (revision 3736aa7ecc4cd9b4abce30052bad00aba4f0362f)
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	};
315859b5a9SPeter Geis};
325859b5a9SPeter Geis
33*3736aa7eSNicolas Frattaroli/* phy for pcie */
34*3736aa7eSNicolas Frattaroli&combphy2 {
35*3736aa7eSNicolas Frattaroli	phy-supply = <&vcc3v3_sys>;
36*3736aa7eSNicolas Frattaroli	status = "okay";
37*3736aa7eSNicolas Frattaroli};
38*3736aa7eSNicolas Frattaroli
395859b5a9SPeter Geis&gmac1 {
405859b5a9SPeter Geis	status = "okay";
415859b5a9SPeter Geis};
425859b5a9SPeter Geis
435859b5a9SPeter Geis/*
445859b5a9SPeter Geis * i2c1 is exposed on CM1 / Module1A
455859b5a9SPeter Geis * pin 80 - SCL0 - i2c1_scl_m0, pullup to vcc3v3_pmu
465859b5a9SPeter Geis * pin 82 - SDA0 - i2c1_sda_m0, pullup to vcc3v3_pmu
475859b5a9SPeter Geis */
485859b5a9SPeter Geis&i2c1 {
495859b5a9SPeter Geis	status = "okay";
505859b5a9SPeter Geis
515859b5a9SPeter Geis	/*
525859b5a9SPeter Geis	 * the rtc interrupt is tied to PMIC_PWRON,
535859b5a9SPeter Geis	 * it will force reset the board if triggered.
545859b5a9SPeter Geis	 */
555859b5a9SPeter Geis	pcf85063: rtc@51 {
565859b5a9SPeter Geis		compatible = "nxp,pcf85063";
575859b5a9SPeter Geis		reg = <0x51>;
585859b5a9SPeter Geis	};
595859b5a9SPeter Geis};
605859b5a9SPeter Geis
615859b5a9SPeter Geis/*
625859b5a9SPeter Geis * i2c2 is exposed on CM1 / Module1A - to PI40
635859b5a9SPeter Geis * pin 56 - GPIO3 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
645859b5a9SPeter Geis * pin 58 - GPIO2 - i2c2_sda_m1, pullup to vcc_3v3
655859b5a9SPeter Geis */
665859b5a9SPeter Geis&i2c2 {
675859b5a9SPeter Geis	status = "disabled";
685859b5a9SPeter Geis};
695859b5a9SPeter Geis
705859b5a9SPeter Geis/*
715859b5a9SPeter Geis * i2c3 is exposed on CM1 / Module1A - to PI40
725859b5a9SPeter Geis * pin 35 - ID_SC(GPIO28) - i2c3_scl_m0, pullup to vcc_3v3
735859b5a9SPeter Geis * pin 36 - ID_SD(GPIO27) - i2c3_sda_m0, pullup to vcc_3v3
745859b5a9SPeter Geis */
755859b5a9SPeter Geis&i2c3 {
765859b5a9SPeter Geis	status = "disabled";
775859b5a9SPeter Geis};
785859b5a9SPeter Geis
795859b5a9SPeter Geis/*
805859b5a9SPeter Geis * i2c4 is exposed on CM2 / Module1B - to PI40
815859b5a9SPeter Geis * pin 45 - GPIO24 - i2c4_scl_m1
825859b5a9SPeter Geis * pin 47 - GPIO23 - i2c4_sda_m1
835859b5a9SPeter Geis */
845859b5a9SPeter Geis&i2c4 {
855859b5a9SPeter Geis	status = "disabled";
865859b5a9SPeter Geis};
875859b5a9SPeter Geis
885859b5a9SPeter Geis/*
895859b5a9SPeter Geis * i2s1_8ch is exposed on CM1 / Module1A - to PI40
905859b5a9SPeter Geis * pin 24 - GPIO26 - i2s1_sdi1_m1
915859b5a9SPeter Geis * pin 25 - GPIO21 - i2s1_sdo0_m1
925859b5a9SPeter Geis * pin 26 - GPIO19 - i2s1_lrck_tx_m1
935859b5a9SPeter Geis * pin 27 - GPIO20 - i2s1_sdi0_m1
945859b5a9SPeter Geis * pin 29 - GPIO16 - i2s1_sdi3_m1
955859b5a9SPeter Geis * pin 30 - GPIO6  - i2s1_sdi2_m1
965859b5a9SPeter Geis * pin 40 - GPIO9  - i2s1_sdo1_m1, shared with spi3
975859b5a9SPeter Geis * pin 41 - GPIO25 - i2s1_sdo2_m1
985859b5a9SPeter Geis * pin 49 - GPIO18 - i2s1_sclk_tx_m1
995859b5a9SPeter Geis * pin 50 - GPIO17 - i2s1_mclk_m1
1005859b5a9SPeter Geis * pin 56 - GPIO3  - i2s1_sdo3_m1, shared with i2c2
1015859b5a9SPeter Geis */
1025859b5a9SPeter Geis&i2s1_8ch {
1035859b5a9SPeter Geis	status = "disabled";
1045859b5a9SPeter Geis};
1055859b5a9SPeter Geis
1065859b5a9SPeter Geis&led_diy {
1075859b5a9SPeter Geis	status = "okay";
1085859b5a9SPeter Geis};
1095859b5a9SPeter Geis
1105859b5a9SPeter Geis&led_work {
1115859b5a9SPeter Geis	status = "okay";
1125859b5a9SPeter Geis};
1135859b5a9SPeter Geis
114*3736aa7eSNicolas Frattaroli&pcie2x1 {
115*3736aa7eSNicolas Frattaroli	vpcie3v3-supply = <&vcc_3v3>;
116*3736aa7eSNicolas Frattaroli	status = "okay";
117*3736aa7eSNicolas Frattaroli};
118*3736aa7eSNicolas Frattaroli
1195859b5a9SPeter Geis&rgmii_phy1 {
1205859b5a9SPeter Geis	status = "okay";
1215859b5a9SPeter Geis};
1225859b5a9SPeter Geis
1235859b5a9SPeter Geis/*
1245859b5a9SPeter Geis * saradc is exposed on CM1 / Module1A - to J2
1255859b5a9SPeter Geis * pin 94 - AIN1 - saradc_vin3
1265859b5a9SPeter Geis * pin 96 - AIN0 - saradc_vin2
1275859b5a9SPeter Geis */
1285859b5a9SPeter Geis&saradc {
1295859b5a9SPeter Geis	status = "disabled";
1305859b5a9SPeter Geis};
1315859b5a9SPeter Geis
1325859b5a9SPeter Geis&sdmmc0 {
1335859b5a9SPeter Geis	vmmc-supply = <&sdmmc_pwr>;
1345859b5a9SPeter Geis	status = "okay";
1355859b5a9SPeter Geis};
1365859b5a9SPeter Geis
1375859b5a9SPeter Geis&sdmmc_pwr {
1385859b5a9SPeter Geis	regulator-min-microvolt = <3300000>;
1395859b5a9SPeter Geis	regulator-max-microvolt = <3300000>;
1405859b5a9SPeter Geis	status = "okay";
1415859b5a9SPeter Geis};
1425859b5a9SPeter Geis
1435859b5a9SPeter Geis/*
1445859b5a9SPeter Geis *  spi3 is exposed on CM1 / Module1A - to PI40
1455859b5a9SPeter Geis * pin 37 - GPIO7  - spi3_cs1_m0
1465859b5a9SPeter Geis * pin 38 - GPIO11 - spi3_clk_m0
1475859b5a9SPeter Geis * pin 39 - GPIO8  - spi3_cs0_m0
1485859b5a9SPeter Geis * pin 40 - GPIO9  - spi3_miso_m0, shared with i2s1_8ch
1495859b5a9SPeter Geis * pin 44 - GPIO10 - spi3_mosi_m0
1505859b5a9SPeter Geis */
1515859b5a9SPeter Geis&spi3 {
1525859b5a9SPeter Geis	status = "disabled";
1535859b5a9SPeter Geis};
1545859b5a9SPeter Geis
1555859b5a9SPeter Geis/*
1565859b5a9SPeter Geis * uart2 is exposed on CM1 / Module1A - to PI40
1575859b5a9SPeter Geis * pin 51 - GPIO15 - uart2_rx_m0
1585859b5a9SPeter Geis * pin 55 - GPIO14 - uart2_tx_m0
1595859b5a9SPeter Geis */
1605859b5a9SPeter Geis&uart2 {
1615859b5a9SPeter Geis	status = "okay";
1625859b5a9SPeter Geis};
1635859b5a9SPeter Geis
1645859b5a9SPeter Geis/*
1655859b5a9SPeter Geis * uart7 is exposed on CM1 / Module1A - to PI40
1665859b5a9SPeter Geis * pin 46 - GPIO22 - uart7_tx_m2
1675859b5a9SPeter Geis * pin 47 - GPIO23 - uart7_rx_m2
1685859b5a9SPeter Geis */
1695859b5a9SPeter Geis&uart7 {
1705859b5a9SPeter Geis	status = "okay";
1715859b5a9SPeter Geis};
1725859b5a9SPeter Geis
1735859b5a9SPeter Geis&usb2phy0 {
1745859b5a9SPeter Geis	status = "okay";
1755859b5a9SPeter Geis};
1765859b5a9SPeter Geis
1775859b5a9SPeter Geis&usb2phy0_otg {
1785859b5a9SPeter Geis	phy-supply = <&vcc_5v>;
1795859b5a9SPeter Geis	status = "okay";
1805859b5a9SPeter Geis};
1815859b5a9SPeter Geis
1825859b5a9SPeter Geis&usb_host0_xhci {
1835859b5a9SPeter Geis	status = "okay";
1845859b5a9SPeter Geis};
1855859b5a9SPeter Geis
1865859b5a9SPeter Geis&vbus {
1875859b5a9SPeter Geis	vin-supply = <&vcc_5v>;
1885859b5a9SPeter Geis};
189