Commit b76cabc9 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'sunxi-dt64-for-5.2' of...

Merge tag 'sunxi-dt64-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt

Allwinner arm64 DT changes for 5.2

Our usual bunch of patches, the most notable one being:
  - Fixing the DTC warnings
  - Fix DT bindings not being properly respected, thanks to the DT
    validation
  - New Board: Oceanic 5205, Beelink GS1, Orange Pi3

* tag 'sunxi-dt64-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (22 commits)
  arm64: dts: allwinner: a64-amarula-relic: Add OV5640 camera node
  arm64: dts: allwinner: a64: Add pinmux setting for CSI MCLK on PE1
  arm64: dts: allwinner: Fix DE2 bus node name
  arm64: dts: allwinner: Remove useless phy-names from EHCI and OHCI
  arm64: dts: allwinner: h6: Add MMC1 pins
  arm64: dts: allwinner: h6: Add Orange Pi 3 DTS
  arm64: dts: allwinner: h6: Introduce Beelink GS1 board
  dt-bindings: vendor-prefixes: add AZW
  arm64: dts: allwinner: h6: move MMC pinctrl to dtsi
  arm64: dts: allwinner: h6: Add device node for SID
  arm64: dts: allwinner: a64: Fix the Codec I2S binding
  arm64: dts: allwinner: a64: Add default dr_mode
  arm64: dts: allwinner: Fix pinctrl node names
  arm64: dts: allwinner: a64: Add missing PIO clocks
  arm64: dts: allwinner: a64: Fix display pipeline endpoints
  arm64: dts: allwinner: a64: Fix the TCON output clock
  arm64: dts: allwinner: h6: Add Video Engine node
  arm64: dts: allwinner: a64: Add cross links for the mixers
  arm64: allwinner: a64: Add Oceanic 5205 5inMFD initial support
  dt-bindings: Add vendor prefix for oceanic
  ...
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents f5d6e8c0 7cc399f2
...@@ -54,6 +54,7 @@ avic Shanghai AVIC Optoelectronics Co., Ltd. ...@@ -54,6 +54,7 @@ avic Shanghai AVIC Optoelectronics Co., Ltd.
avnet Avnet, Inc. avnet Avnet, Inc.
axentia Axentia Technologies AB axentia Axentia Technologies AB
axis Axis Communications AB axis Axis Communications AB
azw Shenzhen AZW Technology Co., Ltd.
bananapi BIPAI KEJI LIMITED bananapi BIPAI KEJI LIMITED
bhf Beckhoff Automation GmbH & Co. KG bhf Beckhoff Automation GmbH & Co. KG
bitmain Bitmain Technologies bitmain Bitmain Technologies
...@@ -287,6 +288,7 @@ nuvoton Nuvoton Technology Corporation ...@@ -287,6 +288,7 @@ nuvoton Nuvoton Technology Corporation
nvd New Vision Display nvd New Vision Display
nvidia NVIDIA nvidia NVIDIA
nxp NXP Semiconductors nxp NXP Semiconductors
oceanic Oceanic Systems (UK) Ltd.
okaya Okaya Electric America, Inc. okaya Okaya Electric America, Inc.
oki Oki Electric Industry Co., Ltd. oki Oki Electric Industry Co., Ltd.
olimex OLIMEX Ltd. olimex OLIMEX Ltd.
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-amarula-relic.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-amarula-relic.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-oceanic-5205-5inmfd.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb
...@@ -19,6 +20,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb ...@@ -19,6 +20,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-beelink-gs1.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-3.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-lite2.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-lite2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
...@@ -22,6 +22,41 @@ chosen { ...@@ -22,6 +22,41 @@ chosen {
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
}; };
i2c {
compatible = "i2c-gpio";
sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>;
scl-gpios = <&pio 4 12 GPIO_ACTIVE_HIGH>;
i2c-gpio,delay-us = <5>;
#address-cells = <1>;
#size-cells = <0>;
ov5640: camera@3c {
compatible = "ovti,ov5640";
reg = <0x3c>;
pinctrl-names = "default";
pinctrl-0 = <&csi_mclk_pin>;
clocks = <&ccu CLK_CSI_MCLK>;
clock-names = "xclk";
AVDD-supply = <&reg_aldo1>;
DOVDD-supply = <&reg_dldo3>;
DVDD-supply = <&reg_eldo3>;
reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>; /* CSI-RST-R: PE14 */
powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* CSI-STBY-R: PE15 */
port {
ov5640_ep: endpoint {
remote-endpoint = <&csi_ep>;
bus-width = <8>;
hsync-active = <1>; /* Active high */
vsync-active = <0>; /* Active low */
data-active = <1>; /* Active high */
pclk-sample = <1>; /* Rising */
};
};
};
};
wifi_pwrseq: wifi-pwrseq { wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple"; compatible = "mmc-pwrseq-simple";
clocks = <&rtc 1>; clocks = <&rtc 1>;
...@@ -30,10 +65,40 @@ wifi_pwrseq: wifi-pwrseq { ...@@ -30,10 +65,40 @@ wifi_pwrseq: wifi-pwrseq {
}; };
}; };
&csi {
status = "okay";
port {
csi_ep: endpoint {
remote-endpoint = <&ov5640_ep>;
bus-width = <8>;
hsync-active = <1>; /* Active high */
vsync-active = <0>; /* Active low */
data-active = <1>; /* Active high */
pclk-sample = <1>; /* Rising */
};
};
};
&ehci0 { &ehci0 {
status = "okay"; status = "okay";
}; };
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "okay";
sensor@48 {
compatible = "st,stlm75";
reg = <0x48>;
};
};
&i2c0_pins {
bias-pull-up;
};
&mmc1 { &mmc1 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>; pinctrl-0 = <&mmc1_pins>;
......
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (C) 2019 Oceanic Systems (UK) Ltd.
* Copyright (C) 2019 Amarula Solutions B.V.
* Author: Jagan Teki <jagan@amarulasolutions.com>
*/
/dts-v1/;
#include "sun50i-a64-sopine.dtsi"
/ {
model = "Oceanic 5205 5inMFD";
compatible = "oceanic,5205-5inmfd", "allwinner,sun50i-a64";
aliases {
ethernet0 = &emac;
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
};
&ehci0 {
status = "okay";
};
&emac {
pinctrl-names = "default";
pinctrl-0 = <&rgmii_pins>;
phy-mode = "rgmii";
phy-handle = <&ext_rgmii_phy>;
phy-supply = <&reg_dc1sw>;
allwinner,tx-delay-ps = <600>;
status = "okay";
};
&mdio {
ext_rgmii_phy: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
};
};
&ohci0 {
status = "okay";
};
&reg_dc1sw {
regulator-name = "vcc-phy";
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pb_pins>;
status = "okay";
};
&usb_otg {
dr_mode = "host";
status = "okay";
};
&usbphy {
status = "okay";
};
...@@ -104,7 +104,6 @@ &dai { ...@@ -104,7 +104,6 @@ &dai {
&ehci0 { &ehci0 {
phys = <&usbphy 0>; phys = <&usbphy 0>;
phy-names = "usb";
status = "okay"; status = "okay";
}; };
...@@ -151,7 +150,6 @@ &mmc2 { ...@@ -151,7 +150,6 @@ &mmc2 {
&ohci0 { &ohci0 {
phys = <&usbphy 0>; phys = <&usbphy 0>;
phy-names = "usb";
status = "okay"; status = "okay";
}; };
......
...@@ -21,6 +21,15 @@ aliases { ...@@ -21,6 +21,15 @@ aliases {
serial0 = &uart0; serial0 = &uart0;
}; };
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 0 50000 0>;
power-supply = <&reg_dcdc1>;
brightness-levels = <0 5 7 10 14 20 28 40 56 80 112>;
default-brightness-level = <5>;
enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
};
chosen { chosen {
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
...@@ -131,6 +140,10 @@ &ohci1 { ...@@ -131,6 +140,10 @@ &ohci1 {
status = "okay"; status = "okay";
}; };
&pwm {
status = "okay";
};
&r_rsb { &r_rsb {
status = "okay"; status = "okay";
......
...@@ -217,7 +217,7 @@ soc { ...@@ -217,7 +217,7 @@ soc {
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
de2@1000000 { bus@1000000 {
compatible = "allwinner,sun50i-a64-de2"; compatible = "allwinner,sun50i-a64-de2";
reg = <0x1000000 0x400000>; reg = <0x1000000 0x400000>;
allwinner,sram = <&de2_sram 1>; allwinner,sram = <&de2_sram 1>;
...@@ -251,11 +251,19 @@ ports { ...@@ -251,11 +251,19 @@ ports {
#size-cells = <0>; #size-cells = <0>;
mixer0_out: port@1 { mixer0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>; reg = <1>;
mixer0_out_tcon0: endpoint { mixer0_out_tcon0: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_in_mixer0>; remote-endpoint = <&tcon0_in_mixer0>;
}; };
mixer0_out_tcon1: endpoint@1 {
reg = <1>;
remote-endpoint = <&tcon1_in_mixer0>;
};
}; };
}; };
}; };
...@@ -274,9 +282,17 @@ ports { ...@@ -274,9 +282,17 @@ ports {
#size-cells = <0>; #size-cells = <0>;
mixer1_out: port@1 { mixer1_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>; reg = <1>;
mixer1_out_tcon1: endpoint { mixer1_out_tcon0: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_in_mixer1>;
};
mixer1_out_tcon1: endpoint@1 {
reg = <1>;
remote-endpoint = <&tcon1_in_mixer1>; remote-endpoint = <&tcon1_in_mixer1>;
}; };
}; };
...@@ -338,6 +354,7 @@ tcon0: lcd-controller@1c0c000 { ...@@ -338,6 +354,7 @@ tcon0: lcd-controller@1c0c000 {
clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
clock-names = "ahb", "tcon-ch0"; clock-names = "ahb", "tcon-ch0";
clock-output-names = "tcon-pixel-clock"; clock-output-names = "tcon-pixel-clock";
#clock-cells = <0>;
resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
reset-names = "lcd", "lvds"; reset-names = "lcd", "lvds";
...@@ -354,6 +371,11 @@ tcon0_in_mixer0: endpoint@0 { ...@@ -354,6 +371,11 @@ tcon0_in_mixer0: endpoint@0 {
reg = <0>; reg = <0>;
remote-endpoint = <&mixer0_out_tcon0>; remote-endpoint = <&mixer0_out_tcon0>;
}; };
tcon0_in_mixer1: endpoint@1 {
reg = <1>;
remote-endpoint = <&mixer1_out_tcon0>;
};
}; };
tcon0_out: port@1 { tcon0_out: port@1 {
...@@ -379,9 +401,17 @@ ports { ...@@ -379,9 +401,17 @@ ports {
#size-cells = <0>; #size-cells = <0>;
tcon1_in: port@0 { tcon1_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>; reg = <0>;
tcon1_in_mixer1: endpoint { tcon1_in_mixer0: endpoint@0 {
reg = <0>;
remote-endpoint = <&mixer0_out_tcon1>;
};
tcon1_in_mixer1: endpoint@1 {
reg = <1>;
remote-endpoint = <&mixer1_out_tcon1>; remote-endpoint = <&mixer1_out_tcon1>;
}; };
}; };
...@@ -467,6 +497,7 @@ usb_otg: usb@1c19000 { ...@@ -467,6 +497,7 @@ usb_otg: usb@1c19000 {
phys = <&usbphy 0>; phys = <&usbphy 0>;
phy-names = "usb"; phy-names = "usb";
extcon = <&usbphy 0>; extcon = <&usbphy 0>;
dr_mode = "otg";
status = "disabled"; status = "disabled";
}; };
...@@ -522,7 +553,6 @@ ehci1: usb@1c1b000 { ...@@ -522,7 +553,6 @@ ehci1: usb@1c1b000 {
resets = <&ccu RST_BUS_OHCI1>, resets = <&ccu RST_BUS_OHCI1>,
<&ccu RST_BUS_EHCI1>; <&ccu RST_BUS_EHCI1>;
phys = <&usbphy 1>; phys = <&usbphy 1>;
phy-names = "usb";
status = "disabled"; status = "disabled";
}; };
...@@ -534,7 +564,6 @@ ohci1: usb@1c1b400 { ...@@ -534,7 +564,6 @@ ohci1: usb@1c1b400 {
<&ccu CLK_USB_OHCI1>; <&ccu CLK_USB_OHCI1>;
resets = <&ccu RST_BUS_OHCI1>; resets = <&ccu RST_BUS_OHCI1>;
phys = <&usbphy 1>; phys = <&usbphy 1>;
phy-names = "usb";
status = "disabled"; status = "disabled";
}; };
...@@ -553,7 +582,8 @@ pio: pinctrl@1c20800 { ...@@ -553,7 +582,8 @@ pio: pinctrl@1c20800 {
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu 58>; clocks = <&ccu 58>, <&osc24M>, <&rtc 0>;
clock-names = "apb", "hosc", "losc";
gpio-controller; gpio-controller;
#gpio-cells = <3>; #gpio-cells = <3>;
interrupt-controller; interrupt-controller;
...@@ -565,12 +595,18 @@ csi_pins: csi-pins { ...@@ -565,12 +595,18 @@ csi_pins: csi-pins {
function = "csi"; function = "csi";
}; };
i2c0_pins: i2c0_pins { /omit-if-no-ref/
csi_mclk_pin: csi-mclk-pin {
pins = "PE1";
function = "csi";
};
i2c0_pins: i2c0-pins {
pins = "PH0", "PH1"; pins = "PH0", "PH1";
function = "i2c0"; function = "i2c0";
}; };
i2c1_pins: i2c1_pins { i2c1_pins: i2c1-pins {
pins = "PH2", "PH3"; pins = "PH2", "PH3";
function = "i2c1"; function = "i2c1";
}; };
...@@ -607,19 +643,19 @@ mmc2_ds_pin: mmc2-ds-pin { ...@@ -607,19 +643,19 @@ mmc2_ds_pin: mmc2-ds-pin {
bias-pull-up; bias-pull-up;
}; };
pwm_pin: pwm_pin { pwm_pin: pwm-pin {
pins = "PD22"; pins = "PD22";
function = "pwm"; function = "pwm";
}; };
rmii_pins: rmii_pins { rmii_pins: rmii-pins {
pins = "PD10", "PD11", "PD13", "PD14", "PD17", pins = "PD10", "PD11", "PD13", "PD14", "PD17",
"PD18", "PD19", "PD20", "PD22", "PD23"; "PD18", "PD19", "PD20", "PD22", "PD23";
function = "emac"; function = "emac";
drive-strength = <40>; drive-strength = <40>;
}; };
rgmii_pins: rgmii_pins { rgmii_pins: rgmii-pins {
pins = "PD8", "PD9", "PD10", "PD11", "PD12", pins = "PD8", "PD9", "PD10", "PD11", "PD12",
"PD13", "PD15", "PD16", "PD17", "PD18", "PD13", "PD15", "PD16", "PD17", "PD18",
"PD19", "PD20", "PD21", "PD22", "PD23"; "PD19", "PD20", "PD21", "PD22", "PD23";
...@@ -627,17 +663,17 @@ rgmii_pins: rgmii_pins { ...@@ -627,17 +663,17 @@ rgmii_pins: rgmii_pins {
drive-strength = <40>; drive-strength = <40>;
}; };
spdif_tx_pin: spdif { spdif_tx_pin: spdif-tx-pin {
pins = "PH8"; pins = "PH8";
function = "spdif"; function = "spdif";
}; };
spi0_pins: spi0 { spi0_pins: spi0-pins {
pins = "PC0", "PC1", "PC2", "PC3"; pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0"; function = "spi0";
}; };
spi1_pins: spi1 { spi1_pins: spi1-pins {
pins = "PD0", "PD1", "PD2", "PD3"; pins = "PD0", "PD1", "PD2", "PD3";
function = "spi1"; function = "spi1";
}; };
...@@ -647,12 +683,12 @@ uart0_pb_pins: uart0-pb-pins { ...@@ -647,12 +683,12 @@ uart0_pb_pins: uart0-pb-pins {
function = "uart0"; function = "uart0";
}; };
uart1_pins: uart1_pins { uart1_pins: uart1-pins {
pins = "PG6", "PG7"; pins = "PG6", "PG7";
function = "uart1"; function = "uart1";
}; };
uart1_rts_cts_pins: uart1_rts_cts_pins { uart1_rts_cts_pins: uart1-rts-cts-pins {
pins = "PG8", "PG9"; pins = "PG8", "PG9";
function = "uart1"; function = "uart1";
}; };
...@@ -730,7 +766,6 @@ dai: dai@1c22c00 { ...@@ -730,7 +766,6 @@ dai: dai@1c22c00 {
clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
clock-names = "apb", "mod"; clock-names = "apb", "mod";
resets = <&ccu RST_BUS_CODEC>; resets = <&ccu RST_BUS_CODEC>;
reset-names = "rst";
dmas = <&dma 15>, <&dma 15>; dmas = <&dma 15>, <&dma 15>;
dma-names = "rx", "tx"; dma-names = "rx", "tx";
status = "disabled"; status = "disabled";
...@@ -1064,12 +1099,12 @@ r_i2c_pl89_pins: r-i2c-pl89-pins { ...@@ -1064,12 +1099,12 @@ r_i2c_pl89_pins: r-i2c-pl89-pins {
function = "s_i2c"; function = "s_i2c";
}; };
r_pwm_pin: pwm { r_pwm_pin: r-pwm-pin {
pins = "PL10"; pins = "PL10";
function = "s_pwm"; function = "s_pwm";
}; };
r_rsb_pins: rsb { r_rsb_pins: r-rsb-pins {
pins = "PL0", "PL1"; pins = "PL0", "PL1";
function = "s_rsb"; function = "s_rsb";
}; };
......
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
/*
* Copyright (C) 2019 Clément Péron <peron.clem@gmail.com>
*/
/dts-v1/;
#include "sun50i-h6.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ {
model = "Beelink GS1";
compatible = "azw,beelink-gs1", "allwinner,sun50i-h6";
aliases {
ethernet0 = &emac;
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
leds {
compatible = "gpio-leds";
power {
label = "beelink:white:power";
gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
default-state = "on";
};
};
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;
};
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
&emac {
pinctrl-names = "default";
pinctrl-0 = <&ext_rgmii_pins>;
phy-mode = "rgmii";
phy-handle = <&ext_rgmii_phy>;
phy-supply = <&reg_aldo2>;
status = "okay";
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&mdio {
ext_rgmii_phy: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
};
};
&mmc0 {
vmmc-supply = <&reg_cldo1>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
bus-width = <4>;
status = "okay";
};
&mmc2 {
vmmc-supply = <&reg_cldo1>;
vqmmc-supply = <&reg_bldo2>;
non-removable;
cap-mmc-hw-reset;
bus-width = <8>;
status = "okay";
};
&ohci0 {
status = "okay";
};
&pio {
vcc-pd-supply = <&reg_cldo1>;
vcc-pg-supply = <&reg_aldo1>;
};
&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 = <&reg_vcc5v>;
vinb-supply = <&reg_vcc5v>;
vinc-supply = <&reg_vcc5v>;
vind-supply = <&reg_vcc5v>;
vine-supply = <&reg_vcc5v>;
aldoin-supply = <&reg_vcc5v>;
bldoin-supply = <&reg_vcc5v>;
cldoin-supply = <&reg_vcc5v>;
regulators {
reg_aldo1: aldo1 {
regulator-always-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-pl";
};
reg_aldo2: aldo2 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-ac200";
regulator-enable-ramp-delay = <100000>;
};
reg_aldo3: aldo3 {
regulator-always-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc25-dram";
};
reg_bldo1: bldo1 {
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcc-bias-pll";
};
reg_bldo2: bldo2 {
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcc-efuse-pcie-hdmi-io";
};
reg_bldo3: bldo3 {
regulator-always-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "vcc-dcxoio";
};
bldo4 {
/* unused */
};
reg_cldo1: cldo1 {
regulator-always-on;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-3v3";
};
reg_cldo2: cldo2 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-wifi-1";
};
reg_cldo3: cldo3 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-wifi-2";
};
reg_dcdca: dcdca {
regulator-always-on;
regulator-min-microvolt = <810000>;
regulator-max-microvolt = <1080000>;
regulator-name = "vdd-cpu";
};
reg_dcdcc: dcdcc {
regulator-min-microvolt = <810000>;
regulator-max-microvolt = <1080000>;
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_pio {
/*
* PL0 and PL1 are used for PMIC I2C
* don't enable the pl-supply else
* it will fail at boot
*
* vcc-pl-supply = <&reg_aldo1>;
*/
vcc-pm-supply = <&reg_aldo1>;
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_ph_pins>;
status = "okay";
};
&usb2otg {
dr_mode = "host";
status = "okay";
};
&usb2phy {
usb0_vbus-supply = <&reg_vcc5v>;
status = "okay";
};
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
/*
* Copyright (C) 2019 Ondřej Jirman <megous@megous.com>
*/
/dts-v1/;
#include "sun50i-h6.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ {
model = "OrangePi 3";
compatible = "xunlong,orangepi-3", "allwinner,sun50i-h6";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
leds {
compatible = "gpio-leds";
power {
label = "orangepi:red:power";
gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
default-state = "on";
};
status {
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;
};
};
&cpu0 {
cpu-supply = <&reg_dcdca>;
};
&ehci0 {
status = "okay";
};
&ehci3 {
status = "okay";
};
&mmc0 {
vmmc-supply = <&reg_cldo1>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
bus-width = <4>;
status = "okay";
};
&ohci0 {
status = "okay";
};
&ohci3 {
status = "okay";
};
&pio {
vcc-pc-supply = <&reg_bldo2>;
vcc-pd-supply = <&reg_cldo1>;
};
&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 = <&reg_vcc5v>;
vinb-supply = <&reg_vcc5v>;
vinc-supply = <&reg_vcc5v>;
vind-supply = <&reg_vcc5v>;
vine-supply = <&reg_vcc5v>;
aldoin-supply = <&reg_vcc5v>;
bldoin-supply = <&reg_vcc5v>;
cldoin-supply = <&reg_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-name = "vdd-cpu";
};
reg_dcdcc: dcdcc {
regulator-min-microvolt = <810000>;
regulator-max-microvolt = <1080000>;
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 */
};
};
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_ph_pins>;
status = "okay";
};
&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 = <&reg_vcc5v>;
usb3_vbus-supply = <&reg_vcc5v>;
status = "okay";
};
...@@ -56,8 +56,6 @@ &ehci3 { ...@@ -56,8 +56,6 @@ &ehci3 {
}; };
&mmc0 { &mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
vmmc-supply = <&reg_cldo1>; vmmc-supply = <&reg_cldo1>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
bus-width = <4>; bus-width = <4>;
......
...@@ -104,8 +104,6 @@ &ehci3 { ...@@ -104,8 +104,6 @@ &ehci3 {
}; };
&mmc0 { &mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
vmmc-supply = <&reg_cldo1>; vmmc-supply = <&reg_cldo1>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
bus-width = <4>; bus-width = <4>;
...@@ -113,8 +111,6 @@ &mmc0 { ...@@ -113,8 +111,6 @@ &mmc0 {
}; };
&mmc2 { &mmc2 {
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
vmmc-supply = <&reg_cldo1>; vmmc-supply = <&reg_cldo1>;
vqmmc-supply = <&reg_bldo2>; vqmmc-supply = <&reg_bldo2>;
non-removable; non-removable;
......
...@@ -101,7 +101,7 @@ soc { ...@@ -101,7 +101,7 @@ soc {
#size-cells = <1>; #size-cells = <1>;
ranges; ranges;
display-engine@1000000 { bus@1000000 {
compatible = "allwinner,sun50i-h6-de3", compatible = "allwinner,sun50i-h6-de3",
"allwinner,sun50i-a64-de2"; "allwinner,sun50i-a64-de2";
reg = <0x1000000 0x400000>; reg = <0x1000000 0x400000>;
...@@ -146,6 +146,17 @@ mixer0_out_tcon_top_mixer0: endpoint { ...@@ -146,6 +146,17 @@ mixer0_out_tcon_top_mixer0: endpoint {
}; };
}; };
video-codec@1c0e000 {
compatible = "allwinner,sun50i-h6-video-engine";
reg = <0x01c0e000 0x2000>;
clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
<&ccu CLK_MBUS_VE>;
clock-names = "ahb", "mod", "ram";
resets = <&ccu RST_BUS_VE>;
interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
allwinner,sram = <&ve_sram 1>;
};
syscon: syscon@3000000 { syscon: syscon@3000000 {
compatible = "allwinner,sun50i-h6-system-control", compatible = "allwinner,sun50i-h6-system-control",
"allwinner,sun50i-a64-system-control"; "allwinner,sun50i-a64-system-control";
...@@ -192,6 +203,11 @@ ccu: clock@3001000 { ...@@ -192,6 +203,11 @@ ccu: clock@3001000 {
#reset-cells = <1>; #reset-cells = <1>;
}; };
sid: sid@3006000 {
compatible = "allwinner,sun50i-h6-sid";
reg = <0x03006000 0x400>;
};
pio: pinctrl@300b000 { pio: pinctrl@300b000 {
compatible = "allwinner,sun50i-h6-pinctrl"; compatible = "allwinner,sun50i-h6-pinctrl";
reg = <0x0300b000 0x400>; reg = <0x0300b000 0x400>;
...@@ -206,7 +222,7 @@ pio: pinctrl@300b000 { ...@@ -206,7 +222,7 @@ pio: pinctrl@300b000 {
interrupt-controller; interrupt-controller;
#interrupt-cells = <3>; #interrupt-cells = <3>;
ext_rgmii_pins: rgmii_pins { ext_rgmii_pins: rgmii-pins {
pins = "PD0", "PD1", "PD2", "PD3", "PD4", pins = "PD0", "PD1", "PD2", "PD3", "PD4",
"PD5", "PD7", "PD8", "PD9", "PD10", "PD5", "PD7", "PD8", "PD9", "PD10",
"PD11", "PD12", "PD13", "PD19", "PD20"; "PD11", "PD12", "PD13", "PD19", "PD20";
...@@ -227,6 +243,15 @@ mmc0_pins: mmc0-pins { ...@@ -227,6 +243,15 @@ mmc0_pins: mmc0-pins {
bias-pull-up; bias-pull-up;
}; };
/omit-if-no-ref/
mmc1_pins: mmc1-pins {
pins = "PG0", "PG1", "PG2", "PG3",
"PG4", "PG5";
function = "mmc1";
drive-strength = <30>;
bias-pull-up;
};
mmc2_pins: mmc2-pins { mmc2_pins: mmc2-pins {
pins = "PC1", "PC4", "PC5", "PC6", pins = "PC1", "PC4", "PC5", "PC6",
"PC7", "PC8", "PC9", "PC10", "PC7", "PC8", "PC9", "PC10",
...@@ -236,7 +261,7 @@ mmc2_pins: mmc2-pins { ...@@ -236,7 +261,7 @@ mmc2_pins: mmc2-pins {
bias-pull-up; bias-pull-up;
}; };
uart0_ph_pins: uart0-ph { uart0_ph_pins: uart0-ph-pins {
pins = "PH0", "PH1"; pins = "PH0", "PH1";
function = "uart0"; function = "uart0";
}; };
...@@ -262,6 +287,8 @@ mmc0: mmc@4020000 { ...@@ -262,6 +287,8 @@ mmc0: mmc@4020000 {
resets = <&ccu RST_BUS_MMC0>; resets = <&ccu RST_BUS_MMC0>;
reset-names = "ahb"; reset-names = "ahb";
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
status = "disabled"; status = "disabled";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -276,6 +303,8 @@ mmc1: mmc@4021000 { ...@@ -276,6 +303,8 @@ mmc1: mmc@4021000 {
resets = <&ccu RST_BUS_MMC1>; resets = <&ccu RST_BUS_MMC1>;
reset-names = "ahb"; reset-names = "ahb";
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>;
status = "disabled"; status = "disabled";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -290,6 +319,8 @@ mmc2: mmc@4022000 { ...@@ -290,6 +319,8 @@ mmc2: mmc@4022000 {
resets = <&ccu RST_BUS_MMC2>; resets = <&ccu RST_BUS_MMC2>;
reset-names = "ahb"; reset-names = "ahb";
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
status = "disabled"; status = "disabled";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -425,7 +456,6 @@ ehci3: usb@5311000 { ...@@ -425,7 +456,6 @@ ehci3: usb@5311000 {
resets = <&ccu RST_BUS_OHCI3>, resets = <&ccu RST_BUS_OHCI3>,
<&ccu RST_BUS_EHCI3>; <&ccu RST_BUS_EHCI3>;
phys = <&usb2phy 3>; phys = <&usb2phy 3>;
phy-names = "usb";
status = "disabled"; status = "disabled";
}; };
...@@ -437,7 +467,6 @@ ohci3: usb@5311400 { ...@@ -437,7 +467,6 @@ ohci3: usb@5311400 {
<&ccu CLK_USB_OHCI3>; <&ccu CLK_USB_OHCI3>;
resets = <&ccu RST_BUS_OHCI3>; resets = <&ccu RST_BUS_OHCI3>;
phys = <&usb2phy 3>; phys = <&usb2phy 3>;
phy-names = "usb";
status = "disabled"; status = "disabled";
}; };
...@@ -614,7 +643,7 @@ r_pio: pinctrl@7022000 { ...@@ -614,7 +643,7 @@ r_pio: pinctrl@7022000 {
interrupt-controller; interrupt-controller;
#interrupt-cells = <3>; #interrupt-cells = <3>;
r_i2c_pins: r-i2c { r_i2c_pins: r-i2c-pins {
pins = "PL0", "PL1"; pins = "PL0", "PL1";
function = "s_i2c"; function = "s_i2c";
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment