1012af553SClément Péron// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2cabbaed7SClément Péron// Copyright (C) 2019 Ondřej Jirman <megous@megous.com> 38fe62f12SOndrej Jirman 48fe62f12SOndrej Jirman/dts-v1/; 58fe62f12SOndrej Jirman 68fe62f12SOndrej Jirman#include "sun50i-h6.dtsi" 7ebae33c3SClément Péron#include "sun50i-h6-cpu-opp.dtsi" 88fe62f12SOndrej Jirman 98fe62f12SOndrej Jirman#include <dt-bindings/gpio/gpio.h> 108fe62f12SOndrej Jirman 118fe62f12SOndrej Jirman/ { 128fe62f12SOndrej Jirman model = "OrangePi 3"; 138fe62f12SOndrej Jirman compatible = "xunlong,orangepi-3", "allwinner,sun50i-h6"; 148fe62f12SOndrej Jirman 158fe62f12SOndrej Jirman aliases { 168fe62f12SOndrej Jirman serial0 = &uart0; 1735117046SOndrej Jirman serial1 = &uart1; 188fe62f12SOndrej Jirman }; 198fe62f12SOndrej Jirman 208fe62f12SOndrej Jirman chosen { 218fe62f12SOndrej Jirman stdout-path = "serial0:115200n8"; 228fe62f12SOndrej Jirman }; 238fe62f12SOndrej Jirman 24802cbe1bSOndrej Jirman connector { 25802cbe1bSOndrej Jirman compatible = "hdmi-connector"; 26802cbe1bSOndrej Jirman ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ 27802cbe1bSOndrej Jirman type = "a"; 28802cbe1bSOndrej Jirman 29802cbe1bSOndrej Jirman port { 30802cbe1bSOndrej Jirman hdmi_con_in: endpoint { 31802cbe1bSOndrej Jirman remote-endpoint = <&hdmi_out_con>; 32802cbe1bSOndrej Jirman }; 33802cbe1bSOndrej Jirman }; 34802cbe1bSOndrej Jirman }; 35802cbe1bSOndrej Jirman 3632507b86SJernej Skrabec ext_osc32k: ext_osc32k_clk { 3732507b86SJernej Skrabec #clock-cells = <0>; 3832507b86SJernej Skrabec compatible = "fixed-clock"; 3932507b86SJernej Skrabec clock-frequency = <32768>; 4032507b86SJernej Skrabec clock-output-names = "ext_osc32k"; 4132507b86SJernej Skrabec }; 4232507b86SJernej Skrabec 438fe62f12SOndrej Jirman leds { 448fe62f12SOndrej Jirman compatible = "gpio-leds"; 458fe62f12SOndrej Jirman 46e299e6ddSMaxime Ripard led-0 { 478fe62f12SOndrej Jirman label = "orangepi:red:power"; 488fe62f12SOndrej Jirman gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 498fe62f12SOndrej Jirman default-state = "on"; 508fe62f12SOndrej Jirman }; 518fe62f12SOndrej Jirman 52e299e6ddSMaxime Ripard led-1 { 538fe62f12SOndrej Jirman label = "orangepi:green:status"; 548fe62f12SOndrej Jirman gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ 558fe62f12SOndrej Jirman }; 568fe62f12SOndrej Jirman }; 578fe62f12SOndrej Jirman 588fe62f12SOndrej Jirman reg_vcc5v: vcc5v { 598fe62f12SOndrej Jirman /* board wide 5V supply directly from the DC jack */ 608fe62f12SOndrej Jirman compatible = "regulator-fixed"; 618fe62f12SOndrej Jirman regulator-name = "vcc-5v"; 628fe62f12SOndrej Jirman regulator-min-microvolt = <5000000>; 638fe62f12SOndrej Jirman regulator-max-microvolt = <5000000>; 648fe62f12SOndrej Jirman regulator-always-on; 658fe62f12SOndrej Jirman }; 6615ede970SOndrej Jirman 6715ede970SOndrej Jirman reg_vcc33_wifi: vcc33-wifi { 6815ede970SOndrej Jirman /* Always on 3.3V regulator for WiFi and BT */ 6915ede970SOndrej Jirman compatible = "regulator-fixed"; 7015ede970SOndrej Jirman regulator-name = "vcc33-wifi"; 7115ede970SOndrej Jirman regulator-min-microvolt = <3300000>; 7215ede970SOndrej Jirman regulator-max-microvolt = <3300000>; 7315ede970SOndrej Jirman regulator-always-on; 7415ede970SOndrej Jirman vin-supply = <®_vcc5v>; 7515ede970SOndrej Jirman }; 7615ede970SOndrej Jirman 7715ede970SOndrej Jirman reg_vcc_wifi_io: vcc-wifi-io { 7815ede970SOndrej Jirman /* Always on 1.8V/300mA regulator for WiFi and BT IO */ 7915ede970SOndrej Jirman compatible = "regulator-fixed"; 8015ede970SOndrej Jirman regulator-name = "vcc-wifi-io"; 8115ede970SOndrej Jirman regulator-min-microvolt = <1800000>; 8215ede970SOndrej Jirman regulator-max-microvolt = <1800000>; 8315ede970SOndrej Jirman regulator-always-on; 8415ede970SOndrej Jirman vin-supply = <®_vcc33_wifi>; 8515ede970SOndrej Jirman }; 8615ede970SOndrej Jirman 8715ede970SOndrej Jirman wifi_pwrseq: wifi-pwrseq { 8815ede970SOndrej Jirman compatible = "mmc-pwrseq-simple"; 8915ede970SOndrej Jirman clocks = <&rtc 1>; 9015ede970SOndrej Jirman clock-names = "ext_clock"; 9115ede970SOndrej Jirman reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */ 9215ede970SOndrej Jirman post-power-on-delay-ms = <200>; 9315ede970SOndrej Jirman }; 948fe62f12SOndrej Jirman}; 958fe62f12SOndrej Jirman 968fe62f12SOndrej Jirman&cpu0 { 978fe62f12SOndrej Jirman cpu-supply = <®_dcdca>; 988fe62f12SOndrej Jirman}; 998fe62f12SOndrej Jirman 100802cbe1bSOndrej Jirman&de { 101802cbe1bSOndrej Jirman status = "okay"; 102802cbe1bSOndrej Jirman}; 103802cbe1bSOndrej Jirman 104b5d84ff8SOndrej Jirman&dwc3 { 105b5d84ff8SOndrej Jirman status = "okay"; 106b5d84ff8SOndrej Jirman}; 107b5d84ff8SOndrej Jirman 1088fe62f12SOndrej Jirman&ehci0 { 1098fe62f12SOndrej Jirman status = "okay"; 1108fe62f12SOndrej Jirman}; 1118fe62f12SOndrej Jirman 1128fe62f12SOndrej Jirman&ehci3 { 1138fe62f12SOndrej Jirman status = "okay"; 1148fe62f12SOndrej Jirman}; 1158fe62f12SOndrej Jirman 1168abc4c4aSClément Péron&gpu { 1178abc4c4aSClément Péron mali-supply = <®_dcdcc>; 1188abc4c4aSClément Péron status = "okay"; 1198abc4c4aSClément Péron}; 1208abc4c4aSClément Péron 121802cbe1bSOndrej Jirman&hdmi { 122802cbe1bSOndrej Jirman status = "okay"; 123802cbe1bSOndrej Jirman}; 124802cbe1bSOndrej Jirman 125802cbe1bSOndrej Jirman&hdmi_out { 126802cbe1bSOndrej Jirman hdmi_out_con: endpoint { 127802cbe1bSOndrej Jirman remote-endpoint = <&hdmi_con_in>; 128802cbe1bSOndrej Jirman }; 129802cbe1bSOndrej Jirman}; 130802cbe1bSOndrej Jirman 1318fe62f12SOndrej Jirman&mmc0 { 1328fe62f12SOndrej Jirman vmmc-supply = <®_cldo1>; 1338fe62f12SOndrej Jirman cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 1348fe62f12SOndrej Jirman bus-width = <4>; 1358fe62f12SOndrej Jirman status = "okay"; 1368fe62f12SOndrej Jirman}; 1378fe62f12SOndrej Jirman 13815ede970SOndrej Jirman&mmc1 { 13915ede970SOndrej Jirman vmmc-supply = <®_vcc33_wifi>; 14015ede970SOndrej Jirman vqmmc-supply = <®_vcc_wifi_io>; 14115ede970SOndrej Jirman mmc-pwrseq = <&wifi_pwrseq>; 14215ede970SOndrej Jirman bus-width = <4>; 14315ede970SOndrej Jirman non-removable; 14415ede970SOndrej Jirman status = "okay"; 14515ede970SOndrej Jirman 14615ede970SOndrej Jirman brcm: sdio-wifi@1 { 14715ede970SOndrej Jirman reg = <1>; 14815ede970SOndrej Jirman compatible = "brcm,bcm4329-fmac"; 14915ede970SOndrej Jirman interrupt-parent = <&r_pio>; 15015ede970SOndrej Jirman interrupts = <1 0 IRQ_TYPE_LEVEL_LOW>; /* PM0 */ 15115ede970SOndrej Jirman interrupt-names = "host-wake"; 15215ede970SOndrej Jirman }; 15315ede970SOndrej Jirman}; 15415ede970SOndrej Jirman 155221a6904SJernej Skrabec&mmc2 { 156221a6904SJernej Skrabec vmmc-supply = <®_cldo1>; 157221a6904SJernej Skrabec vqmmc-supply = <®_bldo2>; 158221a6904SJernej Skrabec cap-mmc-hw-reset; 159221a6904SJernej Skrabec non-removable; 160221a6904SJernej Skrabec bus-width = <8>; 161221a6904SJernej Skrabec status = "okay"; 162221a6904SJernej Skrabec}; 163221a6904SJernej Skrabec 1648fe62f12SOndrej Jirman&ohci0 { 1658fe62f12SOndrej Jirman status = "okay"; 1668fe62f12SOndrej Jirman}; 1678fe62f12SOndrej Jirman 1688fe62f12SOndrej Jirman&ohci3 { 1698fe62f12SOndrej Jirman status = "okay"; 1708fe62f12SOndrej Jirman}; 1718fe62f12SOndrej Jirman 1728fe62f12SOndrej Jirman&pio { 1738fe62f12SOndrej Jirman vcc-pc-supply = <®_bldo2>; 1748fe62f12SOndrej Jirman vcc-pd-supply = <®_cldo1>; 17515ede970SOndrej Jirman vcc-pg-supply = <®_vcc_wifi_io>; 1768fe62f12SOndrej Jirman}; 1778fe62f12SOndrej Jirman 178*531fdbeeSSamuel Holland&r_ir { 179*531fdbeeSSamuel Holland status = "okay"; 180*531fdbeeSSamuel Holland}; 181*531fdbeeSSamuel Holland 182*531fdbeeSSamuel Holland&r_rsb { 1838fe62f12SOndrej Jirman status = "okay"; 1848fe62f12SOndrej Jirman 185*531fdbeeSSamuel Holland axp805: pmic@745 { 1868fe62f12SOndrej Jirman compatible = "x-powers,axp805", "x-powers,axp806"; 187*531fdbeeSSamuel Holland reg = <0x745>; 1888fe62f12SOndrej Jirman interrupt-parent = <&r_intc>; 18973088dfeSSamuel Holland interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; 1908fe62f12SOndrej Jirman interrupt-controller; 1918fe62f12SOndrej Jirman #interrupt-cells = <1>; 1928fe62f12SOndrej Jirman x-powers,self-working-mode; 1938fe62f12SOndrej Jirman vina-supply = <®_vcc5v>; 1948fe62f12SOndrej Jirman vinb-supply = <®_vcc5v>; 1958fe62f12SOndrej Jirman vinc-supply = <®_vcc5v>; 1968fe62f12SOndrej Jirman vind-supply = <®_vcc5v>; 1978fe62f12SOndrej Jirman vine-supply = <®_vcc5v>; 1988fe62f12SOndrej Jirman aldoin-supply = <®_vcc5v>; 1998fe62f12SOndrej Jirman bldoin-supply = <®_vcc5v>; 2008fe62f12SOndrej Jirman cldoin-supply = <®_vcc5v>; 2018fe62f12SOndrej Jirman 2028fe62f12SOndrej Jirman regulators { 2038fe62f12SOndrej Jirman reg_aldo1: aldo1 { 2048fe62f12SOndrej Jirman regulator-always-on; 2058fe62f12SOndrej Jirman regulator-min-microvolt = <3300000>; 2068fe62f12SOndrej Jirman regulator-max-microvolt = <3300000>; 2078fe62f12SOndrej Jirman regulator-name = "vcc-pl-led-ir"; 2088fe62f12SOndrej Jirman }; 2098fe62f12SOndrej Jirman 2108fe62f12SOndrej Jirman reg_aldo2: aldo2 { 2118fe62f12SOndrej Jirman regulator-min-microvolt = <3300000>; 2128fe62f12SOndrej Jirman regulator-max-microvolt = <3300000>; 2138fe62f12SOndrej Jirman regulator-name = "vcc33-audio-tv-ephy-mac"; 2148fe62f12SOndrej Jirman }; 2158fe62f12SOndrej Jirman 2168fe62f12SOndrej Jirman /* ALDO3 is shorted to CLDO1 */ 2178fe62f12SOndrej Jirman reg_aldo3: aldo3 { 2188fe62f12SOndrej Jirman regulator-always-on; 2198fe62f12SOndrej Jirman regulator-min-microvolt = <3300000>; 2208fe62f12SOndrej Jirman regulator-max-microvolt = <3300000>; 2218fe62f12SOndrej Jirman regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-1"; 2228fe62f12SOndrej Jirman }; 2238fe62f12SOndrej Jirman 2248fe62f12SOndrej Jirman reg_bldo1: bldo1 { 2258fe62f12SOndrej Jirman regulator-always-on; 2268fe62f12SOndrej Jirman regulator-min-microvolt = <1800000>; 2278fe62f12SOndrej Jirman regulator-max-microvolt = <1800000>; 2288fe62f12SOndrej Jirman regulator-name = "vcc18-dram-bias-pll"; 2298fe62f12SOndrej Jirman }; 2308fe62f12SOndrej Jirman 2318fe62f12SOndrej Jirman reg_bldo2: bldo2 { 2328fe62f12SOndrej Jirman regulator-always-on; 2338fe62f12SOndrej Jirman regulator-min-microvolt = <1800000>; 2348fe62f12SOndrej Jirman regulator-max-microvolt = <1800000>; 2358fe62f12SOndrej Jirman regulator-name = "vcc-efuse-pcie-hdmi-pc"; 2368fe62f12SOndrej Jirman }; 2378fe62f12SOndrej Jirman 2388fe62f12SOndrej Jirman bldo3 { 2398fe62f12SOndrej Jirman /* unused */ 2408fe62f12SOndrej Jirman }; 2418fe62f12SOndrej Jirman 2428fe62f12SOndrej Jirman bldo4 { 2438fe62f12SOndrej Jirman /* unused */ 2448fe62f12SOndrej Jirman }; 2458fe62f12SOndrej Jirman 2468fe62f12SOndrej Jirman reg_cldo1: cldo1 { 2478fe62f12SOndrej Jirman regulator-always-on; 2488fe62f12SOndrej Jirman regulator-min-microvolt = <3300000>; 2498fe62f12SOndrej Jirman regulator-max-microvolt = <3300000>; 2508fe62f12SOndrej Jirman regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-2"; 2518fe62f12SOndrej Jirman }; 2528fe62f12SOndrej Jirman 2538fe62f12SOndrej Jirman cldo2 { 2548fe62f12SOndrej Jirman /* unused */ 2558fe62f12SOndrej Jirman }; 2568fe62f12SOndrej Jirman 2578fe62f12SOndrej Jirman cldo3 { 2588fe62f12SOndrej Jirman /* unused */ 2598fe62f12SOndrej Jirman }; 2608fe62f12SOndrej Jirman 2618fe62f12SOndrej Jirman reg_dcdca: dcdca { 2628fe62f12SOndrej Jirman regulator-always-on; 2638fe62f12SOndrej Jirman regulator-min-microvolt = <800000>; 2648fe62f12SOndrej Jirman regulator-max-microvolt = <1160000>; 265ebae33c3SClément Péron regulator-ramp-delay = <2500>; 2668fe62f12SOndrej Jirman regulator-name = "vdd-cpu"; 2678fe62f12SOndrej Jirman }; 2688fe62f12SOndrej Jirman 2698fe62f12SOndrej Jirman reg_dcdcc: dcdcc { 2708abc4c4aSClément Péron regulator-enable-ramp-delay = <32000>; 2718fe62f12SOndrej Jirman regulator-min-microvolt = <810000>; 2728fe62f12SOndrej Jirman regulator-max-microvolt = <1080000>; 273ebae33c3SClément Péron regulator-ramp-delay = <2500>; 2748fe62f12SOndrej Jirman regulator-name = "vdd-gpu"; 2758fe62f12SOndrej Jirman }; 2768fe62f12SOndrej Jirman 2778fe62f12SOndrej Jirman reg_dcdcd: dcdcd { 2788fe62f12SOndrej Jirman regulator-always-on; 2798fe62f12SOndrej Jirman regulator-min-microvolt = <960000>; 2808fe62f12SOndrej Jirman regulator-max-microvolt = <960000>; 2818fe62f12SOndrej Jirman regulator-name = "vdd-sys"; 2828fe62f12SOndrej Jirman }; 2838fe62f12SOndrej Jirman 2848fe62f12SOndrej Jirman reg_dcdce: dcdce { 2858fe62f12SOndrej Jirman regulator-always-on; 2868fe62f12SOndrej Jirman regulator-min-microvolt = <1200000>; 2878fe62f12SOndrej Jirman regulator-max-microvolt = <1200000>; 2888fe62f12SOndrej Jirman regulator-name = "vcc-dram"; 2898fe62f12SOndrej Jirman }; 2908fe62f12SOndrej Jirman 2918fe62f12SOndrej Jirman sw { 2928fe62f12SOndrej Jirman /* unused */ 2938fe62f12SOndrej Jirman }; 2948fe62f12SOndrej Jirman }; 2958fe62f12SOndrej Jirman }; 2968fe62f12SOndrej Jirman}; 2978fe62f12SOndrej Jirman 29832507b86SJernej Skrabec&rtc { 29932507b86SJernej Skrabec clocks = <&ext_osc32k>; 30032507b86SJernej Skrabec}; 30132507b86SJernej Skrabec 3028fe62f12SOndrej Jirman&uart0 { 3038fe62f12SOndrej Jirman pinctrl-names = "default"; 3048fe62f12SOndrej Jirman pinctrl-0 = <&uart0_ph_pins>; 3058fe62f12SOndrej Jirman status = "okay"; 3068fe62f12SOndrej Jirman}; 3078fe62f12SOndrej Jirman 30835117046SOndrej Jirman/* There's the BT part of the AP6256 connected to that UART */ 30935117046SOndrej Jirman&uart1 { 31035117046SOndrej Jirman pinctrl-names = "default"; 31135117046SOndrej Jirman pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 31235117046SOndrej Jirman uart-has-rtscts; 31335117046SOndrej Jirman status = "okay"; 31435117046SOndrej Jirman 31535117046SOndrej Jirman bluetooth { 31635117046SOndrej Jirman compatible = "brcm,bcm4345c5"; 31735117046SOndrej Jirman clocks = <&rtc 1>; 31835117046SOndrej Jirman clock-names = "lpo"; 31935117046SOndrej Jirman device-wakeup-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */ 32035117046SOndrej Jirman host-wakeup-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */ 32135117046SOndrej Jirman shutdown-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */ 32235117046SOndrej Jirman max-speed = <1500000>; 32335117046SOndrej Jirman }; 32435117046SOndrej Jirman}; 32535117046SOndrej Jirman 3268fe62f12SOndrej Jirman&usb2otg { 3278fe62f12SOndrej Jirman /* 3288fe62f12SOndrej Jirman * This board doesn't have a controllable VBUS even though it 3298fe62f12SOndrej Jirman * does have an ID pin. Using it as anything but a USB host is 3308fe62f12SOndrej Jirman * unsafe. 3318fe62f12SOndrej Jirman */ 3328fe62f12SOndrej Jirman dr_mode = "host"; 3338fe62f12SOndrej Jirman status = "okay"; 3348fe62f12SOndrej Jirman}; 3358fe62f12SOndrej Jirman 3368fe62f12SOndrej Jirman&usb2phy { 3378fe62f12SOndrej Jirman usb0_id_det-gpios = <&pio 2 15 GPIO_ACTIVE_HIGH>; /* PC15 */ 3388fe62f12SOndrej Jirman usb0_vbus-supply = <®_vcc5v>; 3398fe62f12SOndrej Jirman usb3_vbus-supply = <®_vcc5v>; 3408fe62f12SOndrej Jirman status = "okay"; 3418fe62f12SOndrej Jirman}; 342b5d84ff8SOndrej Jirman 343b5d84ff8SOndrej Jirman&usb3phy { 344b5d84ff8SOndrej Jirman status = "okay"; 345b5d84ff8SOndrej Jirman}; 346