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 451e33e0dbSChen-Yu Tsai power { 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 511e33e0dbSChen-Yu Tsai status { 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 115f0c083b8SJagan Teki&r_i2c { 116f0c083b8SJagan Teki status = "okay"; 117f0c083b8SJagan Teki 118f0c083b8SJagan Teki axp805: pmic@36 { 119f0c083b8SJagan Teki compatible = "x-powers,axp805", "x-powers,axp806"; 120f0c083b8SJagan Teki reg = <0x36>; 121f0c083b8SJagan Teki interrupt-parent = <&r_intc>; 122f0c083b8SJagan Teki interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 123f0c083b8SJagan Teki interrupt-controller; 124f0c083b8SJagan Teki #interrupt-cells = <1>; 125f0c083b8SJagan Teki x-powers,self-working-mode; 126919d2514SChen-Yu Tsai vina-supply = <®_vcc5v>; 127919d2514SChen-Yu Tsai vinb-supply = <®_vcc5v>; 128919d2514SChen-Yu Tsai vinc-supply = <®_vcc5v>; 129919d2514SChen-Yu Tsai vind-supply = <®_vcc5v>; 130919d2514SChen-Yu Tsai vine-supply = <®_vcc5v>; 131919d2514SChen-Yu Tsai aldoin-supply = <®_vcc5v>; 132919d2514SChen-Yu Tsai bldoin-supply = <®_vcc5v>; 133919d2514SChen-Yu Tsai cldoin-supply = <®_vcc5v>; 134f0c083b8SJagan Teki 135f0c083b8SJagan Teki regulators { 136f0c083b8SJagan Teki reg_aldo1: aldo1 { 137f0c083b8SJagan Teki regulator-always-on; 138f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 139f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 140f0c083b8SJagan Teki regulator-name = "vcc-pl"; 141f0c083b8SJagan Teki }; 142f0c083b8SJagan Teki 143f0c083b8SJagan Teki reg_aldo2: aldo2 { 144f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 145f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 146f0c083b8SJagan Teki regulator-name = "vcc-ac200"; 147f0c083b8SJagan Teki }; 148f0c083b8SJagan Teki 149f0c083b8SJagan Teki reg_aldo3: aldo3 { 150f0c083b8SJagan Teki regulator-always-on; 151f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 152f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 153f0c083b8SJagan Teki regulator-name = "vcc25-dram"; 154f0c083b8SJagan Teki }; 155f0c083b8SJagan Teki 156f0c083b8SJagan Teki reg_bldo1: bldo1 { 157f0c083b8SJagan Teki regulator-always-on; 158f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 159f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 160f0c083b8SJagan Teki regulator-name = "vcc-bias-pll"; 161f0c083b8SJagan Teki }; 162f0c083b8SJagan Teki 163f0c083b8SJagan Teki reg_bldo2: bldo2 { 164f0c083b8SJagan Teki regulator-always-on; 165f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 166f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 167f0c083b8SJagan Teki regulator-name = "vcc-efuse-pcie-hdmi-io"; 168f0c083b8SJagan Teki }; 169f0c083b8SJagan Teki 170f0c083b8SJagan Teki reg_bldo3: bldo3 { 171f0c083b8SJagan Teki regulator-always-on; 172f0c083b8SJagan Teki regulator-min-microvolt = <1800000>; 173f0c083b8SJagan Teki regulator-max-microvolt = <1800000>; 174f0c083b8SJagan Teki regulator-name = "vcc-dcxoio"; 175f0c083b8SJagan Teki }; 176f0c083b8SJagan Teki 177f0c083b8SJagan Teki bldo4 { 178f0c083b8SJagan Teki /* unused */ 179f0c083b8SJagan Teki }; 180f0c083b8SJagan Teki 181f0c083b8SJagan Teki reg_cldo1: cldo1 { 182f0c083b8SJagan Teki regulator-always-on; 183f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 184f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 185f0c083b8SJagan Teki regulator-name = "vcc-3v3"; 186f0c083b8SJagan Teki }; 187f0c083b8SJagan Teki 188f0c083b8SJagan Teki reg_cldo2: cldo2 { 189f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 190f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 191f0c083b8SJagan Teki regulator-name = "vcc-wifi-1"; 192f0c083b8SJagan Teki }; 193f0c083b8SJagan Teki 194f0c083b8SJagan Teki reg_cldo3: cldo3 { 195f0c083b8SJagan Teki regulator-min-microvolt = <3300000>; 196f0c083b8SJagan Teki regulator-max-microvolt = <3300000>; 197f0c083b8SJagan Teki regulator-name = "vcc-wifi-2"; 198f0c083b8SJagan Teki }; 199f0c083b8SJagan Teki 200f0c083b8SJagan Teki reg_dcdca: dcdca { 201f0c083b8SJagan Teki regulator-always-on; 202f0c083b8SJagan Teki regulator-min-microvolt = <810000>; 203f0c083b8SJagan Teki regulator-max-microvolt = <1080000>; 204f0c083b8SJagan Teki regulator-name = "vdd-cpu"; 205f0c083b8SJagan Teki }; 206f0c083b8SJagan Teki 207f0c083b8SJagan Teki reg_dcdcc: dcdcc { 2088abc4c4aSClément Péron regulator-enable-ramp-delay = <32000>; 209f0c083b8SJagan Teki regulator-min-microvolt = <810000>; 210f0c083b8SJagan Teki regulator-max-microvolt = <1080000>; 211f0c083b8SJagan Teki regulator-name = "vdd-gpu"; 212f0c083b8SJagan Teki }; 213f0c083b8SJagan Teki 214f0c083b8SJagan Teki reg_dcdcd: dcdcd { 215f0c083b8SJagan Teki regulator-always-on; 216f0c083b8SJagan Teki regulator-min-microvolt = <960000>; 217f0c083b8SJagan Teki regulator-max-microvolt = <960000>; 218f0c083b8SJagan Teki regulator-name = "vdd-sys"; 219f0c083b8SJagan Teki }; 220f0c083b8SJagan Teki 221f0c083b8SJagan Teki reg_dcdce: dcdce { 222f0c083b8SJagan Teki regulator-always-on; 223f0c083b8SJagan Teki regulator-min-microvolt = <1200000>; 224f0c083b8SJagan Teki regulator-max-microvolt = <1200000>; 225f0c083b8SJagan Teki regulator-name = "vcc-dram"; 226f0c083b8SJagan Teki }; 227f0c083b8SJagan Teki 228f0c083b8SJagan Teki sw { 229f0c083b8SJagan Teki /* unused */ 230f0c083b8SJagan Teki }; 231f0c083b8SJagan Teki }; 232f0c083b8SJagan Teki }; 233f0c083b8SJagan Teki}; 234f0c083b8SJagan Teki 23586be7408SClément Péron&r_ir { 23686be7408SClément Péron status = "okay"; 23786be7408SClément Péron}; 23886be7408SClément Péron 239b928fd46SJernej Skrabec&r_pio { 240b928fd46SJernej Skrabec vcc-pm-supply = <®_bldo3>; 241b928fd46SJernej Skrabec}; 242b928fd46SJernej Skrabec 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