forked from torvalds/linux
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm64: dts: allwinner: h616: Add OrangePi Zero 2 board support
The OrangePi Zero 2 is a development board with the new H616 SoC. It comes with the following features: - Four ARM Cortex-A53 cores, Mali-G31 MP2 GPU - 512MiB/1GiB DDR3 DRAM - AXP305 PMIC - Raspberry-Pi-1 compatible GPIO header - extra 13 pin expansion header, exposing pins for 2x USB 2.0 ports - 1 USB 2.0 host port - 1 USB 2.0 type C port (power supply + OTG) - MicroSD slot - on-board 2MiB bootable SPI NOR flash - 1Gbps Ethernet port (via RTL8211F PHY) - micro-HDMI port - unsupported Allwinner WiFi/BT chip For more details see: https://linux-sunxi.org/Orange_Pi_Zero_2 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
- Loading branch information
Showing
2 changed files
with
246 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
245 changes: 245 additions & 0 deletions
245
arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,245 @@ | ||
// SPDX-License-Identifier: (GPL-2.0+ or MIT) | ||
/* | ||
* Copyright (C) 2020 Arm Ltd. | ||
*/ | ||
|
||
/dts-v1/; | ||
|
||
#include "sun50i-h616.dtsi" | ||
|
||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
#include <dt-bindings/leds/common.h> | ||
|
||
/ { | ||
model = "OrangePi Zero2"; | ||
compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616"; | ||
|
||
aliases { | ||
ethernet0 = &emac0; | ||
serial0 = &uart0; | ||
}; | ||
|
||
chosen { | ||
stdout-path = "serial0:115200n8"; | ||
}; | ||
|
||
leds { | ||
compatible = "gpio-leds"; | ||
|
||
led-0 { | ||
function = LED_FUNCTION_POWER; | ||
color = <LED_COLOR_ID_RED>; | ||
gpios = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */ | ||
default-state = "on"; | ||
}; | ||
|
||
led-1 { | ||
function = LED_FUNCTION_STATUS; | ||
color = <LED_COLOR_ID_GREEN>; | ||
gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */ | ||
}; | ||
}; | ||
|
||
reg_vcc5v: vcc5v { | ||
/* board wide 5V supply directly from the USB-C socket */ | ||
compatible = "regulator-fixed"; | ||
regulator-name = "vcc-5v"; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
regulator-always-on; | ||
}; | ||
|
||
reg_usb1_vbus: usb1-vbus { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "usb1-vbus"; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
vin-supply = <®_vcc5v>; | ||
enable-active-high; | ||
gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */ | ||
status = "okay"; | ||
}; | ||
}; | ||
|
||
&ehci1 { | ||
status = "okay"; | ||
}; | ||
|
||
/* USB 2 & 3 are on headers only. */ | ||
|
||
&emac0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&ext_rgmii_pins>; | ||
phy-mode = "rgmii"; | ||
phy-handle = <&ext_rgmii_phy>; | ||
phy-supply = <®_dcdce>; | ||
allwinner,rx-delay-ps = <3100>; | ||
allwinner,tx-delay-ps = <700>; | ||
status = "okay"; | ||
}; | ||
|
||
&mdio0 { | ||
ext_rgmii_phy: ethernet-phy@1 { | ||
compatible = "ethernet-phy-ieee802.3-c22"; | ||
reg = <1>; | ||
}; | ||
}; | ||
|
||
&mmc0 { | ||
vmmc-supply = <®_dcdce>; | ||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ | ||
bus-width = <4>; | ||
status = "okay"; | ||
}; | ||
|
||
&ohci1 { | ||
status = "okay"; | ||
}; | ||
|
||
&r_rsb { | ||
status = "okay"; | ||
|
||
axp305: pmic@745 { | ||
compatible = "x-powers,axp305", "x-powers,axp805", | ||
"x-powers,axp806"; | ||
interrupt-controller; | ||
#interrupt-cells = <1>; | ||
reg = <0x745>; | ||
|
||
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-sys"; | ||
}; | ||
|
||
reg_aldo2: aldo2 { /* 3.3V on headers */ | ||
regulator-always-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vcc3v3-ext"; | ||
}; | ||
|
||
reg_aldo3: aldo3 { /* 3.3V on headers */ | ||
regulator-always-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vcc3v3-ext2"; | ||
}; | ||
|
||
reg_bldo1: bldo1 { | ||
regulator-always-on; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-name = "vcc1v8"; | ||
}; | ||
|
||
bldo2 { | ||
/* unused */ | ||
}; | ||
|
||
bldo3 { | ||
/* unused */ | ||
}; | ||
|
||
bldo4 { | ||
/* unused */ | ||
}; | ||
|
||
cldo1 { | ||
/* reserved */ | ||
}; | ||
|
||
cldo2 { | ||
/* unused */ | ||
}; | ||
|
||
cldo3 { | ||
/* unused */ | ||
}; | ||
|
||
reg_dcdca: dcdca { | ||
regulator-always-on; | ||
regulator-min-microvolt = <810000>; | ||
regulator-max-microvolt = <1080000>; | ||
regulator-name = "vdd-cpu"; | ||
}; | ||
|
||
reg_dcdcc: dcdcc { | ||
regulator-always-on; | ||
regulator-min-microvolt = <810000>; | ||
regulator-max-microvolt = <1080000>; | ||
regulator-name = "vdd-gpu-sys"; | ||
}; | ||
|
||
reg_dcdcd: dcdcd { | ||
regulator-always-on; | ||
regulator-min-microvolt = <1500000>; | ||
regulator-max-microvolt = <1500000>; | ||
regulator-name = "vdd-dram"; | ||
}; | ||
|
||
reg_dcdce: dcdce { | ||
regulator-boot-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vcc-eth-mmc"; | ||
}; | ||
|
||
sw { | ||
/* unused */ | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&spi0 { | ||
status = "okay"; | ||
|
||
flash@0 { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
compatible = "jedec,spi-nor"; | ||
reg = <0>; | ||
spi-max-frequency = <40000000>; | ||
}; | ||
}; | ||
|
||
&uart0 { | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&uart0_ph_pins>; | ||
status = "okay"; | ||
}; | ||
|
||
&usbotg { | ||
/* | ||
* PHY0 pins are connected to a USB-C socket, but a role switch | ||
* is not implemented: both CC pins are pulled to GND. | ||
* The VBUS pins power the device, so a fixed peripheral mode | ||
* is the best choice. | ||
* The board can be powered via GPIOs, in this case port0 *can* | ||
* act as a host (with a cable/adapter ignoring CC), as VBUS is | ||
* then provided by the GPIOs. Any user of this setup would | ||
* need to adjust the DT accordingly: dr_mode set to "host", | ||
* enabling OHCI0 and EHCI0. | ||
*/ | ||
dr_mode = "peripheral"; | ||
status = "okay"; | ||
}; | ||
|
||
&usbphy { | ||
usb1_vbus-supply = <®_usb1_vbus>; | ||
status = "okay"; | ||
}; |