1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2// Copyright (C) 2018 Amarula Solutions 3// Author: Jagan Teki <jagan@amarulasolutions.com> 4 5/dts-v1/; 6 7#include "sun50i-h6.dtsi" 8 9#include <dt-bindings/gpio/gpio.h> 10 11/ { 12 model = "OrangePi One Plus"; 13 compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6"; 14 15 aliases { 16 serial0 = &uart0; 17 }; 18 19 chosen { 20 stdout-path = "serial0:115200n8"; 21 }; 22 23 connector { 24 compatible = "hdmi-connector"; 25 type = "a"; 26 ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ 27 28 port { 29 hdmi_con_in: endpoint { 30 remote-endpoint = <&hdmi_out_con>; 31 }; 32 }; 33 }; 34 35 ext_osc32k: ext_osc32k_clk { 36 #clock-cells = <0>; 37 compatible = "fixed-clock"; 38 clock-frequency = <32768>; 39 clock-output-names = "ext_osc32k"; 40 }; 41 42 leds { 43 compatible = "gpio-leds"; 44 45 power { 46 label = "orangepi:red:power"; 47 gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 48 default-state = "on"; 49 }; 50 51 status { 52 label = "orangepi:green:status"; 53 gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ 54 }; 55 }; 56 57 reg_vcc5v: vcc5v { 58 /* board wide 5V supply directly from the DC jack */ 59 compatible = "regulator-fixed"; 60 regulator-name = "vcc-5v"; 61 regulator-min-microvolt = <5000000>; 62 regulator-max-microvolt = <5000000>; 63 regulator-always-on; 64 }; 65}; 66 67&de { 68 status = "okay"; 69}; 70 71&ehci0 { 72 status = "okay"; 73}; 74 75&ehci3 { 76 status = "okay"; 77}; 78 79&gpu { 80 mali-supply = <®_dcdcc>; 81 status = "okay"; 82}; 83 84&hdmi { 85 status = "okay"; 86}; 87 88&hdmi_out { 89 hdmi_out_con: endpoint { 90 remote-endpoint = <&hdmi_con_in>; 91 }; 92}; 93 94&mmc0 { 95 vmmc-supply = <®_cldo1>; 96 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 97 bus-width = <4>; 98 status = "okay"; 99}; 100 101&ohci0 { 102 status = "okay"; 103}; 104 105&ohci3 { 106 status = "okay"; 107}; 108 109&pio { 110 vcc-pc-supply = <®_bldo2>; 111 vcc-pd-supply = <®_cldo1>; 112 vcc-pg-supply = <®_aldo1>; 113}; 114 115&r_i2c { 116 status = "okay"; 117 118 axp805: pmic@36 { 119 compatible = "x-powers,axp805", "x-powers,axp806"; 120 reg = <0x36>; 121 interrupt-parent = <&r_intc>; 122 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 123 interrupt-controller; 124 #interrupt-cells = <1>; 125 x-powers,self-working-mode; 126 vina-supply = <®_vcc5v>; 127 vinb-supply = <®_vcc5v>; 128 vinc-supply = <®_vcc5v>; 129 vind-supply = <®_vcc5v>; 130 vine-supply = <®_vcc5v>; 131 aldoin-supply = <®_vcc5v>; 132 bldoin-supply = <®_vcc5v>; 133 cldoin-supply = <®_vcc5v>; 134 135 regulators { 136 reg_aldo1: aldo1 { 137 regulator-always-on; 138 regulator-min-microvolt = <3300000>; 139 regulator-max-microvolt = <3300000>; 140 regulator-name = "vcc-pl"; 141 }; 142 143 reg_aldo2: aldo2 { 144 regulator-min-microvolt = <3300000>; 145 regulator-max-microvolt = <3300000>; 146 regulator-name = "vcc-ac200"; 147 }; 148 149 reg_aldo3: aldo3 { 150 regulator-always-on; 151 regulator-min-microvolt = <3300000>; 152 regulator-max-microvolt = <3300000>; 153 regulator-name = "vcc25-dram"; 154 }; 155 156 reg_bldo1: bldo1 { 157 regulator-always-on; 158 regulator-min-microvolt = <1800000>; 159 regulator-max-microvolt = <1800000>; 160 regulator-name = "vcc-bias-pll"; 161 }; 162 163 reg_bldo2: bldo2 { 164 regulator-always-on; 165 regulator-min-microvolt = <1800000>; 166 regulator-max-microvolt = <1800000>; 167 regulator-name = "vcc-efuse-pcie-hdmi-io"; 168 }; 169 170 reg_bldo3: bldo3 { 171 regulator-always-on; 172 regulator-min-microvolt = <1800000>; 173 regulator-max-microvolt = <1800000>; 174 regulator-name = "vcc-dcxoio"; 175 }; 176 177 bldo4 { 178 /* unused */ 179 }; 180 181 reg_cldo1: cldo1 { 182 regulator-always-on; 183 regulator-min-microvolt = <3300000>; 184 regulator-max-microvolt = <3300000>; 185 regulator-name = "vcc-3v3"; 186 }; 187 188 reg_cldo2: cldo2 { 189 regulator-min-microvolt = <3300000>; 190 regulator-max-microvolt = <3300000>; 191 regulator-name = "vcc-wifi-1"; 192 }; 193 194 reg_cldo3: cldo3 { 195 regulator-min-microvolt = <3300000>; 196 regulator-max-microvolt = <3300000>; 197 regulator-name = "vcc-wifi-2"; 198 }; 199 200 reg_dcdca: dcdca { 201 regulator-always-on; 202 regulator-min-microvolt = <810000>; 203 regulator-max-microvolt = <1080000>; 204 regulator-name = "vdd-cpu"; 205 }; 206 207 reg_dcdcc: dcdcc { 208 regulator-enable-ramp-delay = <32000>; 209 regulator-min-microvolt = <810000>; 210 regulator-max-microvolt = <1080000>; 211 regulator-name = "vdd-gpu"; 212 }; 213 214 reg_dcdcd: dcdcd { 215 regulator-always-on; 216 regulator-min-microvolt = <960000>; 217 regulator-max-microvolt = <960000>; 218 regulator-name = "vdd-sys"; 219 }; 220 221 reg_dcdce: dcdce { 222 regulator-always-on; 223 regulator-min-microvolt = <1200000>; 224 regulator-max-microvolt = <1200000>; 225 regulator-name = "vcc-dram"; 226 }; 227 228 sw { 229 /* unused */ 230 }; 231 }; 232 }; 233}; 234 235&r_ir { 236 status = "okay"; 237}; 238 239&r_pio { 240 vcc-pm-supply = <®_bldo3>; 241}; 242 243&rtc { 244 clocks = <&ext_osc32k>; 245}; 246 247&uart0 { 248 pinctrl-names = "default"; 249 pinctrl-0 = <&uart0_ph_pins>; 250 status = "okay"; 251}; 252 253&usb2otg { 254 /* 255 * OrangePi Lite 2 and One Plus, where this DT is used, don't 256 * have a controllable VBUS even though they do have an ID pin. 257 * Using it as anything but a USB host is unsafe. 258 */ 259 dr_mode = "host"; 260 status = "okay"; 261}; 262 263&usb2phy { 264 usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */ 265 usb0_vbus-supply = <®_vcc5v>; 266 usb3_vbus-supply = <®_vcc5v>; 267 status = "okay"; 268}; 269