mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
345 lines
6.7 KiB
345 lines
6.7 KiB
// SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
|
// Copyright (C) 2019 Ondřej Jirman <[email protected]> |
|
|
|
/dts-v1/; |
|
|
|
#include "sun50i-h6.dtsi" |
|
#include "sun50i-h6-cpu-opp.dtsi" |
|
|
|
#include <dt-bindings/gpio/gpio.h> |
|
|
|
/ { |
|
model = "OrangePi 3"; |
|
compatible = "xunlong,orangepi-3", "allwinner,sun50i-h6"; |
|
|
|
aliases { |
|
serial0 = &uart0; |
|
serial1 = &uart1; |
|
}; |
|
|
|
chosen { |
|
stdout-path = "serial0:115200n8"; |
|
}; |
|
|
|
connector { |
|
compatible = "hdmi-connector"; |
|
ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ |
|
type = "a"; |
|
|
|
port { |
|
hdmi_con_in: endpoint { |
|
remote-endpoint = <&hdmi_out_con>; |
|
}; |
|
}; |
|
}; |
|
|
|
ext_osc32k: ext_osc32k_clk { |
|
#clock-cells = <0>; |
|
compatible = "fixed-clock"; |
|
clock-frequency = <32768>; |
|
clock-output-names = "ext_osc32k"; |
|
}; |
|
|
|
leds { |
|
compatible = "gpio-leds"; |
|
|
|
led-0 { |
|
label = "orangepi:red:power"; |
|
gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ |
|
default-state = "on"; |
|
}; |
|
|
|
led-1 { |
|
label = "orangepi:green:status"; |
|
gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ |
|
}; |
|
}; |
|
|
|
reg_vcc5v: vcc5v { |
|
/* board wide 5V supply directly from the DC jack */ |
|
compatible = "regulator-fixed"; |
|
regulator-name = "vcc-5v"; |
|
regulator-min-microvolt = <5000000>; |
|
regulator-max-microvolt = <5000000>; |
|
regulator-always-on; |
|
}; |
|
|
|
reg_vcc33_wifi: vcc33-wifi { |
|
/* Always on 3.3V regulator for WiFi and BT */ |
|
compatible = "regulator-fixed"; |
|
regulator-name = "vcc33-wifi"; |
|
regulator-min-microvolt = <3300000>; |
|
regulator-max-microvolt = <3300000>; |
|
regulator-always-on; |
|
vin-supply = <®_vcc5v>; |
|
}; |
|
|
|
reg_vcc_wifi_io: vcc-wifi-io { |
|
/* Always on 1.8V/300mA regulator for WiFi and BT IO */ |
|
compatible = "regulator-fixed"; |
|
regulator-name = "vcc-wifi-io"; |
|
regulator-min-microvolt = <1800000>; |
|
regulator-max-microvolt = <1800000>; |
|
regulator-always-on; |
|
vin-supply = <®_vcc33_wifi>; |
|
}; |
|
|
|
wifi_pwrseq: wifi-pwrseq { |
|
compatible = "mmc-pwrseq-simple"; |
|
clocks = <&rtc 1>; |
|
clock-names = "ext_clock"; |
|
reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */ |
|
post-power-on-delay-ms = <200>; |
|
}; |
|
}; |
|
|
|
&cpu0 { |
|
cpu-supply = <®_dcdca>; |
|
}; |
|
|
|
&de { |
|
status = "okay"; |
|
}; |
|
|
|
&dwc3 { |
|
status = "okay"; |
|
}; |
|
|
|
&ehci0 { |
|
status = "okay"; |
|
}; |
|
|
|
&ehci3 { |
|
status = "okay"; |
|
}; |
|
|
|
&gpu { |
|
mali-supply = <®_dcdcc>; |
|
status = "okay"; |
|
}; |
|
|
|
&hdmi { |
|
status = "okay"; |
|
}; |
|
|
|
&hdmi_out { |
|
hdmi_out_con: endpoint { |
|
remote-endpoint = <&hdmi_con_in>; |
|
}; |
|
}; |
|
|
|
&mmc0 { |
|
vmmc-supply = <®_cldo1>; |
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ |
|
bus-width = <4>; |
|
status = "okay"; |
|
}; |
|
|
|
&mmc1 { |
|
vmmc-supply = <®_vcc33_wifi>; |
|
vqmmc-supply = <®_vcc_wifi_io>; |
|
mmc-pwrseq = <&wifi_pwrseq>; |
|
bus-width = <4>; |
|
non-removable; |
|
status = "okay"; |
|
|
|
brcm: sdio-wifi@1 { |
|
reg = <1>; |
|
compatible = "brcm,bcm4329-fmac"; |
|
interrupt-parent = <&r_pio>; |
|
interrupts = <1 0 IRQ_TYPE_LEVEL_LOW>; /* PM0 */ |
|
interrupt-names = "host-wake"; |
|
}; |
|
}; |
|
|
|
&mmc2 { |
|
vmmc-supply = <®_cldo1>; |
|
vqmmc-supply = <®_bldo2>; |
|
cap-mmc-hw-reset; |
|
non-removable; |
|
bus-width = <8>; |
|
status = "okay"; |
|
}; |
|
|
|
&ohci0 { |
|
status = "okay"; |
|
}; |
|
|
|
&ohci3 { |
|
status = "okay"; |
|
}; |
|
|
|
&pio { |
|
vcc-pc-supply = <®_bldo2>; |
|
vcc-pd-supply = <®_cldo1>; |
|
vcc-pg-supply = <®_vcc_wifi_io>; |
|
}; |
|
|
|
&r_i2c { |
|
status = "okay"; |
|
|
|
axp805: pmic@36 { |
|
compatible = "x-powers,axp805", "x-powers,axp806"; |
|
reg = <0x36>; |
|
interrupt-parent = <&r_intc>; |
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>; |
|
interrupt-controller; |
|
#interrupt-cells = <1>; |
|
x-powers,self-working-mode; |
|
vina-supply = <®_vcc5v>; |
|
vinb-supply = <®_vcc5v>; |
|
vinc-supply = <®_vcc5v>; |
|
vind-supply = <®_vcc5v>; |
|
vine-supply = <®_vcc5v>; |
|
aldoin-supply = <®_vcc5v>; |
|
bldoin-supply = <®_vcc5v>; |
|
cldoin-supply = <®_vcc5v>; |
|
|
|
regulators { |
|
reg_aldo1: aldo1 { |
|
regulator-always-on; |
|
regulator-min-microvolt = <3300000>; |
|
regulator-max-microvolt = <3300000>; |
|
regulator-name = "vcc-pl-led-ir"; |
|
}; |
|
|
|
reg_aldo2: aldo2 { |
|
regulator-min-microvolt = <3300000>; |
|
regulator-max-microvolt = <3300000>; |
|
regulator-name = "vcc33-audio-tv-ephy-mac"; |
|
}; |
|
|
|
/* ALDO3 is shorted to CLDO1 */ |
|
reg_aldo3: aldo3 { |
|
regulator-always-on; |
|
regulator-min-microvolt = <3300000>; |
|
regulator-max-microvolt = <3300000>; |
|
regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-1"; |
|
}; |
|
|
|
reg_bldo1: bldo1 { |
|
regulator-always-on; |
|
regulator-min-microvolt = <1800000>; |
|
regulator-max-microvolt = <1800000>; |
|
regulator-name = "vcc18-dram-bias-pll"; |
|
}; |
|
|
|
reg_bldo2: bldo2 { |
|
regulator-always-on; |
|
regulator-min-microvolt = <1800000>; |
|
regulator-max-microvolt = <1800000>; |
|
regulator-name = "vcc-efuse-pcie-hdmi-pc"; |
|
}; |
|
|
|
bldo3 { |
|
/* unused */ |
|
}; |
|
|
|
bldo4 { |
|
/* unused */ |
|
}; |
|
|
|
reg_cldo1: cldo1 { |
|
regulator-always-on; |
|
regulator-min-microvolt = <3300000>; |
|
regulator-max-microvolt = <3300000>; |
|
regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-2"; |
|
}; |
|
|
|
cldo2 { |
|
/* unused */ |
|
}; |
|
|
|
cldo3 { |
|
/* unused */ |
|
}; |
|
|
|
reg_dcdca: dcdca { |
|
regulator-always-on; |
|
regulator-min-microvolt = <800000>; |
|
regulator-max-microvolt = <1160000>; |
|
regulator-ramp-delay = <2500>; |
|
regulator-name = "vdd-cpu"; |
|
}; |
|
|
|
reg_dcdcc: dcdcc { |
|
regulator-enable-ramp-delay = <32000>; |
|
regulator-min-microvolt = <810000>; |
|
regulator-max-microvolt = <1080000>; |
|
regulator-ramp-delay = <2500>; |
|
regulator-name = "vdd-gpu"; |
|
}; |
|
|
|
reg_dcdcd: dcdcd { |
|
regulator-always-on; |
|
regulator-min-microvolt = <960000>; |
|
regulator-max-microvolt = <960000>; |
|
regulator-name = "vdd-sys"; |
|
}; |
|
|
|
reg_dcdce: dcdce { |
|
regulator-always-on; |
|
regulator-min-microvolt = <1200000>; |
|
regulator-max-microvolt = <1200000>; |
|
regulator-name = "vcc-dram"; |
|
}; |
|
|
|
sw { |
|
/* unused */ |
|
}; |
|
}; |
|
}; |
|
}; |
|
|
|
&r_ir { |
|
status = "okay"; |
|
}; |
|
|
|
&rtc { |
|
clocks = <&ext_osc32k>; |
|
}; |
|
|
|
&uart0 { |
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&uart0_ph_pins>; |
|
status = "okay"; |
|
}; |
|
|
|
/* There's the BT part of the AP6256 connected to that UART */ |
|
&uart1 { |
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; |
|
uart-has-rtscts; |
|
status = "okay"; |
|
|
|
bluetooth { |
|
compatible = "brcm,bcm4345c5"; |
|
clocks = <&rtc 1>; |
|
clock-names = "lpo"; |
|
device-wakeup-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */ |
|
host-wakeup-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */ |
|
shutdown-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */ |
|
max-speed = <1500000>; |
|
}; |
|
}; |
|
|
|
&usb2otg { |
|
/* |
|
* This board doesn't have a controllable VBUS even though it |
|
* does have an ID pin. Using it as anything but a USB host is |
|
* unsafe. |
|
*/ |
|
dr_mode = "host"; |
|
status = "okay"; |
|
}; |
|
|
|
&usb2phy { |
|
usb0_id_det-gpios = <&pio 2 15 GPIO_ACTIVE_HIGH>; /* PC15 */ |
|
usb0_vbus-supply = <®_vcc5v>; |
|
usb3_vbus-supply = <®_vcc5v>; |
|
status = "okay"; |
|
}; |
|
|
|
&usb3phy { |
|
status = "okay"; |
|
};
|
|
|