1ae5de77eSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR MIT) 2ae5de77eSEmmanuel Vadot// Copyright (C) 2024 Arm Ltd. 3ae5de77eSEmmanuel Vadot 4ae5de77eSEmmanuel Vadot/dts-v1/; 5ae5de77eSEmmanuel Vadot 6ae5de77eSEmmanuel Vadot#include "sun55i-a523.dtsi" 7ae5de77eSEmmanuel Vadot 8ae5de77eSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 9ae5de77eSEmmanuel Vadot 10ae5de77eSEmmanuel Vadot/ { 11ae5de77eSEmmanuel Vadot model = "X96Q Pro+"; 12ae5de77eSEmmanuel Vadot compatible = "amediatech,x96q-pro-plus", "allwinner,sun55i-h728"; 13ae5de77eSEmmanuel Vadot 14ae5de77eSEmmanuel Vadot aliases { 15ae5de77eSEmmanuel Vadot serial0 = &uart0; 16ae5de77eSEmmanuel Vadot }; 17ae5de77eSEmmanuel Vadot 18ae5de77eSEmmanuel Vadot chosen { 19ae5de77eSEmmanuel Vadot stdout-path = "serial0:115200n8"; 20ae5de77eSEmmanuel Vadot }; 21ae5de77eSEmmanuel Vadot 22ae5de77eSEmmanuel Vadot ext_osc32k: ext-osc32k-clk { 23ae5de77eSEmmanuel Vadot #clock-cells = <0>; 24ae5de77eSEmmanuel Vadot compatible = "fixed-clock"; 25ae5de77eSEmmanuel Vadot clock-frequency = <32768>; 26ae5de77eSEmmanuel Vadot clock-output-names = "ext_osc32k"; 27ae5de77eSEmmanuel Vadot }; 28ae5de77eSEmmanuel Vadot 29ae5de77eSEmmanuel Vadot reg_vcc5v: vcc5v { 30ae5de77eSEmmanuel Vadot /* board wide 5V supply from the barrel plug */ 31ae5de77eSEmmanuel Vadot compatible = "regulator-fixed"; 32ae5de77eSEmmanuel Vadot regulator-name = "vcc-5v"; 33ae5de77eSEmmanuel Vadot regulator-min-microvolt = <5000000>; 34ae5de77eSEmmanuel Vadot regulator-max-microvolt = <5000000>; 35ae5de77eSEmmanuel Vadot regulator-always-on; 36ae5de77eSEmmanuel Vadot }; 37ae5de77eSEmmanuel Vadot 38ae5de77eSEmmanuel Vadot reg_vcc3v3: vcc3v3 { 39ae5de77eSEmmanuel Vadot /* 3.3V dummy supply for the SD card */ 40ae5de77eSEmmanuel Vadot compatible = "regulator-fixed"; 41ae5de77eSEmmanuel Vadot regulator-name = "vcc-3v3"; 42ae5de77eSEmmanuel Vadot regulator-min-microvolt = <3300000>; 43ae5de77eSEmmanuel Vadot regulator-max-microvolt = <3300000>; 44ae5de77eSEmmanuel Vadot vin-supply = <®_vcc5v>; 45ae5de77eSEmmanuel Vadot regulator-always-on; 46ae5de77eSEmmanuel Vadot }; 47ae5de77eSEmmanuel Vadot}; 48ae5de77eSEmmanuel Vadot 49ae5de77eSEmmanuel Vadot&ehci0 { 50ae5de77eSEmmanuel Vadot status = "okay"; 51ae5de77eSEmmanuel Vadot}; 52ae5de77eSEmmanuel Vadot 53ae5de77eSEmmanuel Vadot&ehci1 { 54ae5de77eSEmmanuel Vadot status = "okay"; 55ae5de77eSEmmanuel Vadot}; 56ae5de77eSEmmanuel Vadot 57*833e5d42SEmmanuel Vadot&gpu { 58*833e5d42SEmmanuel Vadot mali-supply = <®_dcdc2>; 59*833e5d42SEmmanuel Vadot status = "okay"; 60*833e5d42SEmmanuel Vadot}; 61*833e5d42SEmmanuel Vadot 62ae5de77eSEmmanuel Vadot&mmc0 { 63ae5de77eSEmmanuel Vadot vmmc-supply = <®_vcc3v3>; 64ae5de77eSEmmanuel Vadot cd-gpios = <&pio 5 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PF6 */ 65ae5de77eSEmmanuel Vadot bus-width = <4>; 66ae5de77eSEmmanuel Vadot disable-wp; 67ae5de77eSEmmanuel Vadot status = "okay"; 68ae5de77eSEmmanuel Vadot}; 69ae5de77eSEmmanuel Vadot 70ae5de77eSEmmanuel Vadot&mmc2 { 71ae5de77eSEmmanuel Vadot vmmc-supply = <®_cldo3>; 72ae5de77eSEmmanuel Vadot vqmmc-supply = <®_cldo1>; 73ae5de77eSEmmanuel Vadot bus-width = <8>; 74ae5de77eSEmmanuel Vadot non-removable; 75ae5de77eSEmmanuel Vadot cap-mmc-hw-reset; 76ae5de77eSEmmanuel Vadot mmc-ddr-1_8v; 77ae5de77eSEmmanuel Vadot mmc-hs200-1_8v; 78ae5de77eSEmmanuel Vadot status = "okay"; 79ae5de77eSEmmanuel Vadot}; 80ae5de77eSEmmanuel Vadot 81ae5de77eSEmmanuel Vadot&ohci0 { 82ae5de77eSEmmanuel Vadot status = "okay"; 83ae5de77eSEmmanuel Vadot}; 84ae5de77eSEmmanuel Vadot 85ae5de77eSEmmanuel Vadot&ohci1 { 86ae5de77eSEmmanuel Vadot status = "okay"; 87ae5de77eSEmmanuel Vadot}; 88ae5de77eSEmmanuel Vadot 89ae5de77eSEmmanuel Vadot&pio { 90ae5de77eSEmmanuel Vadot vcc-pb-supply = <®_cldo3>; /* via VCC-IO */ 91ae5de77eSEmmanuel Vadot vcc-pc-supply = <®_cldo1>; 92ae5de77eSEmmanuel Vadot vcc-pd-supply = <®_dcdc4>; 93ae5de77eSEmmanuel Vadot vcc-pe-supply = <®_dcdc4>; 94ae5de77eSEmmanuel Vadot vcc-pf-supply = <®_cldo3>; /* actually switchable */ 95ae5de77eSEmmanuel Vadot vcc-pg-supply = <®_bldo1>; 96ae5de77eSEmmanuel Vadot vcc-ph-supply = <®_cldo3>; /* via VCC-IO */ 97ae5de77eSEmmanuel Vadot vcc-pi-supply = <®_dcdc4>; 98ae5de77eSEmmanuel Vadot vcc-pj-supply = <®_dcdc4>; 99ae5de77eSEmmanuel Vadot vcc-pk-supply = <®_bldo3>; 100ae5de77eSEmmanuel Vadot}; 101ae5de77eSEmmanuel Vadot 102ae5de77eSEmmanuel Vadot&r_i2c0 { 103ae5de77eSEmmanuel Vadot status = "okay"; 104ae5de77eSEmmanuel Vadot 105ae5de77eSEmmanuel Vadot axp717: pmic@34 { 106ae5de77eSEmmanuel Vadot compatible = "x-powers,axp717"; 107ae5de77eSEmmanuel Vadot reg = <0x34>; 108ae5de77eSEmmanuel Vadot interrupt-controller; 109ae5de77eSEmmanuel Vadot #interrupt-cells = <1>; 110ae5de77eSEmmanuel Vadot interrupt-parent = <&nmi_intc>; 111ae5de77eSEmmanuel Vadot interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 112ae5de77eSEmmanuel Vadot 113ae5de77eSEmmanuel Vadot vin1-supply = <®_vcc5v>; 114ae5de77eSEmmanuel Vadot vin2-supply = <®_vcc5v>; 115ae5de77eSEmmanuel Vadot vin3-supply = <®_vcc5v>; 116ae5de77eSEmmanuel Vadot vin4-supply = <®_vcc5v>; 117ae5de77eSEmmanuel Vadot aldoin-supply = <®_vcc5v>; 118ae5de77eSEmmanuel Vadot bldoin-supply = <®_vcc5v>; 119ae5de77eSEmmanuel Vadot cldoin-supply = <®_vcc5v>; 120ae5de77eSEmmanuel Vadot 121ae5de77eSEmmanuel Vadot regulators { 122ae5de77eSEmmanuel Vadot /* Supplies the "little" cluster (1.0(?) GHz cores) */ 123ae5de77eSEmmanuel Vadot reg_dcdc1: dcdc1 { 124ae5de77eSEmmanuel Vadot regulator-always-on; 125ae5de77eSEmmanuel Vadot regulator-min-microvolt = <900000>; 126ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1160000>; 127ae5de77eSEmmanuel Vadot regulator-name = "vdd-cpul"; 128ae5de77eSEmmanuel Vadot }; 129ae5de77eSEmmanuel Vadot 130ae5de77eSEmmanuel Vadot reg_dcdc2: dcdc2 { 131ae5de77eSEmmanuel Vadot regulator-always-on; 132ae5de77eSEmmanuel Vadot regulator-min-microvolt = <920000>; 133ae5de77eSEmmanuel Vadot regulator-max-microvolt = <920000>; 134ae5de77eSEmmanuel Vadot regulator-name = "vdd-gpu-sys"; 135ae5de77eSEmmanuel Vadot }; 136ae5de77eSEmmanuel Vadot 137ae5de77eSEmmanuel Vadot reg_dcdc3: dcdc3 { 138ae5de77eSEmmanuel Vadot regulator-always-on; 139ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1360000>; 140ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1360000>; 141ae5de77eSEmmanuel Vadot regulator-name = "vdd-dram"; 142ae5de77eSEmmanuel Vadot }; 143ae5de77eSEmmanuel Vadot 144ae5de77eSEmmanuel Vadot reg_dcdc4: dcdc4 { 145ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1000000>; 146ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1000000>; 147ae5de77eSEmmanuel Vadot regulator-name = "vdd-dcdc4"; 148ae5de77eSEmmanuel Vadot }; 149ae5de77eSEmmanuel Vadot 150ae5de77eSEmmanuel Vadot reg_aldo1: aldo1 { 151ae5de77eSEmmanuel Vadot /* not connected */ 152ae5de77eSEmmanuel Vadot }; 153ae5de77eSEmmanuel Vadot 154ae5de77eSEmmanuel Vadot reg_aldo2: aldo2 { 155ae5de77eSEmmanuel Vadot /* not connected */ 156ae5de77eSEmmanuel Vadot }; 157ae5de77eSEmmanuel Vadot 158ae5de77eSEmmanuel Vadot reg_aldo3: aldo3 { 159ae5de77eSEmmanuel Vadot regulator-always-on; 160ae5de77eSEmmanuel Vadot regulator-min-microvolt = <3300000>; 161ae5de77eSEmmanuel Vadot regulator-max-microvolt = <3300000>; 162ae5de77eSEmmanuel Vadot regulator-name = "vcc-aldo3"; 163ae5de77eSEmmanuel Vadot }; 164ae5de77eSEmmanuel Vadot 165ae5de77eSEmmanuel Vadot reg_aldo4: aldo4 { 166ae5de77eSEmmanuel Vadot regulator-always-on; 167ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1800000>; 168ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1800000>; 169ae5de77eSEmmanuel Vadot regulator-name = "vcc-pll-dxco-avcc"; 170ae5de77eSEmmanuel Vadot }; 171ae5de77eSEmmanuel Vadot 172ae5de77eSEmmanuel Vadot reg_bldo1: bldo1 { 173ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1800000>; 174ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1800000>; 175ae5de77eSEmmanuel Vadot regulator-name = "vcc-pg-wifi-lvds"; 176ae5de77eSEmmanuel Vadot }; 177ae5de77eSEmmanuel Vadot 178ae5de77eSEmmanuel Vadot reg_bldo2: bldo2 { 179ae5de77eSEmmanuel Vadot regulator-always-on; 180ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1800000>; 181ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1800000>; 182ae5de77eSEmmanuel Vadot regulator-name = "vcc-dram-1v8"; 183ae5de77eSEmmanuel Vadot }; 184ae5de77eSEmmanuel Vadot 185ae5de77eSEmmanuel Vadot reg_bldo3: bldo3 { 186ae5de77eSEmmanuel Vadot regulator-min-microvolt = <2800000>; 187ae5de77eSEmmanuel Vadot regulator-max-microvolt = <2800000>; 188ae5de77eSEmmanuel Vadot regulator-name = "vcc-bldo3"; 189ae5de77eSEmmanuel Vadot }; 190ae5de77eSEmmanuel Vadot 191ae5de77eSEmmanuel Vadot reg_bldo4: bldo4 { 192ae5de77eSEmmanuel Vadot /* not connected */ 193ae5de77eSEmmanuel Vadot }; 194ae5de77eSEmmanuel Vadot 195ae5de77eSEmmanuel Vadot reg_cldo1: cldo1 { 196ae5de77eSEmmanuel Vadot regulator-always-on; 197ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1800000>; 198ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1800000>; 199ae5de77eSEmmanuel Vadot regulator-name = "vcc-codec-sd"; 200ae5de77eSEmmanuel Vadot }; 201ae5de77eSEmmanuel Vadot 202ae5de77eSEmmanuel Vadot reg_cldo2: cldo2 { 203ae5de77eSEmmanuel Vadot }; 204ae5de77eSEmmanuel Vadot 205ae5de77eSEmmanuel Vadot reg_cldo3: cldo3 { 206ae5de77eSEmmanuel Vadot regulator-min-microvolt = <3300000>; 207ae5de77eSEmmanuel Vadot regulator-max-microvolt = <3300000>; 208ae5de77eSEmmanuel Vadot regulator-name = "vcc-codec-eth-sd"; 209ae5de77eSEmmanuel Vadot }; 210ae5de77eSEmmanuel Vadot 211ae5de77eSEmmanuel Vadot reg_cldo4: cldo4 { 212ae5de77eSEmmanuel Vadot regulator-min-microvolt = <3300000>; 213ae5de77eSEmmanuel Vadot regulator-max-microvolt = <3300000>; 214ae5de77eSEmmanuel Vadot regulator-name = "vcc-eth-phy"; 215ae5de77eSEmmanuel Vadot }; 216ae5de77eSEmmanuel Vadot 217ae5de77eSEmmanuel Vadot reg_cpusldo: cpusldo { 218ae5de77eSEmmanuel Vadot /* supplies the management core */ 219ae5de77eSEmmanuel Vadot regulator-always-on; 220ae5de77eSEmmanuel Vadot regulator-min-microvolt = <900000>; 221ae5de77eSEmmanuel Vadot regulator-max-microvolt = <900000>; 222ae5de77eSEmmanuel Vadot regulator-name = "vdd-cpus"; 223ae5de77eSEmmanuel Vadot }; 224ae5de77eSEmmanuel Vadot }; 225ae5de77eSEmmanuel Vadot }; 226ae5de77eSEmmanuel Vadot 227ae5de77eSEmmanuel Vadot axp323: pmic@36 { 228ae5de77eSEmmanuel Vadot compatible = "x-powers,axp323"; 229ae5de77eSEmmanuel Vadot reg = <0x36>; 230ae5de77eSEmmanuel Vadot #interrupt-cells = <1>; 231ae5de77eSEmmanuel Vadot interrupt-controller; 232ae5de77eSEmmanuel Vadot interrupt-parent = <&nmi_intc>; 233ae5de77eSEmmanuel Vadot interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 234ae5de77eSEmmanuel Vadot status = "okay"; 235ae5de77eSEmmanuel Vadot 236ae5de77eSEmmanuel Vadot vin1-supply = <®_vcc5v>; 237ae5de77eSEmmanuel Vadot vin2-supply = <®_vcc5v>; 238ae5de77eSEmmanuel Vadot vin3-supply = <®_vcc5v>; 239ae5de77eSEmmanuel Vadot 240ae5de77eSEmmanuel Vadot regulators { 241ae5de77eSEmmanuel Vadot aldo1 { 242ae5de77eSEmmanuel Vadot /* not connected */ 243ae5de77eSEmmanuel Vadot }; 244ae5de77eSEmmanuel Vadot 245ae5de77eSEmmanuel Vadot dldo1 { 246ae5de77eSEmmanuel Vadot /* not connected */ 247ae5de77eSEmmanuel Vadot }; 248ae5de77eSEmmanuel Vadot 249ae5de77eSEmmanuel Vadot /* Supplies the "big" cluster (1.8 GHz cores) */ 250ae5de77eSEmmanuel Vadot reg_dcdc1_323: dcdc1 { 251ae5de77eSEmmanuel Vadot regulator-always-on; 252ae5de77eSEmmanuel Vadot regulator-min-microvolt = <900000>; 253ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1160000>; 254ae5de77eSEmmanuel Vadot regulator-name = "vdd-cpub"; 255ae5de77eSEmmanuel Vadot }; 256ae5de77eSEmmanuel Vadot 257ae5de77eSEmmanuel Vadot /* DCDC2 is polyphased with DCDC1 */ 258ae5de77eSEmmanuel Vadot 259ae5de77eSEmmanuel Vadot reg_dcdc3_323: dcdc3 { 260ae5de77eSEmmanuel Vadot regulator-always-on; 261ae5de77eSEmmanuel Vadot regulator-min-microvolt = <1050000>; 262ae5de77eSEmmanuel Vadot regulator-max-microvolt = <1050000>; 263ae5de77eSEmmanuel Vadot regulator-name = "vdd-dcdc3"; 264ae5de77eSEmmanuel Vadot }; 265ae5de77eSEmmanuel Vadot }; 266ae5de77eSEmmanuel Vadot }; 267ae5de77eSEmmanuel Vadot}; 268ae5de77eSEmmanuel Vadot 269ae5de77eSEmmanuel Vadot&r_pio { 270ae5de77eSEmmanuel Vadot/* 271ae5de77eSEmmanuel Vadot * Specifying the supply would create a circular dependency. 272ae5de77eSEmmanuel Vadot * 273ae5de77eSEmmanuel Vadot * vcc-pl-supply = <®_aldo3>; 274ae5de77eSEmmanuel Vadot */ 275ae5de77eSEmmanuel Vadot vcc-pm-supply = <®_aldo3>; 276ae5de77eSEmmanuel Vadot}; 277ae5de77eSEmmanuel Vadot 278ae5de77eSEmmanuel Vadot&uart0 { 279ae5de77eSEmmanuel Vadot pinctrl-names = "default"; 280ae5de77eSEmmanuel Vadot pinctrl-0 = <&uart0_pb_pins>; 281ae5de77eSEmmanuel Vadot status = "okay"; 282ae5de77eSEmmanuel Vadot}; 283ae5de77eSEmmanuel Vadot 284ae5de77eSEmmanuel Vadot&usb_otg { 285ae5de77eSEmmanuel Vadot /* USB0 is a USB-A receptacle, always powered, so force host mode. */ 286ae5de77eSEmmanuel Vadot dr_mode = "host"; 287ae5de77eSEmmanuel Vadot status = "okay"; 288ae5de77eSEmmanuel Vadot}; 289ae5de77eSEmmanuel Vadot 290ae5de77eSEmmanuel Vadot&usbphy { 291ae5de77eSEmmanuel Vadot status = "okay"; 292ae5de77eSEmmanuel Vadot}; 293