1012af553SClément Péron// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2cabbaed7SClément Péron// Copyright (C) 2018 Amarula Solutions 3cabbaed7SClément Péron// Author: Jagan Teki <jagan@amarulasolutions.com> 4f0c083b8SJagan Teki 5f0c083b8SJagan Teki/dts-v1/; 6f0c083b8SJagan Teki 7f0c083b8SJagan Teki#include "sun50i-h6.dtsi" 8f0c083b8SJagan Teki 9f0c083b8SJagan Teki#include <dt-bindings/gpio/gpio.h> 10f0c083b8SJagan Teki 11f0c083b8SJagan Teki/ { 12f0c083b8SJagan Teki model = "OrangePi One Plus"; 13f0c083b8SJagan Teki compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; 14f0c083b8SJagan Teki 15f0c083b8SJagan Teki aliases { 16f0c083b8SJagan Teki serial0 = &uart0; 17f0c083b8SJagan Teki }; 18f0c083b8SJagan Teki 19f0c083b8SJagan Teki chosen { 20f0c083b8SJagan Teki stdout-path = "serial0:115200n8"; 21f0c083b8SJagan Teki }; 22919d2514SChen-Yu Tsai 232345b744SMarcus Cooper connector { 242345b744SMarcus Cooper compatible = "hdmi-connector"; 252345b744SMarcus Cooper type = "a"; 262345b744SMarcus Cooper ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ 272345b744SMarcus Cooper 282345b744SMarcus Cooper port { 292345b744SMarcus Cooper hdmi_con_in: endpoint { 302345b744SMarcus Cooper remote-endpoint = <&hdmi_out_con>; 312345b744SMarcus Cooper }; 322345b744SMarcus Cooper }; 332345b744SMarcus Cooper }; 342345b744SMarcus Cooper 3532507b86SJernej Skrabec ext_osc32k: ext_osc32k_clk { 3632507b86SJernej Skrabec #clock-cells = <0>; 3732507b86SJernej Skrabec compatible = "fixed-clock"; 3832507b86SJernej Skrabec clock-frequency = <32768>; 3932507b86SJernej Skrabec clock-output-names = "ext_osc32k"; 4032507b86SJernej Skrabec }; 4132507b86SJernej Skrabec 421e33e0dbSChen-Yu Tsai leds { 431e33e0dbSChen-Yu Tsai compatible = "gpio-leds"; 441e33e0dbSChen-Yu Tsai 45e299e6ddSMaxime Ripard led-0 { 461e33e0dbSChen-Yu Tsai label = "orangepi:red:power"; 471e33e0dbSChen-Yu Tsai gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 481e33e0dbSChen-Yu Tsai default-state = "on"; 491e33e0dbSChen-Yu Tsai }; 501e33e0dbSChen-Yu Tsai 51e299e6ddSMaxime Ripard led-1 { 521e33e0dbSChen-Yu Tsai label = "orangepi:green:status"; 531e33e0dbSChen-Yu Tsai gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ 541e33e0dbSChen-Yu Tsai }; 551e33e0dbSChen-Yu Tsai }; 561e33e0dbSChen-Yu Tsai 57919d2514SChen-Yu Tsai reg_vcc5v: vcc5v { 58919d2514SChen-Yu Tsai /* board wide 5V supply directly from the DC jack */ 59919d2514SChen-Yu Tsai compatible = "regulator-fixed"; 60919d2514SChen-Yu Tsai regulator-name = "vcc-5v"; 61919d2514SChen-Yu Tsai regulator-min-microvolt = <5000000>; 62919d2514SChen-Yu Tsai regulator-max-microvolt = <5000000>; 63919d2514SChen-Yu Tsai regulator-always-on; 64919d2514SChen-Yu Tsai }; 65f0c083b8SJagan Teki}; 66f0c083b8SJagan Teki 672345b744SMarcus Cooper&de { 682345b744SMarcus Cooper status = "okay"; 692345b744SMarcus Cooper}; 702345b744SMarcus Cooper 719b8d1ccdSChen-Yu Tsai&ehci0 { 729b8d1ccdSChen-Yu Tsai status = "okay"; 739b8d1ccdSChen-Yu Tsai}; 749b8d1ccdSChen-Yu Tsai 759b8d1ccdSChen-Yu Tsai&ehci3 { 769b8d1ccdSChen-Yu Tsai status = "okay"; 779b8d1ccdSChen-Yu Tsai}; 789b8d1ccdSChen-Yu Tsai 798abc4c4aSClément Péron&gpu { 808abc4c4aSClément Péron mali-supply = <®_dcdcc>; 818abc4c4aSClément Péron status = "okay"; 828abc4c4aSClément Péron}; 838abc4c4aSClément Péron 842345b744SMarcus Cooper&hdmi { 852345b744SMarcus Cooper status = "okay"; 862345b744SMarcus Cooper}; 872345b744SMarcus Cooper 882345b744SMarcus Cooper&hdmi_out { 892345b744SMarcus Cooper hdmi_out_con: endpoint { 902345b744SMarcus Cooper remote-endpoint = <&hdmi_con_in>; 912345b744SMarcus Cooper }; 922345b744SMarcus Cooper}; 932345b744SMarcus Cooper 94f0c083b8SJagan Teki&mmc0 { 95f0c083b8SJagan Teki vmmc-supply = <®_cldo1>; 96f0c083b8SJagan Teki cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 97f0c083b8SJagan Teki bus-width = <4>; 98f0c083b8SJagan Teki status = "okay"; 99f0c083b8SJagan Teki}; 100f0c083b8SJagan Teki 1019b8d1ccdSChen-Yu Tsai&ohci0 { 1029b8d1ccdSChen-Yu Tsai status = "okay"; 1039b8d1ccdSChen-Yu Tsai}; 1049b8d1ccdSChen-Yu Tsai 1059b8d1ccdSChen-Yu Tsai&ohci3 { 1069b8d1ccdSChen-Yu Tsai status = "okay"; 1079b8d1ccdSChen-Yu Tsai}; 1089b8d1ccdSChen-Yu Tsai 109b928fd46SJernej Skrabec&pio { 110b928fd46SJernej Skrabec vcc-pc-supply = <®_bldo2>; 111b928fd46SJernej Skrabec vcc-pd-supply = <®_cldo1>; 112b928fd46SJernej Skrabec vcc-pg-supply = <®_aldo1>; 113b928fd46SJernej Skrabec}; 114b928fd46SJernej Skrabec 115*531fdbeeSSamuel Holland&r_ir { 116*531fdbeeSSamuel Holland status = "okay"; 117*531fdbeeSSamuel Holland}; 118*531fdbeeSSamuel Holland 119*531fdbeeSSamuel Holland&r_pio { 120*531fdbeeSSamuel Holland vcc-pm-supply = <®_bldo3>; 121*531fdbeeSSamuel Holland}; 122*531fdbeeSSamuel Holland 123*531fdbeeSSamuel Holland&r_rsb { 124f0c083b8SJagan Teki status = "okay"; 125f0c083b8SJagan Teki 126*531fdbeeSSamuel Holland axp805: pmic@745 { 127f0c083b8SJagan Teki compatible = "x-powers,axp805", "x-powers,axp806"; 128*531fdbeeSSamuel Holland reg = <0x745>; 129f0c083b8SJagan Teki interrupt-parent = <&r_intc>; 13073088dfeSSamuel Holland interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; 131f0c083b8SJagan Teki interrupt-controller; 132f0c083b8SJagan Teki #interrupt-cells = <1>; 133f0c083b8SJagan Teki x-powers,self-working-mode; 134919d2514SChen-Yu Tsai vina-supply = <®_vcc5v>; 135919d2514SChen-Yu Tsai vinb-supply = <®_vcc5v>; 136919d2514SChen-Yu Tsai vinc-supply = <®_vcc5v>; 137919d2514SChen-Yu Tsai vind-supply = <®_vcc5v>; 138919d2514SChen-Yu Tsai vine-supply = <®_vcc5v>; 139919d2514SChen-Yu Tsai aldoin-supply = <®_vcc5v>; 140919d2514SChen-Yu Tsai bldoin-supply = <®_vcc5v>; 141919d2514SChen-Yu Tsai cldoin-supply = <®_vcc5v>; 142f0c083b8SJagan Teki 143f0c083b8SJagan Teki regulators { 144f0c083b8SJagan Teki reg_aldo1: aldo1 { 145f0c083b8SJagan Teki regulator-always-on; 146f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 147f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 148f0c083b8SJagan Teki regulator-name = "vcc-pl"; 149f0c083b8SJagan Teki }; 150f0c083b8SJagan Teki 151f0c083b8SJagan Teki reg_aldo2: aldo2 { 152f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 153f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 154f0c083b8SJagan Teki regulator-name = "vcc-ac200"; 155f0c083b8SJagan Teki }; 156f0c083b8SJagan Teki 157f0c083b8SJagan Teki reg_aldo3: aldo3 { 158f0c083b8SJagan Teki regulator-always-on; 159f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 160f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 161f0c083b8SJagan Teki regulator-name = "vcc25-dram"; 162f0c083b8SJagan Teki }; 163f0c083b8SJagan Teki 164f0c083b8SJagan Teki reg_bldo1: bldo1 { 165f0c083b8SJagan Teki regulator-always-on; 166f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 167f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 168f0c083b8SJagan Teki regulator-name = "vcc-bias-pll"; 169f0c083b8SJagan Teki }; 170f0c083b8SJagan Teki 171f0c083b8SJagan Teki reg_bldo2: bldo2 { 172f0c083b8SJagan Teki regulator-always-on; 173f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 174f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 175f0c083b8SJagan Teki regulator-name = "vcc-efuse-pcie-hdmi-io"; 176f0c083b8SJagan Teki }; 177f0c083b8SJagan Teki 178f0c083b8SJagan Teki reg_bldo3: bldo3 { 179f0c083b8SJagan Teki regulator-always-on; 180f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 181f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 182f0c083b8SJagan Teki regulator-name = "vcc-dcxoio"; 183f0c083b8SJagan Teki }; 184f0c083b8SJagan Teki 185f0c083b8SJagan Teki bldo4 { 186f0c083b8SJagan Teki /* unused */ 187f0c083b8SJagan Teki }; 188f0c083b8SJagan Teki 189f0c083b8SJagan Teki reg_cldo1: cldo1 { 190f0c083b8SJagan Teki regulator-always-on; 191f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 192f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 193f0c083b8SJagan Teki regulator-name = "vcc-3v3"; 194f0c083b8SJagan Teki }; 195f0c083b8SJagan Teki 196f0c083b8SJagan Teki reg_cldo2: cldo2 { 197f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 198f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 199f0c083b8SJagan Teki regulator-name = "vcc-wifi-1"; 200f0c083b8SJagan Teki }; 201f0c083b8SJagan Teki 202f0c083b8SJagan Teki reg_cldo3: cldo3 { 203f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 204f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 205f0c083b8SJagan Teki regulator-name = "vcc-wifi-2"; 206f0c083b8SJagan Teki }; 207f0c083b8SJagan Teki 208f0c083b8SJagan Teki reg_dcdca: dcdca { 209f0c083b8SJagan Teki regulator-always-on; 210f0c083b8SJagan Teki regulator-min-microvolt = <810000>; 211f0c083b8SJagan Teki regulator-max-microvolt = <1080000>; 212f0c083b8SJagan Teki regulator-name = "vdd-cpu"; 213f0c083b8SJagan Teki }; 214f0c083b8SJagan Teki 215f0c083b8SJagan Teki reg_dcdcc: dcdcc { 2168abc4c4aSClément Péron regulator-enable-ramp-delay = <32000>; 217f0c083b8SJagan Teki regulator-min-microvolt = <810000>; 218f0c083b8SJagan Teki regulator-max-microvolt = <1080000>; 219f0c083b8SJagan Teki regulator-name = "vdd-gpu"; 220f0c083b8SJagan Teki }; 221f0c083b8SJagan Teki 222f0c083b8SJagan Teki reg_dcdcd: dcdcd { 223f0c083b8SJagan Teki regulator-always-on; 224f0c083b8SJagan Teki regulator-min-microvolt = <960000>; 225f0c083b8SJagan Teki regulator-max-microvolt = <960000>; 226f0c083b8SJagan Teki regulator-name = "vdd-sys"; 227f0c083b8SJagan Teki }; 228f0c083b8SJagan Teki 229f0c083b8SJagan Teki reg_dcdce: dcdce { 230f0c083b8SJagan Teki regulator-always-on; 231f0c083b8SJagan Teki regulator-min-microvolt = <1200000>; 232f0c083b8SJagan Teki regulator-max-microvolt = <1200000>; 233f0c083b8SJagan Teki regulator-name = "vcc-dram"; 234f0c083b8SJagan Teki }; 235f0c083b8SJagan Teki 236f0c083b8SJagan Teki sw { 237f0c083b8SJagan Teki /* unused */ 238f0c083b8SJagan Teki }; 239f0c083b8SJagan Teki }; 240f0c083b8SJagan Teki }; 241f0c083b8SJagan Teki}; 242f0c083b8SJagan Teki 24332507b86SJernej Skrabec&rtc { 24432507b86SJernej Skrabec clocks = <&ext_osc32k>; 24532507b86SJernej Skrabec}; 24632507b86SJernej Skrabec 247f0c083b8SJagan Teki&uart0 { 248f0c083b8SJagan Teki pinctrl-names = "default"; 249f0c083b8SJagan Teki pinctrl-0 = <&uart0_ph_pins>; 250f0c083b8SJagan Teki status = "okay"; 251f0c083b8SJagan Teki}; 2529b8d1ccdSChen-Yu Tsai 2539b8d1ccdSChen-Yu Tsai&usb2otg { 25427c9f2a0SJernej Skrabec /* 25527c9f2a0SJernej Skrabec * OrangePi Lite 2 and One Plus, where this DT is used, don't 25627c9f2a0SJernej Skrabec * have a controllable VBUS even though they do have an ID pin. 25727c9f2a0SJernej Skrabec * Using it as anything but a USB host is unsafe. 25827c9f2a0SJernej Skrabec */ 25927c9f2a0SJernej Skrabec dr_mode = "host"; 2609b8d1ccdSChen-Yu Tsai status = "okay"; 2619b8d1ccdSChen-Yu Tsai}; 2629b8d1ccdSChen-Yu Tsai 2639b8d1ccdSChen-Yu Tsai&usb2phy { 2649b8d1ccdSChen-Yu Tsai usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */ 2659b8d1ccdSChen-Yu Tsai usb0_vbus-supply = <®_vcc5v>; 2669b8d1ccdSChen-Yu Tsai usb3_vbus-supply = <®_vcc5v>; 2679b8d1ccdSChen-Yu Tsai status = "okay"; 2689b8d1ccdSChen-Yu Tsai}; 269