14d39a8ebSAndre Przywara// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 24d39a8ebSAndre Przywara// Copyright (c) 2023 ARM Ltd. 34d39a8ebSAndre Przywara 44d39a8ebSAndre Przywara/dts-v1/; 54d39a8ebSAndre Przywara 64d39a8ebSAndre Przywara#include "sun50i-a64.dtsi" 74d39a8ebSAndre Przywara#include "sun50i-a64-cpu-opp.dtsi" 84d39a8ebSAndre Przywara 94d39a8ebSAndre Przywara#include <dt-bindings/gpio/gpio.h> 104d39a8ebSAndre Przywara 114d39a8ebSAndre Przywara/ { 124d39a8ebSAndre Przywara model = "Remix Mini PC"; 134d39a8ebSAndre Przywara compatible = "jide,remix-mini-pc", "allwinner,sun50i-h64", 144d39a8ebSAndre Przywara "allwinner,sun50i-a64"; 154d39a8ebSAndre Przywara 164d39a8ebSAndre Przywara aliases { 174d39a8ebSAndre Przywara ethernet1 = &rtl8723bs; 184d39a8ebSAndre Przywara serial0 = &uart0; 194d39a8ebSAndre Przywara }; 204d39a8ebSAndre Przywara 214d39a8ebSAndre Przywara chosen { 224d39a8ebSAndre Przywara stdout-path = "serial0:115200n8"; 234d39a8ebSAndre Przywara }; 244d39a8ebSAndre Przywara 254d39a8ebSAndre Przywara hdmi-connector { 264d39a8ebSAndre Przywara compatible = "hdmi-connector"; 274d39a8ebSAndre Przywara type = "a"; 284d39a8ebSAndre Przywara 294d39a8ebSAndre Przywara port { 304d39a8ebSAndre Przywara hdmi_con_in: endpoint { 314d39a8ebSAndre Przywara remote-endpoint = <&hdmi_out_con>; 324d39a8ebSAndre Przywara }; 334d39a8ebSAndre Przywara }; 344d39a8ebSAndre Przywara }; 354d39a8ebSAndre Przywara 364d39a8ebSAndre Przywara reg_vcc5v: regulator-5v { 374d39a8ebSAndre Przywara /* board wide 5V supply directly from the DC input */ 384d39a8ebSAndre Przywara compatible = "regulator-fixed"; 394d39a8ebSAndre Przywara regulator-name = "vcc-5v"; 404d39a8ebSAndre Przywara regulator-min-microvolt = <5000000>; 414d39a8ebSAndre Przywara regulator-max-microvolt = <5000000>; 424d39a8ebSAndre Przywara regulator-always-on; 434d39a8ebSAndre Przywara }; 444d39a8ebSAndre Przywara 455dfdedf0SKrzysztof Kozlowski wifi_pwrseq: pwrseq { 464d39a8ebSAndre Przywara compatible = "mmc-pwrseq-simple"; 474d39a8ebSAndre Przywara reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 484d39a8ebSAndre Przywara post-power-on-delay-ms = <200>; 494d39a8ebSAndre Przywara }; 504d39a8ebSAndre Przywara}; 514d39a8ebSAndre Przywara 524d39a8ebSAndre Przywara&codec { 534d39a8ebSAndre Przywara status = "okay"; 544d39a8ebSAndre Przywara}; 554d39a8ebSAndre Przywara 564d39a8ebSAndre Przywara&codec_analog { 574d39a8ebSAndre Przywara cpvdd-supply = <®_eldo1>; 584d39a8ebSAndre Przywara status = "okay"; 594d39a8ebSAndre Przywara}; 604d39a8ebSAndre Przywara 614d39a8ebSAndre Przywara&cpu0 { 624d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 634d39a8ebSAndre Przywara}; 644d39a8ebSAndre Przywara 654d39a8ebSAndre Przywara&cpu1 { 664d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 674d39a8ebSAndre Przywara}; 684d39a8ebSAndre Przywara 694d39a8ebSAndre Przywara&cpu2 { 704d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 714d39a8ebSAndre Przywara}; 724d39a8ebSAndre Przywara 734d39a8ebSAndre Przywara&cpu3 { 744d39a8ebSAndre Przywara cpu-supply = <®_dcdc2>; 754d39a8ebSAndre Przywara}; 764d39a8ebSAndre Przywara 774d39a8ebSAndre Przywara&dai { 784d39a8ebSAndre Przywara status = "okay"; 794d39a8ebSAndre Przywara}; 804d39a8ebSAndre Przywara 814d39a8ebSAndre Przywara&de { 824d39a8ebSAndre Przywara status = "okay"; 834d39a8ebSAndre Przywara}; 844d39a8ebSAndre Przywara 854d39a8ebSAndre Przywara&ehci0 { 864d39a8ebSAndre Przywara status = "okay"; 874d39a8ebSAndre Przywara}; 884d39a8ebSAndre Przywara 894d39a8ebSAndre Przywara&ehci1 { 904d39a8ebSAndre Przywara status = "okay"; 914d39a8ebSAndre Przywara}; 924d39a8ebSAndre Przywara 934d39a8ebSAndre Przywara&hdmi { 944d39a8ebSAndre Przywara hvcc-supply = <®_dldo1>; 954d39a8ebSAndre Przywara status = "okay"; 964d39a8ebSAndre Przywara}; 974d39a8ebSAndre Przywara 984d39a8ebSAndre Przywara&hdmi_out { 994d39a8ebSAndre Przywara hdmi_out_con: endpoint { 1004d39a8ebSAndre Przywara remote-endpoint = <&hdmi_con_in>; 1014d39a8ebSAndre Przywara }; 1024d39a8ebSAndre Przywara}; 1034d39a8ebSAndre Przywara 1044d39a8ebSAndre Przywara/* Connects to the AC200 chip */ 1054d39a8ebSAndre Przywara&i2c0 { 1064d39a8ebSAndre Przywara pinctrl-names = "default"; 1074d39a8ebSAndre Przywara pinctrl-0 = <&i2c0_pins>; 1084d39a8ebSAndre Przywara status = "okay"; 1094d39a8ebSAndre Przywara}; 1104d39a8ebSAndre Przywara 1114d39a8ebSAndre Przywara&i2c0_pins { 1124d39a8ebSAndre Przywara bias-pull-up; 1134d39a8ebSAndre Przywara}; 1144d39a8ebSAndre Przywara 1154d39a8ebSAndre Przywara&mmc0 { 1164d39a8ebSAndre Przywara pinctrl-names = "default"; 1174d39a8ebSAndre Przywara pinctrl-0 = <&mmc0_pins>; 1184d39a8ebSAndre Przywara vmmc-supply = <®_dcdc1>; 1194d39a8ebSAndre Przywara cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 1204d39a8ebSAndre Przywara disable-wp; 1214d39a8ebSAndre Przywara bus-width = <4>; 1224d39a8ebSAndre Przywara status = "okay"; 1234d39a8ebSAndre Przywara}; 1244d39a8ebSAndre Przywara 1254d39a8ebSAndre Przywara&mmc1 { 1264d39a8ebSAndre Przywara pinctrl-names = "default"; 1274d39a8ebSAndre Przywara pinctrl-0 = <&mmc1_pins>; 1284d39a8ebSAndre Przywara vmmc-supply = <®_aldo1>; 1294d39a8ebSAndre Przywara vqmmc-supply = <®_dldo4>; 1304d39a8ebSAndre Przywara mmc-pwrseq = <&wifi_pwrseq>; 1314d39a8ebSAndre Przywara bus-width = <4>; 1324d39a8ebSAndre Przywara non-removable; 1334d39a8ebSAndre Przywara status = "okay"; 1344d39a8ebSAndre Przywara 1354d39a8ebSAndre Przywara rtl8723bs: wifi@1 { 1364d39a8ebSAndre Przywara reg = <1>; 1374d39a8ebSAndre Przywara interrupt-parent = <&r_pio>; 1384d39a8ebSAndre Przywara interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 1394d39a8ebSAndre Przywara interrupt-names = "host-wake"; 1404d39a8ebSAndre Przywara }; 1414d39a8ebSAndre Przywara}; 1424d39a8ebSAndre Przywara 1434d39a8ebSAndre Przywara&mmc2 { 1444d39a8ebSAndre Przywara pinctrl-names = "default"; 1454d39a8ebSAndre Przywara pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; 1464d39a8ebSAndre Przywara vmmc-supply = <®_dcdc1>; 1474d39a8ebSAndre Przywara vqmmc-supply = <®_eldo1>; 1484d39a8ebSAndre Przywara bus-width = <8>; 1494d39a8ebSAndre Przywara non-removable; 1504d39a8ebSAndre Przywara mmc-hs200-1_8v; 1514d39a8ebSAndre Przywara mmc-hs400-1_8v; 1524d39a8ebSAndre Przywara cap-mmc-hw-reset; 1534d39a8ebSAndre Przywara status = "okay"; 1544d39a8ebSAndre Przywara}; 1554d39a8ebSAndre Przywara 1564d39a8ebSAndre Przywara&ohci0 { 1574d39a8ebSAndre Przywara status = "okay"; 1584d39a8ebSAndre Przywara}; 1594d39a8ebSAndre Przywara 1604d39a8ebSAndre Przywara&ohci1 { 1614d39a8ebSAndre Przywara status = "okay"; 1624d39a8ebSAndre Przywara}; 1634d39a8ebSAndre Przywara 1644d39a8ebSAndre Przywara&pio { 1654d39a8ebSAndre Przywara vcc-pb-supply = <®_dcdc1>; 1664d39a8ebSAndre Przywara vcc-pc-supply = <®_dcdc1>; 1674d39a8ebSAndre Przywara vcc-pd-supply = <®_dcdc1>; 1684d39a8ebSAndre Przywara vcc-pe-supply = <®_dcdc1>; 1694d39a8ebSAndre Przywara vcc-pf-supply = <®_dcdc1>; 1704d39a8ebSAndre Przywara vcc-pg-supply = <®_dldo4>; 1714d39a8ebSAndre Przywara vcc-ph-supply = <®_dcdc1>; 1724d39a8ebSAndre Przywara}; 1734d39a8ebSAndre Przywara 1744d39a8ebSAndre Przywara&r_ir { 1754d39a8ebSAndre Przywara status = "okay"; 1764d39a8ebSAndre Przywara}; 1774d39a8ebSAndre Przywara 1784d39a8ebSAndre Przywara&r_pio { 1794d39a8ebSAndre Przywara /* 1804d39a8ebSAndre Przywara * We cannot add that supply for now since it would create a circular 1814d39a8ebSAndre Przywara * dependency between pinctrl, the regulator and the RSB Bus. 1824d39a8ebSAndre Przywara * 1834d39a8ebSAndre Przywara * vcc-pl-supply = <®_aldo2>; 1844d39a8ebSAndre Przywara */ 1854d39a8ebSAndre Przywara}; 1864d39a8ebSAndre Przywara 1874d39a8ebSAndre Przywara&r_rsb { 1884d39a8ebSAndre Przywara status = "okay"; 1894d39a8ebSAndre Przywara 1904d39a8ebSAndre Przywara axp803: pmic@3a3 { 1914d39a8ebSAndre Przywara compatible = "x-powers,axp803"; 1924d39a8ebSAndre Przywara reg = <0x3a3>; 1934d39a8ebSAndre Przywara interrupt-parent = <&r_intc>; 194*5b36166eSAndre Przywara interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>; 1954d39a8ebSAndre Przywara x-powers,drive-vbus-en; 1964d39a8ebSAndre Przywara 1974d39a8ebSAndre Przywara vin1-supply = <®_vcc5v>; 1984d39a8ebSAndre Przywara vin2-supply = <®_vcc5v>; 1994d39a8ebSAndre Przywara vin3-supply = <®_vcc5v>; 2004d39a8ebSAndre Przywara vin5-supply = <®_vcc5v>; 2014d39a8ebSAndre Przywara vin6-supply = <®_vcc5v>; 2024d39a8ebSAndre Przywara aldoin-supply = <®_vcc5v>; 2034d39a8ebSAndre Przywara dldoin-supply = <®_vcc5v>; 2044d39a8ebSAndre Przywara eldoin-supply = <®_vcc5v>; 2054d39a8ebSAndre Przywara fldoin-supply = <®_vcc5v>; 2064d39a8ebSAndre Przywara drivevbus-supply = <®_vcc5v>; 2074d39a8ebSAndre Przywara ips-supply = <®_vcc5v>; 2084d39a8ebSAndre Przywara 2094d39a8ebSAndre Przywara status = "okay"; 2104d39a8ebSAndre Przywara }; 2114d39a8ebSAndre Przywara}; 2124d39a8ebSAndre Przywara 2134d39a8ebSAndre Przywara#include "axp803.dtsi" 2144d39a8ebSAndre Przywara 2154d39a8ebSAndre Przywara&ac_power_supply { 2164d39a8ebSAndre Przywara status = "okay"; 2174d39a8ebSAndre Przywara}; 2184d39a8ebSAndre Przywara 2194d39a8ebSAndre Przywara®_dcdc1 { 2204d39a8ebSAndre Przywara regulator-always-on; 2214d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 2224d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 2234d39a8ebSAndre Przywara regulator-name = "vcc-3v3"; 2244d39a8ebSAndre Przywara}; 2254d39a8ebSAndre Przywara 2264d39a8ebSAndre Przywara®_dcdc2 { 2274d39a8ebSAndre Przywara regulator-always-on; 2284d39a8ebSAndre Przywara regulator-min-microvolt = <1040000>; 2294d39a8ebSAndre Przywara regulator-max-microvolt = <1300000>; 2304d39a8ebSAndre Przywara regulator-name = "vdd-cpux"; 2314d39a8ebSAndre Przywara}; 2324d39a8ebSAndre Przywara 2334d39a8ebSAndre Przywara/* DCDC3 is polyphased with DCDC2 */ 2344d39a8ebSAndre Przywara 2354d39a8ebSAndre Przywara®_dcdc5 { 2364d39a8ebSAndre Przywara regulator-always-on; 2374d39a8ebSAndre Przywara regulator-min-microvolt = <1500000>; 2384d39a8ebSAndre Przywara regulator-max-microvolt = <1500000>; 2394d39a8ebSAndre Przywara regulator-name = "vcc-dram"; 2404d39a8ebSAndre Przywara}; 2414d39a8ebSAndre Przywara 2424d39a8ebSAndre Przywara/* Deviates from the reset default of 1.1V. */ 2434d39a8ebSAndre Przywara®_dcdc6 { 2444d39a8ebSAndre Przywara regulator-always-on; 2454d39a8ebSAndre Przywara regulator-min-microvolt = <1200000>; 2464d39a8ebSAndre Przywara regulator-max-microvolt = <1200000>; 2474d39a8ebSAndre Przywara regulator-name = "vdd-sys"; 2484d39a8ebSAndre Przywara}; 2494d39a8ebSAndre Przywara 2504d39a8ebSAndre Przywara®_aldo1 { 2514d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 2524d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 2534d39a8ebSAndre Przywara regulator-name = "vcc-wifi"; 2544d39a8ebSAndre Przywara}; 2554d39a8ebSAndre Przywara 2564d39a8ebSAndre Przywara®_aldo2 { 2574d39a8ebSAndre Przywara /* Specifying R_PIO consumer would create circular dependency. */ 2584d39a8ebSAndre Przywara regulator-always-on; 2594d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 2604d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 2614d39a8ebSAndre Przywara regulator-name = "vcc-pl"; 2624d39a8ebSAndre Przywara}; 2634d39a8ebSAndre Przywara 2644d39a8ebSAndre Przywara®_aldo3 { 2654d39a8ebSAndre Przywara regulator-always-on; 2664d39a8ebSAndre Przywara regulator-min-microvolt = <3000000>; 2674d39a8ebSAndre Przywara regulator-max-microvolt = <3000000>; 2684d39a8ebSAndre Przywara regulator-name = "vcc-pll-avcc"; 2694d39a8ebSAndre Przywara}; 2704d39a8ebSAndre Przywara 2714d39a8ebSAndre Przywara/* AC200 power supply */ 2724d39a8ebSAndre Przywara®_dldo1 { 2734d39a8ebSAndre Przywara regulator-always-on; 2744d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 2754d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 2764d39a8ebSAndre Przywara regulator-name = "vcc-ave-33"; 2774d39a8ebSAndre Przywara}; 2784d39a8ebSAndre Przywara 2794d39a8ebSAndre Przywara®_dldo4 { 2804d39a8ebSAndre Przywara regulator-min-microvolt = <3300000>; 2814d39a8ebSAndre Przywara regulator-max-microvolt = <3300000>; 2824d39a8ebSAndre Przywara regulator-name = "vcc-wifi-io"; 2834d39a8ebSAndre Przywara}; 2844d39a8ebSAndre Przywara 2854d39a8ebSAndre Przywara®_drivevbus { 2864d39a8ebSAndre Przywara regulator-name = "usb0-vbus"; 2874d39a8ebSAndre Przywara status = "okay"; 2884d39a8ebSAndre Przywara}; 2894d39a8ebSAndre Przywara 2904d39a8ebSAndre Przywara®_eldo1 { 2914d39a8ebSAndre Przywara regulator-always-on; 2924d39a8ebSAndre Przywara regulator-min-microvolt = <1800000>; 2934d39a8ebSAndre Przywara regulator-max-microvolt = <1800000>; 2944d39a8ebSAndre Przywara regulator-name = "vcc-cpvdd-dram-emmc"; 2954d39a8ebSAndre Przywara}; 2964d39a8ebSAndre Przywara 2974d39a8ebSAndre Przywara/* Supplies the arisc management core, needed by TF-A to power off cores. */ 2984d39a8ebSAndre Przywara®_fldo2 { 2994d39a8ebSAndre Przywara regulator-always-on; 3004d39a8ebSAndre Przywara regulator-min-microvolt = <1100000>; 3014d39a8ebSAndre Przywara regulator-max-microvolt = <1100000>; 3024d39a8ebSAndre Przywara regulator-name = "vdd-cpus"; 3034d39a8ebSAndre Przywara}; 3044d39a8ebSAndre Przywara 3054d39a8ebSAndre Przywara®_rtc_ldo { 3064d39a8ebSAndre Przywara regulator-name = "vcc-rtc"; 3074d39a8ebSAndre Przywara}; 3084d39a8ebSAndre Przywara 3094d39a8ebSAndre Przywara&simplefb_hdmi { 3104d39a8ebSAndre Przywara vcc-hdmi-supply = <®_dcdc1>; 3114d39a8ebSAndre Przywara}; 3124d39a8ebSAndre Przywara 3134d39a8ebSAndre Przywara&sound { 3144d39a8ebSAndre Przywara simple-audio-card,aux-devs = <&codec_analog>; 3154d39a8ebSAndre Przywara simple-audio-card,widgets = "Microphone", "Microphone Jack", 3164d39a8ebSAndre Przywara "Headphone", "Headphone Jack"; 3174d39a8ebSAndre Przywara simple-audio-card,routing = 3184d39a8ebSAndre Przywara "Left DAC", "DACL", 3194d39a8ebSAndre Przywara "Right DAC", "DACR", 3204d39a8ebSAndre Przywara "Headphone Jack", "HP", 3214d39a8ebSAndre Przywara "ADCL", "Left ADC", 3224d39a8ebSAndre Przywara "ADCR", "Right ADC", 3234d39a8ebSAndre Przywara "MIC2", "Microphone Jack"; 3244d39a8ebSAndre Przywara status = "okay"; 3254d39a8ebSAndre Przywara}; 3264d39a8ebSAndre Przywara 3274d39a8ebSAndre Przywara/* On the (unpopulated) UART pads. */ 3284d39a8ebSAndre Przywara&uart0 { 3294d39a8ebSAndre Przywara pinctrl-names = "default"; 3304d39a8ebSAndre Przywara pinctrl-0 = <&uart0_pb_pins>; 3314d39a8ebSAndre Przywara status = "okay"; 3324d39a8ebSAndre Przywara}; 3334d39a8ebSAndre Przywara 3344d39a8ebSAndre Przywara&uart1 { 3354d39a8ebSAndre Przywara pinctrl-names = "default"; 3364d39a8ebSAndre Przywara pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 3374d39a8ebSAndre Przywara uart-has-rtscts; 3384d39a8ebSAndre Przywara status = "okay"; 3394d39a8ebSAndre Przywara 3404d39a8ebSAndre Przywara bluetooth { 3414d39a8ebSAndre Przywara compatible = "realtek,rtl8723bs-bt"; 3424d39a8ebSAndre Przywara enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 3434d39a8ebSAndre Przywara max-speed = <1500000>; 3444d39a8ebSAndre Przywara }; 3454d39a8ebSAndre Przywara}; 3464d39a8ebSAndre Przywara 3474d39a8ebSAndre Przywara&usb_otg { 3484d39a8ebSAndre Przywara dr_mode = "host"; 3494d39a8ebSAndre Przywara status = "okay"; 3504d39a8ebSAndre Przywara}; 3514d39a8ebSAndre Przywara 3524d39a8ebSAndre Przywara&usbphy { 3534d39a8ebSAndre Przywara usb0_vbus-supply = <®_drivevbus>; 3544d39a8ebSAndre Przywara usb1_vbus-supply = <®_drivevbus>; 3554d39a8ebSAndre Przywara status = "okay"; 3564d39a8ebSAndre Przywara}; 357