1*4d39a8ebSAndre Przywara// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*4d39a8ebSAndre Przywara// Copyright (c) 2023 ARM Ltd. 3*4d39a8ebSAndre Przywara 4*4d39a8ebSAndre Przywara/dts-v1/; 5*4d39a8ebSAndre Przywara 6*4d39a8ebSAndre Przywara#include "sun50i-a64.dtsi" 7*4d39a8ebSAndre Przywara#include "sun50i-a64-cpu-opp.dtsi" 8*4d39a8ebSAndre Przywara 9*4d39a8ebSAndre Przywara#include <dt-bindings/gpio/gpio.h> 10*4d39a8ebSAndre Przywara 11*4d39a8ebSAndre Przywara/ { 12*4d39a8ebSAndre Przywara model = "Remix Mini PC"; 13*4d39a8ebSAndre Przywara compatible = "jide,remix-mini-pc", "allwinner,sun50i-h64", 14*4d39a8ebSAndre Przywara "allwinner,sun50i-a64"; 15*4d39a8ebSAndre Przywara 16*4d39a8ebSAndre Przywara aliases { 17*4d39a8ebSAndre Przywara ethernet1 = &rtl8723bs; 18*4d39a8ebSAndre Przywara serial0 = &uart0; 19*4d39a8ebSAndre Przywara }; 20*4d39a8ebSAndre Przywara 21*4d39a8ebSAndre Przywara chosen { 22*4d39a8ebSAndre Przywara stdout-path = "serial0:115200n8"; 23*4d39a8ebSAndre Przywara }; 24*4d39a8ebSAndre Przywara 25*4d39a8ebSAndre Przywara hdmi-connector { 26*4d39a8ebSAndre Przywara compatible = "hdmi-connector"; 27*4d39a8ebSAndre Przywara type = "a"; 28*4d39a8ebSAndre Przywara 29*4d39a8ebSAndre Przywara port { 30*4d39a8ebSAndre Przywara hdmi_con_in: endpoint { 31*4d39a8ebSAndre Przywara remote-endpoint = <&hdmi_out_con>; 32*4d39a8ebSAndre Przywara }; 33*4d39a8ebSAndre Przywara }; 34*4d39a8ebSAndre Przywara }; 35*4d39a8ebSAndre Przywara 36*4d39a8ebSAndre Przywara reg_vcc5v: regulator-5v { 37*4d39a8ebSAndre Przywara /* board wide 5V supply directly from the DC input */ 38*4d39a8ebSAndre Przywara compatible = "regulator-fixed"; 39*4d39a8ebSAndre Przywara regulator-name = "vcc-5v"; 40*4d39a8ebSAndre Przywara regulator-min-microvolt = <5000000>; 41*4d39a8ebSAndre Przywara regulator-max-microvolt = <5000000>; 42*4d39a8ebSAndre Przywara regulator-always-on; 43*4d39a8ebSAndre Przywara }; 44*4d39a8ebSAndre Przywara 45*4d39a8ebSAndre Przywara wifi_pwrseq: wifi_pwrseq { 46*4d39a8ebSAndre Przywara compatible = "mmc-pwrseq-simple"; 47*4d39a8ebSAndre Przywara reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 48*4d39a8ebSAndre Przywara post-power-on-delay-ms = <200>; 49*4d39a8ebSAndre Przywara }; 50*4d39a8ebSAndre Przywara}; 51*4d39a8ebSAndre Przywara 52*4d39a8ebSAndre Przywara&codec { 53*4d39a8ebSAndre Przywara status = "okay"; 54*4d39a8ebSAndre Przywara}; 55*4d39a8ebSAndre Przywara 56*4d39a8ebSAndre Przywara&codec_analog { 57*4d39a8ebSAndre Przywara cpvdd-supply = <®_eldo1>; 58*4d39a8ebSAndre Przywara status = "okay"; 59*4d39a8ebSAndre Przywara}; 60*4d39a8ebSAndre Przywara 61*4d39a8ebSAndre Przywara&cpu0 { 62*4d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 63*4d39a8ebSAndre Przywara}; 64*4d39a8ebSAndre Przywara 65*4d39a8ebSAndre Przywara&cpu1 { 66*4d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 67*4d39a8ebSAndre Przywara}; 68*4d39a8ebSAndre Przywara 69*4d39a8ebSAndre Przywara&cpu2 { 70*4d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 71*4d39a8ebSAndre Przywara}; 72*4d39a8ebSAndre Przywara 73*4d39a8ebSAndre Przywara&cpu3 { 74*4d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 75*4d39a8ebSAndre Przywara}; 76*4d39a8ebSAndre Przywara 77*4d39a8ebSAndre Przywara&dai { 78*4d39a8ebSAndre Przywara status = "okay"; 79*4d39a8ebSAndre Przywara}; 80*4d39a8ebSAndre Przywara 81*4d39a8ebSAndre Przywara&de { 82*4d39a8ebSAndre Przywara status = "okay"; 83*4d39a8ebSAndre Przywara}; 84*4d39a8ebSAndre Przywara 85*4d39a8ebSAndre Przywara&ehci0 { 86*4d39a8ebSAndre Przywara status = "okay"; 87*4d39a8ebSAndre Przywara}; 88*4d39a8ebSAndre Przywara 89*4d39a8ebSAndre Przywara&ehci1 { 90*4d39a8ebSAndre Przywara status = "okay"; 91*4d39a8ebSAndre Przywara}; 92*4d39a8ebSAndre Przywara 93*4d39a8ebSAndre Przywara&hdmi { 94*4d39a8ebSAndre Przywara hvcc-supply = <®_dldo1>; 95*4d39a8ebSAndre Przywara status = "okay"; 96*4d39a8ebSAndre Przywara}; 97*4d39a8ebSAndre Przywara 98*4d39a8ebSAndre Przywara&hdmi_out { 99*4d39a8ebSAndre Przywara hdmi_out_con: endpoint { 100*4d39a8ebSAndre Przywara remote-endpoint = <&hdmi_con_in>; 101*4d39a8ebSAndre Przywara }; 102*4d39a8ebSAndre Przywara}; 103*4d39a8ebSAndre Przywara 104*4d39a8ebSAndre Przywara/* Connects to the AC200 chip */ 105*4d39a8ebSAndre Przywara&i2c0 { 106*4d39a8ebSAndre Przywara pinctrl-names = "default"; 107*4d39a8ebSAndre Przywara pinctrl-0 = <&i2c0_pins>; 108*4d39a8ebSAndre Przywara status = "okay"; 109*4d39a8ebSAndre Przywara}; 110*4d39a8ebSAndre Przywara 111*4d39a8ebSAndre Przywara&i2c0_pins { 112*4d39a8ebSAndre Przywara bias-pull-up; 113*4d39a8ebSAndre Przywara}; 114*4d39a8ebSAndre Przywara 115*4d39a8ebSAndre Przywara&mmc0 { 116*4d39a8ebSAndre Przywara pinctrl-names = "default"; 117*4d39a8ebSAndre Przywara pinctrl-0 = <&mmc0_pins>; 118*4d39a8ebSAndre Przywara vmmc-supply = <®_dcdc1>; 119*4d39a8ebSAndre Przywara cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 120*4d39a8ebSAndre Przywara disable-wp; 121*4d39a8ebSAndre Przywara bus-width = <4>; 122*4d39a8ebSAndre Przywara status = "okay"; 123*4d39a8ebSAndre Przywara}; 124*4d39a8ebSAndre Przywara 125*4d39a8ebSAndre Przywara&mmc1 { 126*4d39a8ebSAndre Przywara pinctrl-names = "default"; 127*4d39a8ebSAndre Przywara pinctrl-0 = <&mmc1_pins>; 128*4d39a8ebSAndre Przywara vmmc-supply = <®_aldo1>; 129*4d39a8ebSAndre Przywara vqmmc-supply = <®_dldo4>; 130*4d39a8ebSAndre Przywara mmc-pwrseq = <&wifi_pwrseq>; 131*4d39a8ebSAndre Przywara bus-width = <4>; 132*4d39a8ebSAndre Przywara non-removable; 133*4d39a8ebSAndre Przywara status = "okay"; 134*4d39a8ebSAndre Przywara 135*4d39a8ebSAndre Przywara rtl8723bs: wifi@1 { 136*4d39a8ebSAndre Przywara reg = <1>; 137*4d39a8ebSAndre Przywara interrupt-parent = <&r_pio>; 138*4d39a8ebSAndre Przywara interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 139*4d39a8ebSAndre Przywara interrupt-names = "host-wake"; 140*4d39a8ebSAndre Przywara }; 141*4d39a8ebSAndre Przywara}; 142*4d39a8ebSAndre Przywara 143*4d39a8ebSAndre Przywara&mmc2 { 144*4d39a8ebSAndre Przywara pinctrl-names = "default"; 145*4d39a8ebSAndre Przywara pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; 146*4d39a8ebSAndre Przywara vmmc-supply = <®_dcdc1>; 147*4d39a8ebSAndre Przywara vqmmc-supply = <®_eldo1>; 148*4d39a8ebSAndre Przywara bus-width = <8>; 149*4d39a8ebSAndre Przywara non-removable; 150*4d39a8ebSAndre Przywara mmc-hs200-1_8v; 151*4d39a8ebSAndre Przywara mmc-hs400-1_8v; 152*4d39a8ebSAndre Przywara cap-mmc-hw-reset; 153*4d39a8ebSAndre Przywara status = "okay"; 154*4d39a8ebSAndre Przywara}; 155*4d39a8ebSAndre Przywara 156*4d39a8ebSAndre Przywara&ohci0 { 157*4d39a8ebSAndre Przywara status = "okay"; 158*4d39a8ebSAndre Przywara}; 159*4d39a8ebSAndre Przywara 160*4d39a8ebSAndre Przywara&ohci1 { 161*4d39a8ebSAndre Przywara status = "okay"; 162*4d39a8ebSAndre Przywara}; 163*4d39a8ebSAndre Przywara 164*4d39a8ebSAndre Przywara&pio { 165*4d39a8ebSAndre Przywara vcc-pb-supply = <®_dcdc1>; 166*4d39a8ebSAndre Przywara vcc-pc-supply = <®_dcdc1>; 167*4d39a8ebSAndre Przywara vcc-pd-supply = <®_dcdc1>; 168*4d39a8ebSAndre Przywara vcc-pe-supply = <®_dcdc1>; 169*4d39a8ebSAndre Przywara vcc-pf-supply = <®_dcdc1>; 170*4d39a8ebSAndre Przywara vcc-pg-supply = <®_dldo4>; 171*4d39a8ebSAndre Przywara vcc-ph-supply = <®_dcdc1>; 172*4d39a8ebSAndre Przywara}; 173*4d39a8ebSAndre Przywara 174*4d39a8ebSAndre Przywara&r_ir { 175*4d39a8ebSAndre Przywara status = "okay"; 176*4d39a8ebSAndre Przywara}; 177*4d39a8ebSAndre Przywara 178*4d39a8ebSAndre Przywara&r_pio { 179*4d39a8ebSAndre Przywara /* 180*4d39a8ebSAndre Przywara * We cannot add that supply for now since it would create a circular 181*4d39a8ebSAndre Przywara * dependency between pinctrl, the regulator and the RSB Bus. 182*4d39a8ebSAndre Przywara * 183*4d39a8ebSAndre Przywara * vcc-pl-supply = <®_aldo2>; 184*4d39a8ebSAndre Przywara */ 185*4d39a8ebSAndre Przywara}; 186*4d39a8ebSAndre Przywara 187*4d39a8ebSAndre Przywara&r_rsb { 188*4d39a8ebSAndre Przywara status = "okay"; 189*4d39a8ebSAndre Przywara 190*4d39a8ebSAndre Przywara axp803: pmic@3a3 { 191*4d39a8ebSAndre Przywara compatible = "x-powers,axp803"; 192*4d39a8ebSAndre Przywara reg = <0x3a3>; 193*4d39a8ebSAndre Przywara interrupt-parent = <&r_intc>; 194*4d39a8ebSAndre Przywara interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_LOW>; 195*4d39a8ebSAndre Przywara x-powers,drive-vbus-en; 196*4d39a8ebSAndre Przywara 197*4d39a8ebSAndre Przywara vin1-supply = <®_vcc5v>; 198*4d39a8ebSAndre Przywara vin2-supply = <®_vcc5v>; 199*4d39a8ebSAndre Przywara vin3-supply = <®_vcc5v>; 200*4d39a8ebSAndre Przywara vin5-supply = <®_vcc5v>; 201*4d39a8ebSAndre Przywara vin6-supply = <®_vcc5v>; 202*4d39a8ebSAndre Przywara aldoin-supply = <®_vcc5v>; 203*4d39a8ebSAndre Przywara dldoin-supply = <®_vcc5v>; 204*4d39a8ebSAndre Przywara eldoin-supply = <®_vcc5v>; 205*4d39a8ebSAndre Przywara fldoin-supply = <®_vcc5v>; 206*4d39a8ebSAndre Przywara drivevbus-supply = <®_vcc5v>; 207*4d39a8ebSAndre Przywara ips-supply = <®_vcc5v>; 208*4d39a8ebSAndre Przywara 209*4d39a8ebSAndre Przywara status = "okay"; 210*4d39a8ebSAndre Przywara }; 211*4d39a8ebSAndre Przywara}; 212*4d39a8ebSAndre Przywara 213*4d39a8ebSAndre Przywara#include "axp803.dtsi" 214*4d39a8ebSAndre Przywara 215*4d39a8ebSAndre Przywara&ac_power_supply { 216*4d39a8ebSAndre Przywara status = "okay"; 217*4d39a8ebSAndre Przywara}; 218*4d39a8ebSAndre Przywara 219*4d39a8ebSAndre Przywara®_dcdc1 { 220*4d39a8ebSAndre Przywara regulator-always-on; 221*4d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 222*4d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 223*4d39a8ebSAndre Przywara regulator-name = "vcc-3v3"; 224*4d39a8ebSAndre Przywara}; 225*4d39a8ebSAndre Przywara 226*4d39a8ebSAndre Przywara®_dcdc2 { 227*4d39a8ebSAndre Przywara regulator-always-on; 228*4d39a8ebSAndre Przywara regulator-min-microvolt = <1040000>; 229*4d39a8ebSAndre Przywara regulator-max-microvolt = <1300000>; 230*4d39a8ebSAndre Przywara regulator-name = "vdd-cpux"; 231*4d39a8ebSAndre Przywara}; 232*4d39a8ebSAndre Przywara 233*4d39a8ebSAndre Przywara/* DCDC3 is polyphased with DCDC2 */ 234*4d39a8ebSAndre Przywara 235*4d39a8ebSAndre Przywara®_dcdc5 { 236*4d39a8ebSAndre Przywara regulator-always-on; 237*4d39a8ebSAndre Przywara regulator-min-microvolt = <1500000>; 238*4d39a8ebSAndre Przywara regulator-max-microvolt = <1500000>; 239*4d39a8ebSAndre Przywara regulator-name = "vcc-dram"; 240*4d39a8ebSAndre Przywara}; 241*4d39a8ebSAndre Przywara 242*4d39a8ebSAndre Przywara/* Deviates from the reset default of 1.1V. */ 243*4d39a8ebSAndre Przywara®_dcdc6 { 244*4d39a8ebSAndre Przywara regulator-always-on; 245*4d39a8ebSAndre Przywara regulator-min-microvolt = <1200000>; 246*4d39a8ebSAndre Przywara regulator-max-microvolt = <1200000>; 247*4d39a8ebSAndre Przywara regulator-name = "vdd-sys"; 248*4d39a8ebSAndre Przywara}; 249*4d39a8ebSAndre Przywara 250*4d39a8ebSAndre Przywara®_aldo1 { 251*4d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 252*4d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 253*4d39a8ebSAndre Przywara regulator-name = "vcc-wifi"; 254*4d39a8ebSAndre Przywara}; 255*4d39a8ebSAndre Przywara 256*4d39a8ebSAndre Przywara®_aldo2 { 257*4d39a8ebSAndre Przywara /* Specifying R_PIO consumer would create circular dependency. */ 258*4d39a8ebSAndre Przywara regulator-always-on; 259*4d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 260*4d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 261*4d39a8ebSAndre Przywara regulator-name = "vcc-pl"; 262*4d39a8ebSAndre Przywara}; 263*4d39a8ebSAndre Przywara 264*4d39a8ebSAndre Przywara®_aldo3 { 265*4d39a8ebSAndre Przywara regulator-always-on; 266*4d39a8ebSAndre Przywara regulator-min-microvolt = <3000000>; 267*4d39a8ebSAndre Przywara regulator-max-microvolt = <3000000>; 268*4d39a8ebSAndre Przywara regulator-name = "vcc-pll-avcc"; 269*4d39a8ebSAndre Przywara}; 270*4d39a8ebSAndre Przywara 271*4d39a8ebSAndre Przywara/* AC200 power supply */ 272*4d39a8ebSAndre Przywara®_dldo1 { 273*4d39a8ebSAndre Przywara regulator-always-on; 274*4d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 275*4d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 276*4d39a8ebSAndre Przywara regulator-name = "vcc-ave-33"; 277*4d39a8ebSAndre Przywara}; 278*4d39a8ebSAndre Przywara 279*4d39a8ebSAndre Przywara®_dldo4 { 280*4d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 281*4d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 282*4d39a8ebSAndre Przywara regulator-name = "vcc-wifi-io"; 283*4d39a8ebSAndre Przywara}; 284*4d39a8ebSAndre Przywara 285*4d39a8ebSAndre Przywara®_drivevbus { 286*4d39a8ebSAndre Przywara regulator-name = "usb0-vbus"; 287*4d39a8ebSAndre Przywara status = "okay"; 288*4d39a8ebSAndre Przywara}; 289*4d39a8ebSAndre Przywara 290*4d39a8ebSAndre Przywara®_eldo1 { 291*4d39a8ebSAndre Przywara regulator-always-on; 292*4d39a8ebSAndre Przywara regulator-min-microvolt = <1800000>; 293*4d39a8ebSAndre Przywara regulator-max-microvolt = <1800000>; 294*4d39a8ebSAndre Przywara regulator-name = "vcc-cpvdd-dram-emmc"; 295*4d39a8ebSAndre Przywara}; 296*4d39a8ebSAndre Przywara 297*4d39a8ebSAndre Przywara/* Supplies the arisc management core, needed by TF-A to power off cores. */ 298*4d39a8ebSAndre Przywara®_fldo2 { 299*4d39a8ebSAndre Przywara regulator-always-on; 300*4d39a8ebSAndre Przywara regulator-min-microvolt = <1100000>; 301*4d39a8ebSAndre Przywara regulator-max-microvolt = <1100000>; 302*4d39a8ebSAndre Przywara regulator-name = "vdd-cpus"; 303*4d39a8ebSAndre Przywara}; 304*4d39a8ebSAndre Przywara 305*4d39a8ebSAndre Przywara®_rtc_ldo { 306*4d39a8ebSAndre Przywara regulator-name = "vcc-rtc"; 307*4d39a8ebSAndre Przywara}; 308*4d39a8ebSAndre Przywara 309*4d39a8ebSAndre Przywara&simplefb_hdmi { 310*4d39a8ebSAndre Przywara vcc-hdmi-supply = <®_dcdc1>; 311*4d39a8ebSAndre Przywara}; 312*4d39a8ebSAndre Przywara 313*4d39a8ebSAndre Przywara&sound { 314*4d39a8ebSAndre Przywara simple-audio-card,aux-devs = <&codec_analog>; 315*4d39a8ebSAndre Przywara simple-audio-card,widgets = "Microphone", "Microphone Jack", 316*4d39a8ebSAndre Przywara "Headphone", "Headphone Jack"; 317*4d39a8ebSAndre Przywara simple-audio-card,routing = 318*4d39a8ebSAndre Przywara "Left DAC", "DACL", 319*4d39a8ebSAndre Przywara "Right DAC", "DACR", 320*4d39a8ebSAndre Przywara "Headphone Jack", "HP", 321*4d39a8ebSAndre Przywara "ADCL", "Left ADC", 322*4d39a8ebSAndre Przywara "ADCR", "Right ADC", 323*4d39a8ebSAndre Przywara "MIC2", "Microphone Jack"; 324*4d39a8ebSAndre Przywara status = "okay"; 325*4d39a8ebSAndre Przywara}; 326*4d39a8ebSAndre Przywara 327*4d39a8ebSAndre Przywara/* On the (unpopulated) UART pads. */ 328*4d39a8ebSAndre Przywara&uart0 { 329*4d39a8ebSAndre Przywara pinctrl-names = "default"; 330*4d39a8ebSAndre Przywara pinctrl-0 = <&uart0_pb_pins>; 331*4d39a8ebSAndre Przywara status = "okay"; 332*4d39a8ebSAndre Przywara}; 333*4d39a8ebSAndre Przywara 334*4d39a8ebSAndre Przywara&uart1 { 335*4d39a8ebSAndre Przywara pinctrl-names = "default"; 336*4d39a8ebSAndre Przywara pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 337*4d39a8ebSAndre Przywara uart-has-rtscts; 338*4d39a8ebSAndre Przywara status = "okay"; 339*4d39a8ebSAndre Przywara 340*4d39a8ebSAndre Przywara bluetooth { 341*4d39a8ebSAndre Przywara compatible = "realtek,rtl8723bs-bt"; 342*4d39a8ebSAndre Przywara enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 343*4d39a8ebSAndre Przywara max-speed = <1500000>; 344*4d39a8ebSAndre Przywara }; 345*4d39a8ebSAndre Przywara}; 346*4d39a8ebSAndre Przywara 347*4d39a8ebSAndre Przywara&usb_otg { 348*4d39a8ebSAndre Przywara dr_mode = "host"; 349*4d39a8ebSAndre Przywara status = "okay"; 350*4d39a8ebSAndre Przywara}; 351*4d39a8ebSAndre Przywara 352*4d39a8ebSAndre Przywara&usbphy { 353*4d39a8ebSAndre Przywara usb0_vbus-supply = <®_drivevbus>; 354*4d39a8ebSAndre Przywara usb1_vbus-supply = <®_drivevbus>; 355*4d39a8ebSAndre Przywara status = "okay"; 356*4d39a8ebSAndre Przywara}; 357