1afbaed73SAndrew Powers-Holmes// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2afbaed73SAndrew Powers-Holmes 3afbaed73SAndrew Powers-Holmes/dts-v1/; 4afbaed73SAndrew Powers-Holmes 5afbaed73SAndrew Powers-Holmes#include "rk3566-soquartz.dtsi" 6afbaed73SAndrew Powers-Holmes 7afbaed73SAndrew Powers-Holmes/ { 8adbc5e6bSDragan Simic model = "Pine64 SOQuartz on Model A carrier board"; 9afbaed73SAndrew Powers-Holmes compatible = "pine64,soquartz-model-a", "pine64,soquartz", "rockchip,rk3566"; 10afbaed73SAndrew Powers-Holmes 1136d9b3aeSDragan Simic aliases { 1236d9b3aeSDragan Simic ethernet0 = &gmac1; 1336d9b3aeSDragan Simic }; 1436d9b3aeSDragan Simic 15afbaed73SAndrew Powers-Holmes /* labeled DCIN_12V in schematic */ 16*5c96e633SJohan Jonker vcc12v_dcin: regulator-vcc12v-dcin { 17afbaed73SAndrew Powers-Holmes compatible = "regulator-fixed"; 18afbaed73SAndrew Powers-Holmes regulator-name = "vcc12v_dcin"; 19afbaed73SAndrew Powers-Holmes regulator-always-on; 20afbaed73SAndrew Powers-Holmes regulator-boot-on; 21afbaed73SAndrew Powers-Holmes regulator-min-microvolt = <12000000>; 22afbaed73SAndrew Powers-Holmes regulator-max-microvolt = <12000000>; 23afbaed73SAndrew Powers-Holmes }; 24afbaed73SAndrew Powers-Holmes 25*5c96e633SJohan Jonker vcc5v0_usb: regulator-vcc5v0-usb { 26afbaed73SAndrew Powers-Holmes compatible = "regulator-fixed"; 27afbaed73SAndrew Powers-Holmes regulator-name = "vcc5v0_usb"; 28afbaed73SAndrew Powers-Holmes regulator-always-on; 29afbaed73SAndrew Powers-Holmes regulator-boot-on; 30afbaed73SAndrew Powers-Holmes regulator-min-microvolt = <5000000>; 31afbaed73SAndrew Powers-Holmes regulator-max-microvolt = <5000000>; 32afbaed73SAndrew Powers-Holmes vin-supply = <&vcc12v_dcin>; 33afbaed73SAndrew Powers-Holmes }; 34afbaed73SAndrew Powers-Holmes 35afbaed73SAndrew Powers-Holmes /* 36afbaed73SAndrew Powers-Holmes * Labelled VCC3V0_SD in schematic to not conflict with PMIC 37afbaed73SAndrew Powers-Holmes * regulator, it's 3.3v in actuality 38afbaed73SAndrew Powers-Holmes */ 39*5c96e633SJohan Jonker vcc3v0_sd: regulator-vcc3v0-sd { 40afbaed73SAndrew Powers-Holmes compatible = "regulator-fixed"; 41afbaed73SAndrew Powers-Holmes regulator-name = "vcc3v0_sd"; 42afbaed73SAndrew Powers-Holmes regulator-always-on; 43afbaed73SAndrew Powers-Holmes regulator-boot-on; 44afbaed73SAndrew Powers-Holmes regulator-min-microvolt = <3300000>; 45afbaed73SAndrew Powers-Holmes regulator-max-microvolt = <3300000>; 46afbaed73SAndrew Powers-Holmes vin-supply = <&vcc3v3_sys>; 47afbaed73SAndrew Powers-Holmes }; 48afbaed73SAndrew Powers-Holmes 49*5c96e633SJohan Jonker vcc3v3_pcie: regulator-vcc3v3-pcie { 50afbaed73SAndrew Powers-Holmes compatible = "regulator-fixed"; 51afbaed73SAndrew Powers-Holmes regulator-name = "vcc3v3_pcie"; 52afbaed73SAndrew Powers-Holmes regulator-always-on; 53afbaed73SAndrew Powers-Holmes regulator-boot-on; 54afbaed73SAndrew Powers-Holmes regulator-min-microvolt = <3300000>; 55afbaed73SAndrew Powers-Holmes regulator-max-microvolt = <3300000>; 56afbaed73SAndrew Powers-Holmes vin-supply = <&vcc12v_dcin>; 57afbaed73SAndrew Powers-Holmes }; 58afbaed73SAndrew Powers-Holmes 59*5c96e633SJohan Jonker vcc12v_pcie: regulator-vcc12v-pcie { 60afbaed73SAndrew Powers-Holmes compatible = "regulator-fixed"; 61afbaed73SAndrew Powers-Holmes regulator-name = "vcc12v_pcie"; 62afbaed73SAndrew Powers-Holmes regulator-always-on; 63afbaed73SAndrew Powers-Holmes regulator-boot-on; 64afbaed73SAndrew Powers-Holmes regulator-min-microvolt = <12000000>; 65afbaed73SAndrew Powers-Holmes regulator-max-microvolt = <12000000>; 66afbaed73SAndrew Powers-Holmes vin-supply = <&vcc12v_dcin>; 67afbaed73SAndrew Powers-Holmes }; 68afbaed73SAndrew Powers-Holmes}; 69afbaed73SAndrew Powers-Holmes 70afbaed73SAndrew Powers-Holmes/* phy for pcie */ 71afbaed73SAndrew Powers-Holmes&combphy2 { 72afbaed73SAndrew Powers-Holmes phy-supply = <&vcc3v3_sys>; 73afbaed73SAndrew Powers-Holmes status = "okay"; 74afbaed73SAndrew Powers-Holmes}; 75afbaed73SAndrew Powers-Holmes 76afbaed73SAndrew Powers-Holmes&gmac1 { 77afbaed73SAndrew Powers-Holmes status = "okay"; 78afbaed73SAndrew Powers-Holmes}; 79afbaed73SAndrew Powers-Holmes 80afbaed73SAndrew Powers-Holmes/* 81afbaed73SAndrew Powers-Holmes * i2c1 is exposed on CM1 / Module1A 82afbaed73SAndrew Powers-Holmes * pin 80 - SCL0 - i2c1_scl_m0, pullup to vcc3v3_pmu 83afbaed73SAndrew Powers-Holmes * pin 82 - SDA0 - i2c1_sda_m0, pullup to vcc3v3_pmu 84afbaed73SAndrew Powers-Holmes */ 85afbaed73SAndrew Powers-Holmes&i2c1 { 86afbaed73SAndrew Powers-Holmes status = "okay"; 87afbaed73SAndrew Powers-Holmes 88afbaed73SAndrew Powers-Holmes /* 89afbaed73SAndrew Powers-Holmes * the rtc interrupt is tied to PMIC_PWRON, 90afbaed73SAndrew Powers-Holmes * it will force reset the board if triggered. 91afbaed73SAndrew Powers-Holmes */ 92afbaed73SAndrew Powers-Holmes pcf85063: rtc@51 { 93afbaed73SAndrew Powers-Holmes compatible = "nxp,pcf85063"; 94afbaed73SAndrew Powers-Holmes reg = <0x51>; 95afbaed73SAndrew Powers-Holmes }; 96afbaed73SAndrew Powers-Holmes}; 97afbaed73SAndrew Powers-Holmes 98afbaed73SAndrew Powers-Holmes/* 99afbaed73SAndrew Powers-Holmes * i2c2 is exposed on CM1 / Module1A - to PI40 100afbaed73SAndrew Powers-Holmes * pin 56 - GPIO3 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch 101afbaed73SAndrew Powers-Holmes * pin 58 - GPIO2 - i2c2_sda_m1, pullup to vcc_3v3 102afbaed73SAndrew Powers-Holmes */ 103afbaed73SAndrew Powers-Holmes&i2c2 { 104afbaed73SAndrew Powers-Holmes status = "disabled"; 105afbaed73SAndrew Powers-Holmes}; 106afbaed73SAndrew Powers-Holmes 107afbaed73SAndrew Powers-Holmes/* 108afbaed73SAndrew Powers-Holmes * i2c3 is exposed on CM1 / Module1A - to PI40 109afbaed73SAndrew Powers-Holmes * pin 35 - ID_SC(GPIO28) - i2c3_scl_m0, pullup to vcc_3v3 110afbaed73SAndrew Powers-Holmes * pin 36 - ID_SD(GPIO27) - i2c3_sda_m0, pullup to vcc_3v3 111afbaed73SAndrew Powers-Holmes */ 112afbaed73SAndrew Powers-Holmes&i2c3 { 113afbaed73SAndrew Powers-Holmes status = "disabled"; 114afbaed73SAndrew Powers-Holmes}; 115afbaed73SAndrew Powers-Holmes 116afbaed73SAndrew Powers-Holmes/* 117afbaed73SAndrew Powers-Holmes * i2c4 is exposed on CM2 / Module1B - to PI40 118afbaed73SAndrew Powers-Holmes * pin 45 - GPIO24 - i2c4_scl_m1 119afbaed73SAndrew Powers-Holmes * pin 47 - GPIO23 - i2c4_sda_m1 120afbaed73SAndrew Powers-Holmes */ 121afbaed73SAndrew Powers-Holmes&i2c4 { 122afbaed73SAndrew Powers-Holmes status = "disabled"; 123afbaed73SAndrew Powers-Holmes}; 124afbaed73SAndrew Powers-Holmes 125afbaed73SAndrew Powers-Holmes/* 126afbaed73SAndrew Powers-Holmes * i2s1_8ch is exposed on CM1 / Module1A - to PI40 127afbaed73SAndrew Powers-Holmes * pin 24 - GPIO26 - i2s1_sdi1_m1 128afbaed73SAndrew Powers-Holmes * pin 25 - GPIO21 - i2s1_sdo0_m1 129afbaed73SAndrew Powers-Holmes * pin 26 - GPIO19 - i2s1_lrck_tx_m1 130afbaed73SAndrew Powers-Holmes * pin 27 - GPIO20 - i2s1_sdi0_m1 131afbaed73SAndrew Powers-Holmes * pin 29 - GPIO16 - i2s1_sdi3_m1 132afbaed73SAndrew Powers-Holmes * pin 30 - GPIO6 - i2s1_sdi2_m1 133afbaed73SAndrew Powers-Holmes * pin 40 - GPIO9 - i2s1_sdo1_m1, shared with spi3 134afbaed73SAndrew Powers-Holmes * pin 41 - GPIO25 - i2s1_sdo2_m1 135afbaed73SAndrew Powers-Holmes * pin 49 - GPIO18 - i2s1_sclk_tx_m1 136afbaed73SAndrew Powers-Holmes * pin 50 - GPIO17 - i2s1_mclk_m1 137afbaed73SAndrew Powers-Holmes * pin 56 - GPIO3 - i2s1_sdo3_m1, shared with i2c2 138afbaed73SAndrew Powers-Holmes */ 139afbaed73SAndrew Powers-Holmes&i2s1_8ch { 140afbaed73SAndrew Powers-Holmes status = "disabled"; 141afbaed73SAndrew Powers-Holmes}; 142afbaed73SAndrew Powers-Holmes 143afbaed73SAndrew Powers-Holmes&led_diy { 144afbaed73SAndrew Powers-Holmes status = "okay"; 145afbaed73SAndrew Powers-Holmes}; 146afbaed73SAndrew Powers-Holmes 147afbaed73SAndrew Powers-Holmes&led_work { 148afbaed73SAndrew Powers-Holmes status = "okay"; 149afbaed73SAndrew Powers-Holmes}; 150afbaed73SAndrew Powers-Holmes 151afbaed73SAndrew Powers-Holmes&pcie2x1 { 152afbaed73SAndrew Powers-Holmes vpcie3v3-supply = <&vcc3v3_pcie>; 153afbaed73SAndrew Powers-Holmes status = "okay"; 154afbaed73SAndrew Powers-Holmes}; 155afbaed73SAndrew Powers-Holmes 156afbaed73SAndrew Powers-Holmes&rgmii_phy1 { 157afbaed73SAndrew Powers-Holmes status = "okay"; 158afbaed73SAndrew Powers-Holmes}; 159afbaed73SAndrew Powers-Holmes 160afbaed73SAndrew Powers-Holmes&rgmii_phy1 { 161afbaed73SAndrew Powers-Holmes status = "okay"; 162afbaed73SAndrew Powers-Holmes}; 163afbaed73SAndrew Powers-Holmes 164afbaed73SAndrew Powers-Holmes/* 165afbaed73SAndrew Powers-Holmes * saradc is exposed on CM1 / Module1A - to J2 166afbaed73SAndrew Powers-Holmes * pin 94 - AIN1 - saradc_vin3 167afbaed73SAndrew Powers-Holmes * pin 96 - AIN0 - saradc_vin2 168afbaed73SAndrew Powers-Holmes */ 169afbaed73SAndrew Powers-Holmes&saradc { 170afbaed73SAndrew Powers-Holmes status = "disabled"; 171afbaed73SAndrew Powers-Holmes}; 172afbaed73SAndrew Powers-Holmes 173afbaed73SAndrew Powers-Holmes/* 174afbaed73SAndrew Powers-Holmes * vmmc-supply is vcc3v3_sd on v1.0 and vcc3v0_sd on v1.1+ 175afbaed73SAndrew Powers-Holmes * the soquartz SoM has SDMMC_PWR (CM1 pin 75) hardwired to vcc3v3_sys, 176afbaed73SAndrew Powers-Holmes * so we use vcc3v3_sd here to ensure the regulator is enabled on older boards. 177afbaed73SAndrew Powers-Holmes */ 178afbaed73SAndrew Powers-Holmes&sdmmc0 { 179afbaed73SAndrew Powers-Holmes vmmc-supply = <&vcc3v3_sd>; 180afbaed73SAndrew Powers-Holmes status = "okay"; 181afbaed73SAndrew Powers-Holmes}; 182afbaed73SAndrew Powers-Holmes 183afbaed73SAndrew Powers-Holmes/* 184afbaed73SAndrew Powers-Holmes * spi3 is exposed on CM1 / Module1A - to PI40 185afbaed73SAndrew Powers-Holmes * pin 37 - GPIO7 - spi3_cs1_m0 186afbaed73SAndrew Powers-Holmes * pin 38 - GPIO11 - spi3_clk_m0 187afbaed73SAndrew Powers-Holmes * pin 39 - GPIO8 - spi3_cs0_m0 188afbaed73SAndrew Powers-Holmes * pin 40 - GPIO9 - spi3_miso_m0, shared with i2s1_8ch 189afbaed73SAndrew Powers-Holmes * pin 44 - GPIO10 - spi3_mosi_m0 190afbaed73SAndrew Powers-Holmes */ 191afbaed73SAndrew Powers-Holmes&spi3 { 192afbaed73SAndrew Powers-Holmes status = "disabled"; 193afbaed73SAndrew Powers-Holmes}; 194afbaed73SAndrew Powers-Holmes 195afbaed73SAndrew Powers-Holmes/* 196afbaed73SAndrew Powers-Holmes * uart2 is exposed on CM1 / Module1A - to PI40 197afbaed73SAndrew Powers-Holmes * pin 51 - GPIO15 - uart2_rx_m0 198afbaed73SAndrew Powers-Holmes * pin 55 - GPIO14 - uart2_tx_m0 199afbaed73SAndrew Powers-Holmes */ 200afbaed73SAndrew Powers-Holmes&uart2 { 201afbaed73SAndrew Powers-Holmes status = "okay"; 202afbaed73SAndrew Powers-Holmes}; 203afbaed73SAndrew Powers-Holmes 204afbaed73SAndrew Powers-Holmes/* 205afbaed73SAndrew Powers-Holmes * uart7 is exposed on CM1 / Module1A - to PI40 206afbaed73SAndrew Powers-Holmes * pin 46 - GPIO22 - uart7_tx_m2 207afbaed73SAndrew Powers-Holmes * pin 47 - GPIO23 - uart7_rx_m2 208afbaed73SAndrew Powers-Holmes */ 209afbaed73SAndrew Powers-Holmes&uart7 { 210afbaed73SAndrew Powers-Holmes status = "okay"; 211afbaed73SAndrew Powers-Holmes}; 212afbaed73SAndrew Powers-Holmes 213afbaed73SAndrew Powers-Holmes&usb2phy0 { 214afbaed73SAndrew Powers-Holmes status = "okay"; 215afbaed73SAndrew Powers-Holmes}; 216afbaed73SAndrew Powers-Holmes 217afbaed73SAndrew Powers-Holmes&usb2phy0_otg { 218afbaed73SAndrew Powers-Holmes phy-supply = <&vcc5v0_usb>; 219afbaed73SAndrew Powers-Holmes status = "okay"; 220afbaed73SAndrew Powers-Holmes}; 221afbaed73SAndrew Powers-Holmes 222afbaed73SAndrew Powers-Holmes&usb_host0_xhci { 223afbaed73SAndrew Powers-Holmes status = "okay"; 224afbaed73SAndrew Powers-Holmes}; 225afbaed73SAndrew Powers-Holmes 226afbaed73SAndrew Powers-Holmes&vbus { 227afbaed73SAndrew Powers-Holmes vin-supply = <&vcc5v0_usb>; 228afbaed73SAndrew Powers-Holmes}; 229afbaed73SAndrew Powers-Holmes 230afbaed73SAndrew Powers-Holmes&vcc3v3_sd { 231afbaed73SAndrew Powers-Holmes regulator-always-on; 232afbaed73SAndrew Powers-Holmes regulator-boot-on; 233afbaed73SAndrew Powers-Holmes regulator-min-microvolt = <3300000>; 234afbaed73SAndrew Powers-Holmes regulator-max-microvolt = <3300000>; 235afbaed73SAndrew Powers-Holmes status = "okay"; 236afbaed73SAndrew Powers-Holmes}; 237