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