Allwinner arm64 DT changes for 4.21
Our usual set of arm64 DT changes, with the biggest additions being: - Support for the video decoding engine in the A64 - Support for the audio codec in the A64 - USB Support in the H6 - HDMI Support in the H6 - EMAC Support in the H6 - New board: Orange Pi Lite2 -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXAqGvQAKCRDj7w1vZxhR xeObAQDZGMVjFjiWlC0jYjBQoCHMf1dlu6iPd4qe8h3GS1XUVQD/c8SJaMj5oLX1 HKjtqQD+sJRUQdcWlwAsqEEKyKUhfQs= =aAr3 -----END PGP SIGNATURE----- Merge tag 'sunxi-dt64-for-4.21' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt Allwinner arm64 DT changes for 4.21 Our usual set of arm64 DT changes, with the biggest additions being: - Support for the video decoding engine in the A64 - Support for the audio codec in the A64 - USB Support in the H6 - HDMI Support in the H6 - EMAC Support in the H6 - New board: Orange Pi Lite2 * tag 'sunxi-dt64-for-4.21' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (27 commits) arm64: dts: allwinner: a64: Fix up RTC device node and clock references arm64: dts: allwinner: a64: Add Video Engine node arm64: dts: allwinner: a64: Add support for the SRAM C1 section arm64: dts: allwinner: a64: pinebook: enable power supplies arm64: dts: allwinner: a64: sopine-baseboard: enable power supplies arm64: dts: allwinner: axp803: add AC and battery power supplies arm64: dts: allwinner: a64: bananapi-m64: Enable audio codec arm64: dts: allwinner: a64: enable sound on Pinebook arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine arm64: dts: allwinner: a64: add nodes necessary for analog sound support arm64: dts: allwinner: h6: orangepi: Add device nodes for LEDs arm64: dts: allwinner: h6: orangepi: Enable USB 2.0 host and OTG ports arm64: dts: allwinner: h6: orangepi: Add board-wide 5V regulator arm64: dts: allwinner: h6: fix EMAC compatible string sequence arm64: dts: allwinner: a64: Add device node for Mali-400 GPU dt-bindings: gpu: mali-utgard: Add compatible for A64 Mali arm64: dts: allwinner: h6: enable USB2 on Pine H64 arm64: dts: allwinner: h6: add USB Vbus regulator for Pine H64 arm64: dts: allwinner: h6: add USB2-related device nodes arm64: dts: allwinner: h6: Enable HDMI output on Pine H64 board ... Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
ee261c7e82
|
@ -11,6 +11,7 @@ Required properties:
|
|||
+ allwinner,sun4i-a10-mali
|
||||
+ allwinner,sun7i-a20-mali
|
||||
+ allwinner,sun8i-h3-mali
|
||||
+ allwinner,sun50i-a64-mali
|
||||
+ allwinner,sun50i-h5-mali
|
||||
+ amlogic,meson-gxbb-mali
|
||||
+ amlogic,meson-gxl-mali
|
||||
|
@ -73,6 +74,10 @@ to specify one more vendor-specific compatible, among:
|
|||
Required properties:
|
||||
* resets: phandle to the reset line for the GPU
|
||||
|
||||
- allwinner,sun50i-a64-mali
|
||||
Required properties:
|
||||
* resets: phandle to the reset line for the GPU
|
||||
|
||||
- allwinner,sun50i-h5-mali
|
||||
Required properties:
|
||||
* resets: phandle to the reset line for the GPU
|
||||
|
|
|
@ -10,6 +10,7 @@ Required properties:
|
|||
"allwinner,sun8i-r40-gmac"
|
||||
"allwinner,sun8i-v3s-emac"
|
||||
"allwinner,sun50i-a64-emac"
|
||||
"allwinner,sun50i-h6-emac", "allwinner-sun50i-a64-emac"
|
||||
- reg: address and length of the register for the device.
|
||||
- interrupts: interrupt for the device
|
||||
- interrupt-names: must be "macirq"
|
||||
|
|
|
@ -18,5 +18,6 @@ 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-zero-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.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-pine-h64.dtb
|
||||
|
|
|
@ -49,6 +49,39 @@
|
|||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
ac_power_supply: ac-power-supply {
|
||||
compatible = "x-powers,axp803-ac-power-supply",
|
||||
"x-powers,axp813-ac-power-supply";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
axp_adc: adc {
|
||||
compatible = "x-powers,axp803-adc", "x-powers,axp813-adc";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
axp_gpio: gpio {
|
||||
compatible = "x-powers,axp803-gpio", "x-powers,axp813-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
gpio0_ldo: gpio0-ldo {
|
||||
pins = "GPIO0";
|
||||
function = "ldo";
|
||||
};
|
||||
|
||||
gpio1_ldo: gpio1-ldo {
|
||||
pins = "GPIO1";
|
||||
function = "ldo";
|
||||
};
|
||||
};
|
||||
|
||||
battery_power_supply: battery-power-supply {
|
||||
compatible = "x-powers,axp803-battery-power-supply",
|
||||
"x-powers,axp813-battery-power-supply";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
regulators {
|
||||
/* Default work frequency for buck regulators */
|
||||
x-powers,dcdc-freq = <3000>;
|
||||
|
|
|
@ -97,6 +97,19 @@
|
|||
};
|
||||
};
|
||||
|
||||
&codec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&codec_analog {
|
||||
hpvcc-supply = <®_eldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dai {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&de {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -326,6 +339,22 @@
|
|||
vcc-hdmi-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&sound {
|
||||
status = "okay";
|
||||
simple-audio-card,widgets = "Headphone", "Headphone Jack",
|
||||
"Microphone", "Microphone Jack",
|
||||
"Microphone", "Onboard Microphone";
|
||||
simple-audio-card,routing =
|
||||
"Left DAC", "AIF1 Slot 0 Left",
|
||||
"Right DAC", "AIF1 Slot 0 Right",
|
||||
"AIF1 Slot 0 Left ADC", "Left ADC",
|
||||
"AIF1 Slot 0 Right ADC", "Right ADC",
|
||||
"Headphone Jack", "HP",
|
||||
"MIC2", "Microphone Jack",
|
||||
"Onboard Microphone", "MBIAS",
|
||||
"MIC1", "Onboard Microphone";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
|
|
|
@ -75,6 +75,19 @@
|
|||
};
|
||||
};
|
||||
|
||||
&codec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&codec_analog {
|
||||
hpvcc-supply = <®_eldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dai {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&de {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -259,6 +272,20 @@
|
|||
vcc-hdmi-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&sound {
|
||||
simple-audio-card,aux-devs = <&codec_analog>;
|
||||
simple-audio-card,widgets = "Microphone", "Microphone Jack",
|
||||
"Headphone", "Headphone Jack";
|
||||
simple-audio-card,routing =
|
||||
"Left DAC", "AIF1 Slot 0 Left",
|
||||
"Right DAC", "AIF1 Slot 0 Right",
|
||||
"Headphone Jack", "HP",
|
||||
"AIF1 Slot 0 Left ADC", "Left ADC",
|
||||
"AIF1 Slot 0 Right ADC", "Right ADC",
|
||||
"MIC2", "Microphone Jack";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* On Euler connector */
|
||||
&spdif {
|
||||
status = "disabled";
|
||||
|
|
|
@ -22,12 +22,22 @@
|
|||
ethernet0 = &rtl8723cs;
|
||||
};
|
||||
|
||||
vdd_bl: regulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "bl-3v3";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
|
||||
enable-active-high;
|
||||
};
|
||||
|
||||
backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
pwms = <&pwm 0 50000 0>;
|
||||
brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>;
|
||||
default-brightness-level = <2>;
|
||||
enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
|
||||
power-supply = <&vdd_bl>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
|
@ -64,6 +74,32 @@
|
|||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
|
||||
};
|
||||
|
||||
speaker_amp: audio-amplifier {
|
||||
compatible = "simple-audio-amplifier";
|
||||
/*
|
||||
* TODO This is actually a fixed regulator controlled by
|
||||
* the GPIO line on the PMIC. This should be corrected
|
||||
* once GPIO support is added for this PMIC.
|
||||
*/
|
||||
VCC-supply = <®_ldo_io0>;
|
||||
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
||||
sound-name-prefix = "Speaker Amp";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&codec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&codec_analog {
|
||||
hpvcc-supply = <®_eldo1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dai {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
|
@ -148,6 +184,14 @@
|
|||
|
||||
#include "axp803.dtsi"
|
||||
|
||||
&ac_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&battery_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
®_aldo1 {
|
||||
regulator-min-microvolt = <2800000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
|
@ -267,6 +311,29 @@
|
|||
vcc-hdmi-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&sound {
|
||||
status = "okay";
|
||||
simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
|
||||
simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
|
||||
"Microphone", "Internal Microphone Right",
|
||||
"Headphone", "Headphone Jack",
|
||||
"Speaker", "Internal Speaker";
|
||||
simple-audio-card,routing =
|
||||
"Left DAC", "AIF1 Slot 0 Left",
|
||||
"Right DAC", "AIF1 Slot 0 Right",
|
||||
"Speaker Amp INL", "LINEOUT",
|
||||
"Speaker Amp INR", "LINEOUT",
|
||||
"Internal Speaker", "Speaker Amp OUTL",
|
||||
"Internal Speaker", "Speaker Amp OUTR",
|
||||
"Headphone Jack", "HP",
|
||||
"AIF1 Slot 0 Left ADC", "Left ADC",
|
||||
"AIF1 Slot 0 Right ADC", "Right ADC",
|
||||
"Internal Microphone Left", "MBIAS",
|
||||
"MIC1", "Internal Microphone Left",
|
||||
"Internal Microphone Right", "HBIAS",
|
||||
"MIC2", "Internal Microphone Right";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
|
|
|
@ -80,6 +80,26 @@
|
|||
};
|
||||
};
|
||||
|
||||
&ac_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&battery_power_supply {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&codec {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&codec_analog {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&dai {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&de {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -164,6 +184,20 @@
|
|||
vcc-hdmi-supply = <®_dldo1>;
|
||||
};
|
||||
|
||||
&sound {
|
||||
simple-audio-card,aux-devs = <&codec_analog>;
|
||||
simple-audio-card,widgets = "Microphone", "Microphone Jack",
|
||||
"Headphone", "Headphone Jack";
|
||||
simple-audio-card,routing =
|
||||
"Left DAC", "AIF1 Slot 0 Left",
|
||||
"Right DAC", "AIF1 Slot 0 Right",
|
||||
"Headphone Jack", "HP",
|
||||
"AIF1 Slot 0 Left ADC", "Left ADC",
|
||||
"AIF1 Slot 0 Right ADC", "Right ADC",
|
||||
"MIC2", "Microphone Jack";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pb_pins>;
|
||||
|
|
|
@ -47,6 +47,10 @@
|
|||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
&codec_analog {
|
||||
hpvcc-supply = <®_eldo1>;
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
|
|
|
@ -139,15 +139,7 @@
|
|||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "osc32k";
|
||||
};
|
||||
|
||||
iosc: internal-osc-clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <16000000>;
|
||||
clock-accuracy = <300000000>;
|
||||
clock-output-names = "iosc";
|
||||
clock-output-names = "ext-osc32k";
|
||||
};
|
||||
|
||||
psci {
|
||||
|
@ -155,6 +147,30 @@
|
|||
method = "smc";
|
||||
};
|
||||
|
||||
sound: sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "sun50i-a64-audio";
|
||||
simple-audio-card,format = "i2s";
|
||||
simple-audio-card,frame-master = <&cpudai>;
|
||||
simple-audio-card,bitclock-master = <&cpudai>;
|
||||
simple-audio-card,mclk-fs = <128>;
|
||||
simple-audio-card,aux-devs = <&codec_analog>;
|
||||
simple-audio-card,routing =
|
||||
"Left DAC", "AIF1 Slot 0 Left",
|
||||
"Right DAC", "AIF1 Slot 0 Right",
|
||||
"AIF1 Slot 0 Left ADC", "Left ADC",
|
||||
"AIF1 Slot 0 Right ADC", "Right ADC";
|
||||
status = "disabled";
|
||||
|
||||
cpudai: simple-audio-card,cpu {
|
||||
sound-dai = <&dai>;
|
||||
};
|
||||
|
||||
link_codec: simple-audio-card,codec {
|
||||
sound-dai = <&codec>;
|
||||
};
|
||||
};
|
||||
|
||||
sound_spdif {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "On-board SPDIF";
|
||||
|
@ -277,6 +293,20 @@
|
|||
reg = <0x0000 0x28000>;
|
||||
};
|
||||
};
|
||||
|
||||
sram_c1: sram@1d00000 {
|
||||
compatible = "mmio-sram";
|
||||
reg = <0x01d00000 0x40000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x01d00000 0x40000>;
|
||||
|
||||
ve_sram: sram-section@0 {
|
||||
compatible = "allwinner,sun50i-a64-sram-c1",
|
||||
"allwinner,sun4i-a10-sram-c1";
|
||||
reg = <0x000000 0x40000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dma: dma-controller@1c02000 {
|
||||
|
@ -359,6 +389,17 @@
|
|||
};
|
||||
};
|
||||
|
||||
video-codec@1c0e000 {
|
||||
compatible = "allwinner,sun50i-h5-video-engine";
|
||||
reg = <0x01c0e000 0x1000>;
|
||||
clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
|
||||
<&ccu CLK_DRAM_VE>;
|
||||
clock-names = "ahb", "mod", "ram";
|
||||
resets = <&ccu RST_BUS_VE>;
|
||||
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
|
||||
allwinner,sram = <&ve_sram 1>;
|
||||
};
|
||||
|
||||
mmc0: mmc@1c0f000 {
|
||||
compatible = "allwinner,sun50i-a64-mmc";
|
||||
reg = <0x01c0f000 0x1000>;
|
||||
|
@ -490,7 +531,7 @@
|
|||
ccu: clock@1c20000 {
|
||||
compatible = "allwinner,sun50i-a64-ccu";
|
||||
reg = <0x01c20000 0x400>;
|
||||
clocks = <&osc24M>, <&osc32k>;
|
||||
clocks = <&osc24M>, <&rtc 0>;
|
||||
clock-names = "hosc", "losc";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
|
@ -665,6 +706,30 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
dai: dai@1c22c00 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun50i-a64-codec-i2s";
|
||||
reg = <0x01c22c00 0x200>;
|
||||
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
|
||||
clock-names = "apb", "mod";
|
||||
resets = <&ccu RST_BUS_CODEC>;
|
||||
reset-names = "rst";
|
||||
dmas = <&dma 15>, <&dma 15>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
codec: codec@1c22e00 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun8i-a33-codec";
|
||||
reg = <0x01c22e00 0x600>;
|
||||
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
|
||||
clock-names = "bus", "mod";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@1c28000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c28000 0x400>;
|
||||
|
@ -807,6 +872,28 @@
|
|||
};
|
||||
};
|
||||
|
||||
mali: gpu@1c40000 {
|
||||
compatible = "allwinner,sun50i-a64-mali", "arm,mali-400";
|
||||
reg = <0x01c40000 0x10000>;
|
||||
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "gp",
|
||||
"gpmmu",
|
||||
"pp0",
|
||||
"ppmmu0",
|
||||
"pp1",
|
||||
"ppmmu1",
|
||||
"pmu";
|
||||
clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
|
||||
clock-names = "bus", "core";
|
||||
resets = <&ccu RST_BUS_GPU>;
|
||||
};
|
||||
|
||||
gic: interrupt-controller@1c81000 {
|
||||
compatible = "arm,gic-400";
|
||||
reg = <0x01c81000 0x1000>,
|
||||
|
@ -874,11 +961,12 @@
|
|||
};
|
||||
|
||||
rtc: rtc@1f00000 {
|
||||
compatible = "allwinner,sun6i-a31-rtc";
|
||||
reg = <0x01f00000 0x54>;
|
||||
compatible = "allwinner,sun50i-a64-rtc",
|
||||
"allwinner,sun8i-h3-rtc";
|
||||
reg = <0x01f00000 0x400>;
|
||||
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-output-names = "rtc-osc32k", "rtc-osc32k-out";
|
||||
clock-output-names = "osc32k", "osc32k-out", "iosc";
|
||||
clocks = <&osc32k>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
@ -895,13 +983,18 @@
|
|||
r_ccu: clock@1f01400 {
|
||||
compatible = "allwinner,sun50i-a64-r-ccu";
|
||||
reg = <0x01f01400 0x100>;
|
||||
clocks = <&osc24M>, <&osc32k>, <&iosc>,
|
||||
<&ccu 11>;
|
||||
clocks = <&osc24M>, <&rtc 0>, <&rtc 2>, <&ccu 11>;
|
||||
clock-names = "hosc", "losc", "iosc", "pll-periph";
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
codec_analog: codec-analog@1f015c0 {
|
||||
compatible = "allwinner,sun50i-a64-codec-analog";
|
||||
reg = <0x01f015c0 0x4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
r_i2c: i2c@1f02400 {
|
||||
compatible = "allwinner,sun50i-a64-i2c",
|
||||
"allwinner,sun6i-a31-i2c";
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
|
||||
/*
|
||||
* Copyright (C) 2018 Jagan Teki <jagan@openedev.com>
|
||||
*/
|
||||
|
||||
#include "sun50i-h6-orangepi.dtsi"
|
||||
|
||||
/ {
|
||||
model = "OrangePi Lite2";
|
||||
compatible = "xunlong,orangepi-lite2", "allwinner,sun50i-h6";
|
||||
};
|
|
@ -4,147 +4,9 @@
|
|||
* Author: Jagan Teki <jagan@amarulasolutions.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-h6.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include "sun50i-h6-orangepi.dtsi"
|
||||
|
||||
/ {
|
||||
model = "OrangePi One Plus";
|
||||
compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_cldo1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&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;
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
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 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -0,0 +1,210 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
|
||||
/*
|
||||
* Copyright (C) 2018 Amarula Solutions
|
||||
* Author: Jagan Teki <jagan@amarulasolutions.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "sun50i-h6.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "OrangePi One Plus";
|
||||
compatible = "xunlong,orangepi-one-plus", "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;
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc0_pins>;
|
||||
vmmc-supply = <®_cldo1>;
|
||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&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";
|
||||
};
|
||||
|
||||
reg_aldo2: aldo2 {
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-ac200";
|
||||
};
|
||||
|
||||
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 */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2otg {
|
||||
dr_mode = "otg";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2phy {
|
||||
usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */
|
||||
usb0_vbus-supply = <®_vcc5v>;
|
||||
usb3_vbus-supply = <®_vcc5v>;
|
||||
status = "okay";
|
||||
};
|
|
@ -14,6 +14,7 @@
|
|||
compatible = "pine64,pine-h64", "allwinner,sun50i-h6";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &emac;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
|
@ -21,6 +22,17 @@
|
|||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
connector {
|
||||
compatible = "hdmi-connector";
|
||||
type = "a";
|
||||
|
||||
port {
|
||||
hdmi_con_in: endpoint {
|
||||
remote-endpoint = <&hdmi_out_con>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
|
@ -39,6 +51,56 @@
|
|||
gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
|
||||
};
|
||||
};
|
||||
|
||||
reg_usb_vbus: vbus {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb-vbus";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
startup-delay-us = <100000>;
|
||||
gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>;
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
||||
|
||||
&emac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ext_rgmii_pins>;
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&ext_rgmii_phy>;
|
||||
phy-supply = <®_aldo2>;
|
||||
allwinner,rx-delay-ps = <200>;
|
||||
allwinner,tx-delay-ps = <200>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mdio {
|
||||
ext_rgmii_phy: ethernet-phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&de {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hdmi_out {
|
||||
hdmi_out_con: endpoint {
|
||||
remote-endpoint = <&hdmi_con_in>;
|
||||
};
|
||||
};
|
||||
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ehci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
|
@ -61,6 +123,14 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ohci3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_i2c {
|
||||
status = "okay";
|
||||
|
||||
|
@ -85,6 +155,7 @@
|
|||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-name = "vcc-ac200";
|
||||
regulator-enable-ramp-delay = <100000>;
|
||||
};
|
||||
|
||||
reg_aldo3: aldo3 {
|
||||
|
@ -185,3 +256,14 @@
|
|||
pinctrl-0 = <&uart0_ph_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2otg {
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2phy {
|
||||
usb0_vbus-supply = <®_usb_vbus>;
|
||||
usb3_vbus-supply = <®_usb_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -6,8 +6,11 @@
|
|||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/sun50i-h6-ccu.h>
|
||||
#include <dt-bindings/clock/sun50i-h6-r-ccu.h>
|
||||
#include <dt-bindings/clock/sun8i-de2.h>
|
||||
#include <dt-bindings/clock/sun8i-tcon-top.h>
|
||||
#include <dt-bindings/reset/sun50i-h6-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-h6-r-ccu.h>
|
||||
#include <dt-bindings/reset/sun8i-de2.h>
|
||||
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
|
@ -47,6 +50,12 @@
|
|||
};
|
||||
};
|
||||
|
||||
de: display-engine {
|
||||
compatible = "allwinner,sun50i-h6-display-engine";
|
||||
allwinner,pipelines = <&mixer0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
iosc: internal-osc-clk {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
|
@ -92,6 +101,51 @@
|
|||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
display-engine@1000000 {
|
||||
compatible = "allwinner,sun50i-h6-de3",
|
||||
"allwinner,sun50i-a64-de2";
|
||||
reg = <0x1000000 0x400000>;
|
||||
allwinner,sram = <&de2_sram 1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0x1000000 0x400000>;
|
||||
|
||||
display_clocks: clock@0 {
|
||||
compatible = "allwinner,sun50i-h6-de3-clk";
|
||||
reg = <0x0 0x10000>;
|
||||
clocks = <&ccu CLK_DE>,
|
||||
<&ccu CLK_BUS_DE>;
|
||||
clock-names = "mod",
|
||||
"bus";
|
||||
resets = <&ccu RST_BUS_DE>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
mixer0: mixer@100000 {
|
||||
compatible = "allwinner,sun50i-h6-de3-mixer-0";
|
||||
reg = <0x100000 0x100000>;
|
||||
clocks = <&display_clocks CLK_BUS_MIXER0>,
|
||||
<&display_clocks CLK_MIXER0>;
|
||||
clock-names = "bus",
|
||||
"mod";
|
||||
resets = <&display_clocks RST_MIXER0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
mixer0_out: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
mixer0_out_tcon_top_mixer0: endpoint {
|
||||
remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
syscon: syscon@3000000 {
|
||||
compatible = "allwinner,sun50i-h6-system-control",
|
||||
"allwinner,sun50i-a64-system-control";
|
||||
|
@ -149,6 +203,19 @@
|
|||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
|
||||
ext_rgmii_pins: rgmii_pins {
|
||||
pins = "PD0", "PD1", "PD2", "PD3", "PD4",
|
||||
"PD5", "PD7", "PD8", "PD9", "PD10",
|
||||
"PD11", "PD12", "PD13", "PD19", "PD20";
|
||||
function = "emac";
|
||||
drive-strength = <40>;
|
||||
};
|
||||
|
||||
hdmi_pins: hdmi-pins {
|
||||
pins = "PH8", "PH9", "PH10";
|
||||
function = "hdmi";
|
||||
};
|
||||
|
||||
mmc0_pins: mmc0-pins {
|
||||
pins = "PF0", "PF1", "PF2", "PF3",
|
||||
"PF4", "PF5";
|
||||
|
@ -258,6 +325,250 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
emac: ethernet@5020000 {
|
||||
compatible = "allwinner,sun50i-h6-emac",
|
||||
"allwinner,sun50i-a64-emac";
|
||||
syscon = <&syscon>;
|
||||
reg = <0x05020000 0x10000>;
|
||||
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "macirq";
|
||||
resets = <&ccu RST_BUS_EMAC>;
|
||||
reset-names = "stmmaceth";
|
||||
clocks = <&ccu CLK_BUS_EMAC>;
|
||||
clock-names = "stmmaceth";
|
||||
status = "disabled";
|
||||
|
||||
mdio: mdio {
|
||||
compatible = "snps,dwmac-mdio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
usb2otg: usb@5100000 {
|
||||
compatible = "allwinner,sun50i-h6-musb",
|
||||
"allwinner,sun8i-a33-musb";
|
||||
reg = <0x05100000 0x0400>;
|
||||
clocks = <&ccu CLK_BUS_OTG>;
|
||||
resets = <&ccu RST_BUS_OTG>;
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "mc";
|
||||
phys = <&usb2phy 0>;
|
||||
phy-names = "usb";
|
||||
extcon = <&usb2phy 0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb2phy: phy@5100400 {
|
||||
compatible = "allwinner,sun50i-h6-usb-phy";
|
||||
reg = <0x05100400 0x24>,
|
||||
<0x05101800 0x4>,
|
||||
<0x05311800 0x4>;
|
||||
reg-names = "phy_ctrl",
|
||||
"pmu0",
|
||||
"pmu3";
|
||||
clocks = <&ccu CLK_USB_PHY0>,
|
||||
<&ccu CLK_USB_PHY3>;
|
||||
clock-names = "usb0_phy",
|
||||
"usb3_phy";
|
||||
resets = <&ccu RST_USB_PHY0>,
|
||||
<&ccu RST_USB_PHY3>;
|
||||
reset-names = "usb0_reset",
|
||||
"usb3_reset";
|
||||
status = "disabled";
|
||||
#phy-cells = <1>;
|
||||
};
|
||||
|
||||
ehci0: usb@5101000 {
|
||||
compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
|
||||
reg = <0x05101000 0x100>;
|
||||
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI0>,
|
||||
<&ccu CLK_BUS_EHCI0>,
|
||||
<&ccu CLK_USB_OHCI0>;
|
||||
resets = <&ccu RST_BUS_OHCI0>,
|
||||
<&ccu RST_BUS_EHCI0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ohci0: usb@5101400 {
|
||||
compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
|
||||
reg = <0x05101400 0x100>;
|
||||
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI0>,
|
||||
<&ccu CLK_USB_OHCI0>;
|
||||
resets = <&ccu RST_BUS_OHCI0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ehci3: usb@5311000 {
|
||||
compatible = "allwinner,sun50i-h6-ehci", "generic-ehci";
|
||||
reg = <0x05311000 0x100>;
|
||||
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI3>,
|
||||
<&ccu CLK_BUS_EHCI3>,
|
||||
<&ccu CLK_USB_OHCI3>;
|
||||
resets = <&ccu RST_BUS_OHCI3>,
|
||||
<&ccu RST_BUS_EHCI3>;
|
||||
phys = <&usb2phy 3>;
|
||||
phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ohci3: usb@5311400 {
|
||||
compatible = "allwinner,sun50i-h6-ohci", "generic-ohci";
|
||||
reg = <0x05311400 0x100>;
|
||||
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_OHCI3>,
|
||||
<&ccu CLK_USB_OHCI3>;
|
||||
resets = <&ccu RST_BUS_OHCI3>;
|
||||
phys = <&usb2phy 3>;
|
||||
phy-names = "usb";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hdmi: hdmi@6000000 {
|
||||
compatible = "allwinner,sun50i-h6-dw-hdmi";
|
||||
reg = <0x06000000 0x10000>;
|
||||
reg-io-width = <1>;
|
||||
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
|
||||
<&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>,
|
||||
<&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>;
|
||||
clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
|
||||
"hdcp-bus";
|
||||
resets = <&ccu RST_BUS_HDMI_SUB>, <&ccu RST_BUS_HDCP>;
|
||||
reset-names = "ctrl", "hdcp";
|
||||
phys = <&hdmi_phy>;
|
||||
phy-names = "hdmi-phy";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&hdmi_pins>;
|
||||
status = "disabled";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hdmi_in: port@0 {
|
||||
reg = <0>;
|
||||
|
||||
hdmi_in_tcon_top: endpoint {
|
||||
remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
|
||||
};
|
||||
};
|
||||
|
||||
hdmi_out: port@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hdmi_phy: hdmi-phy@6010000 {
|
||||
compatible = "allwinner,sun50i-h6-hdmi-phy";
|
||||
reg = <0x06010000 0x10000>;
|
||||
clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>;
|
||||
clock-names = "bus", "mod";
|
||||
resets = <&ccu RST_BUS_HDMI>;
|
||||
reset-names = "phy";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
tcon_top: tcon-top@6510000 {
|
||||
compatible = "allwinner,sun50i-h6-tcon-top";
|
||||
reg = <0x06510000 0x1000>;
|
||||
clocks = <&ccu CLK_BUS_TCON_TOP>,
|
||||
<&ccu CLK_TCON_TV0>;
|
||||
clock-names = "bus",
|
||||
"tcon-tv0";
|
||||
clock-output-names = "tcon-top-tv0";
|
||||
resets = <&ccu RST_BUS_TCON_TOP>;
|
||||
reset-names = "rst";
|
||||
#clock-cells = <1>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
tcon_top_mixer0_in: port@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
|
||||
tcon_top_mixer0_in_mixer0: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&mixer0_out_tcon_top_mixer0>;
|
||||
};
|
||||
};
|
||||
|
||||
tcon_top_mixer0_out: port@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
|
||||
tcon_top_mixer0_out_tcon_tv: endpoint@2 {
|
||||
reg = <2>;
|
||||
remote-endpoint = <&tcon_tv_in_tcon_top_mixer0>;
|
||||
};
|
||||
};
|
||||
|
||||
tcon_top_hdmi_in: port@4 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <4>;
|
||||
|
||||
tcon_top_hdmi_in_tcon_tv: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&tcon_tv_out_tcon_top>;
|
||||
};
|
||||
};
|
||||
|
||||
tcon_top_hdmi_out: port@5 {
|
||||
reg = <5>;
|
||||
|
||||
tcon_top_hdmi_out_hdmi: endpoint {
|
||||
remote-endpoint = <&hdmi_in_tcon_top>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
tcon_tv: lcd-controller@6515000 {
|
||||
compatible = "allwinner,sun50i-h6-tcon-tv",
|
||||
"allwinner,sun8i-r40-tcon-tv";
|
||||
reg = <0x06515000 0x1000>;
|
||||
interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_TCON_TV0>,
|
||||
<&tcon_top CLK_TCON_TOP_TV0>;
|
||||
clock-names = "ahb",
|
||||
"tcon-ch1";
|
||||
resets = <&ccu RST_BUS_TCON_TV0>;
|
||||
reset-names = "lcd";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
tcon_tv_in: port@0 {
|
||||
reg = <0>;
|
||||
|
||||
tcon_tv_in_tcon_top_mixer0: endpoint {
|
||||
remote-endpoint = <&tcon_top_mixer0_out_tcon_tv>;
|
||||
};
|
||||
};
|
||||
|
||||
tcon_tv_out: port@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
|
||||
tcon_tv_out_tcon_top: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&tcon_top_hdmi_in_tcon_tv>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
r_ccu: clock@7010000 {
|
||||
compatible = "allwinner,sun50i-h6-r-ccu";
|
||||
reg = <0x07010000 0x400>;
|
||||
|
|
Loading…
Reference in New Issue