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 355dfdedf0SKrzysztof Kozlowski 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>; 97aee2eca8SKryštof Černý disable-wp; 98f0c083b8SJagan Teki bus-width = <4>; 99f0c083b8SJagan Teki status = "okay"; 100f0c083b8SJagan Teki}; 101f0c083b8SJagan Teki 1029b8d1ccdSChen-Yu Tsai&ohci0 { 1039b8d1ccdSChen-Yu Tsai status = "okay"; 1049b8d1ccdSChen-Yu Tsai}; 1059b8d1ccdSChen-Yu Tsai 1069b8d1ccdSChen-Yu Tsai&ohci3 { 1079b8d1ccdSChen-Yu Tsai status = "okay"; 1089b8d1ccdSChen-Yu Tsai}; 1099b8d1ccdSChen-Yu Tsai 110b928fd46SJernej Skrabec&pio { 111b928fd46SJernej Skrabec vcc-pc-supply = <®_bldo2>; 112b928fd46SJernej Skrabec vcc-pd-supply = <®_cldo1>; 113b928fd46SJernej Skrabec vcc-pg-supply = <®_aldo1>; 114b928fd46SJernej Skrabec}; 115b928fd46SJernej Skrabec 116*573f99c7SJernej Skrabec&r_i2c { 117f0c083b8SJagan Teki status = "okay"; 118f0c083b8SJagan Teki 119*573f99c7SJernej Skrabec axp805: pmic@36 { 120f0c083b8SJagan Teki compatible = "x-powers,axp805", "x-powers,axp806"; 121*573f99c7SJernej Skrabec reg = <0x36>; 122f0c083b8SJagan Teki interrupt-parent = <&r_intc>; 12373088dfeSSamuel Holland interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>; 124f0c083b8SJagan Teki interrupt-controller; 125f0c083b8SJagan Teki #interrupt-cells = <1>; 126f0c083b8SJagan Teki x-powers,self-working-mode; 127919d2514SChen-Yu Tsai vina-supply = <®_vcc5v>; 128919d2514SChen-Yu Tsai vinb-supply = <®_vcc5v>; 129919d2514SChen-Yu Tsai vinc-supply = <®_vcc5v>; 130919d2514SChen-Yu Tsai vind-supply = <®_vcc5v>; 131919d2514SChen-Yu Tsai vine-supply = <®_vcc5v>; 132919d2514SChen-Yu Tsai aldoin-supply = <®_vcc5v>; 133919d2514SChen-Yu Tsai bldoin-supply = <®_vcc5v>; 134919d2514SChen-Yu Tsai cldoin-supply = <®_vcc5v>; 135f0c083b8SJagan Teki 136f0c083b8SJagan Teki regulators { 137f0c083b8SJagan Teki reg_aldo1: aldo1 { 138f0c083b8SJagan Teki regulator-always-on; 139f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 140f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 141f0c083b8SJagan Teki regulator-name = "vcc-pl"; 142f0c083b8SJagan Teki }; 143f0c083b8SJagan Teki 144f0c083b8SJagan Teki reg_aldo2: aldo2 { 145f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 146f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 147f0c083b8SJagan Teki regulator-name = "vcc-ac200"; 148f0c083b8SJagan Teki }; 149f0c083b8SJagan Teki 150f0c083b8SJagan Teki reg_aldo3: aldo3 { 151f0c083b8SJagan Teki regulator-always-on; 152f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 153f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 154f0c083b8SJagan Teki regulator-name = "vcc25-dram"; 155f0c083b8SJagan Teki }; 156f0c083b8SJagan Teki 157f0c083b8SJagan Teki reg_bldo1: bldo1 { 158f0c083b8SJagan Teki regulator-always-on; 159f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 160f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 161f0c083b8SJagan Teki regulator-name = "vcc-bias-pll"; 162f0c083b8SJagan Teki }; 163f0c083b8SJagan Teki 164f0c083b8SJagan Teki reg_bldo2: bldo2 { 165f0c083b8SJagan Teki regulator-always-on; 166f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 167f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 168f0c083b8SJagan Teki regulator-name = "vcc-efuse-pcie-hdmi-io"; 169f0c083b8SJagan Teki }; 170f0c083b8SJagan Teki 171f0c083b8SJagan Teki reg_bldo3: bldo3 { 172f0c083b8SJagan Teki regulator-always-on; 173f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 174f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 175f0c083b8SJagan Teki regulator-name = "vcc-dcxoio"; 176f0c083b8SJagan Teki }; 177f0c083b8SJagan Teki 178f0c083b8SJagan Teki bldo4 { 179f0c083b8SJagan Teki /* unused */ 180f0c083b8SJagan Teki }; 181f0c083b8SJagan Teki 182f0c083b8SJagan Teki reg_cldo1: cldo1 { 183f0c083b8SJagan Teki regulator-always-on; 184f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 185f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 186f0c083b8SJagan Teki regulator-name = "vcc-3v3"; 187f0c083b8SJagan Teki }; 188f0c083b8SJagan Teki 189f0c083b8SJagan Teki reg_cldo2: cldo2 { 190f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 191f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 192f0c083b8SJagan Teki regulator-name = "vcc-wifi-1"; 193f0c083b8SJagan Teki }; 194f0c083b8SJagan Teki 195f0c083b8SJagan Teki reg_cldo3: cldo3 { 196f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 197f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 198f0c083b8SJagan Teki regulator-name = "vcc-wifi-2"; 199f0c083b8SJagan Teki }; 200f0c083b8SJagan Teki 201f0c083b8SJagan Teki reg_dcdca: dcdca { 202f0c083b8SJagan Teki regulator-always-on; 203f0c083b8SJagan Teki regulator-min-microvolt = <810000>; 204f0c083b8SJagan Teki regulator-max-microvolt = <1080000>; 205f0c083b8SJagan Teki regulator-name = "vdd-cpu"; 206f0c083b8SJagan Teki }; 207f0c083b8SJagan Teki 208f0c083b8SJagan Teki reg_dcdcc: dcdcc { 2098abc4c4aSClément Péron regulator-enable-ramp-delay = <32000>; 210f0c083b8SJagan Teki regulator-min-microvolt = <810000>; 211f0c083b8SJagan Teki regulator-max-microvolt = <1080000>; 212f0c083b8SJagan Teki regulator-name = "vdd-gpu"; 213f0c083b8SJagan Teki }; 214f0c083b8SJagan Teki 215f0c083b8SJagan Teki reg_dcdcd: dcdcd { 216f0c083b8SJagan Teki regulator-always-on; 217f0c083b8SJagan Teki regulator-min-microvolt = <960000>; 218f0c083b8SJagan Teki regulator-max-microvolt = <960000>; 219f0c083b8SJagan Teki regulator-name = "vdd-sys"; 220f0c083b8SJagan Teki }; 221f0c083b8SJagan Teki 222f0c083b8SJagan Teki reg_dcdce: dcdce { 223f0c083b8SJagan Teki regulator-always-on; 224f0c083b8SJagan Teki regulator-min-microvolt = <1200000>; 225f0c083b8SJagan Teki regulator-max-microvolt = <1200000>; 226f0c083b8SJagan Teki regulator-name = "vcc-dram"; 227f0c083b8SJagan Teki }; 228f0c083b8SJagan Teki 229f0c083b8SJagan Teki sw { 230f0c083b8SJagan Teki /* unused */ 231f0c083b8SJagan Teki }; 232f0c083b8SJagan Teki }; 233f0c083b8SJagan Teki }; 234f0c083b8SJagan Teki}; 235f0c083b8SJagan Teki 236*573f99c7SJernej Skrabec&r_ir { 237*573f99c7SJernej Skrabec status = "okay"; 238*573f99c7SJernej Skrabec}; 239*573f99c7SJernej Skrabec 240*573f99c7SJernej Skrabec&r_pio { 241*573f99c7SJernej Skrabec vcc-pm-supply = <®_bldo3>; 242*573f99c7SJernej Skrabec}; 243*573f99c7SJernej Skrabec 24432507b86SJernej Skrabec&rtc { 24532507b86SJernej Skrabec clocks = <&ext_osc32k>; 24632507b86SJernej Skrabec}; 24732507b86SJernej Skrabec 248f0c083b8SJagan Teki&uart0 { 249f0c083b8SJagan Teki pinctrl-names = "default"; 250f0c083b8SJagan Teki pinctrl-0 = <&uart0_ph_pins>; 251f0c083b8SJagan Teki status = "okay"; 252f0c083b8SJagan Teki}; 2539b8d1ccdSChen-Yu Tsai 2549b8d1ccdSChen-Yu Tsai&usb2otg { 25527c9f2a0SJernej Skrabec /* 25627c9f2a0SJernej Skrabec * OrangePi Lite 2 and One Plus, where this DT is used, don't 25727c9f2a0SJernej Skrabec * have a controllable VBUS even though they do have an ID pin. 25827c9f2a0SJernej Skrabec * Using it as anything but a USB host is unsafe. 25927c9f2a0SJernej Skrabec */ 26027c9f2a0SJernej Skrabec dr_mode = "host"; 2619b8d1ccdSChen-Yu Tsai status = "okay"; 2629b8d1ccdSChen-Yu Tsai}; 2639b8d1ccdSChen-Yu Tsai 2649b8d1ccdSChen-Yu Tsai&usb2phy { 2659b8d1ccdSChen-Yu Tsai usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */ 2669b8d1ccdSChen-Yu Tsai usb0_vbus-supply = <®_vcc5v>; 2679b8d1ccdSChen-Yu Tsai usb3_vbus-supply = <®_vcc5v>; 2689b8d1ccdSChen-Yu Tsai status = "okay"; 2699b8d1ccdSChen-Yu Tsai}; 270