There is a bunch of significant additions for this release cycle:
   - The A83t now has HDMI support
   - The A80 finally has SMP support (without PSCI, unfortunately)
   - The A80 has preliminary display support
 
 And also:
   - a number of boards based on old (A10, A20) SoCs now have the HDMI
     support enabled.
   - The display frontend is enabled on the A33, allowing to use it for
     hardware display scaling
   - New boards: Olimex A20-SOM204 variants
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE0VqZU19dR2zEVaqr0rTAlCFNr3QFAlqzw6oACgkQ0rTAlCFN
 r3Qc5g/+JhIcgMh/aDOEDkq4Z2CFtwUfWl7DbMrat8oqFvh2GQ1m5PhDNiDP1Lh1
 Wfvb+RGWFnlm+H1Uv0uq0OrBW0fALD4pqrzlznF9Z3neNf5iWkx0KAjGGgF0x5Mh
 SYfyNgM1n6qRROiz5V87hUpMgw1gI3TLa5K7qLK7z0iriFjVzx4hXjoHIbsz4Blq
 6Rd0KeTlxsSRmc18xUpl10FdGHIW+XTXT9F96amtWmLI8HjgXQzWFj6/xAXLops1
 gqtDkw2jiDkFmddfwBuUzHyfMOvE16+HRHVh0bB+y0mkjbEp9WCiFkKqPbvVJdoJ
 lmgS0c68ovarvjpcfYySrpcpourgQN62pUrKlAB5db2b4anPn0xvt0lqJEeCUSVO
 D8bMWOEm+haW9ftY1hyIjy5rXYLkCFmAelMWyPrP2Z7U+xWMQztUDDjDxBvgJcHF
 9z8batldQfrWvr1c7PK6x2peqqV8OUWhTqAiYjxUhZW7NEIBaEBMArNybc/SmAPj
 l0OpYuGfQCFWboo8WlJX6XuB1VoYykPcRcqsOf/qC1/8YC+ego1Ldw1Wu+GUn4d1
 0pqyRAViDSCfaZs9O9A9B01vjoHGNW0NthWwTtnPCmEfx9ayg1ext5CqfpWA3Zwf
 l59zChs0hJ2sKaParTMTQBsnGiRzdwx7x1YgEZ+w5xoxl47aQbE=
 =S3LW
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt

Pull "Allwinner DT changes for 4.17" from Maxime Ripard:

There is a bunch of significant additions for this release cycle:
  - The A83t now has HDMI support
  - The A80 finally has SMP support (without PSCI, unfortunately)
  - The A80 has preliminary display support

And also:
  - a number of boards based on old (A10, A20) SoCs now have the HDMI
    support enabled.
  - The display frontend is enabled on the A33, allowing to use it for
    hardware display scaling
  - New boards: Olimex A20-SOM204 variants

* tag 'sunxi-dt-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (39 commits)
  ARM: dts: sun9i: cubieboard4: Enable VGA display output
  ARM: dts: sun9i: Add pinmux settings for LCD0 RGB888 output.
  ARM: dts: sun9i: Add device nodes for documented display pipelines for A80
  ARM: dts: sun8i: reference tablet design: Enable PMIC power supplies
  ARM: dts: sun8i: a33: Enable A33 internal audio codec on A33-OLinuXino
  ARM: dts: sun8i: a33: Enable PMIC power supplies on A33-OLinuXino
  ARM: dts: sun8i: a33: Drop sunxi-common-regulators.dtsi for A33-OLinuXino
  ARM: dts: sun8i: a33: Drop GPIO pinmux settings for A33-OLinuXino
  ARM: dts: sun9i: Add enable-method for SMP support for the A80 SoC
  ARM: dts: sun8i: h3: Add eMMC for NanoPi M1 Plus
  ARM: dts: sun8i: a711: set regulator for each cluster of CPUs
  ARM: dts: sun8i: a83t: add stable OPP tables and CPUfreq
  ARM: dts: sun8i: a83t: add cpu0 and cpu100 labels
  ARM: dtsi: axp81x: remove IP name from DT node name
  ARM: dtsi: sun8i: a711: enable battery power supply subnode
  ARM: dtsi: axp81x: add battery power supply subnode
  ARM: dtsi: axp81x: add node for ADC
  ARM: dtsi: axp22x: add node for ADC
  ARM: dtsi: axp209: add node for ADC
  ARM: dts: sun7i: Enable HDMI support on the Orange Pi mini
  ...
This commit is contained in:
Arnd Bergmann 2018-03-27 14:53:57 +02:00
Родитель 692989c334 dbb6d86415
Коммит 2b7bee1a6d
27 изменённых файлов: 1453 добавлений и 38 удалений

Просмотреть файл

@ -959,6 +959,8 @@ dtb-$(CONFIG_MACH_SUN7I) += \
sun7i-a20-m3.dtb \
sun7i-a20-mk808c.dtb \
sun7i-a20-olimex-som-evb.dtb \
sun7i-a20-olimex-som204-evb.dtb \
sun7i-a20-olimex-som204-evb-emmc.dtb \
sun7i-a20-olinuxino-lime.dtb \
sun7i-a20-olinuxino-lime2.dtb \
sun7i-a20-olinuxino-lime2-emmc.dtb \

Просмотреть файл

@ -58,6 +58,11 @@
status = "disabled";
};
axp_adc: adc {
compatible = "x-powers,axp209-adc";
#io-channel-cells = <1>;
};
axp_gpio: gpio {
compatible = "x-powers,axp209-gpio";
gpio-controller;

Просмотреть файл

@ -57,6 +57,11 @@
status = "disabled";
};
axp_adc: adc {
compatible = "x-powers,axp221-adc";
#io-channel-cells = <1>;
};
battery_power_supply: battery-power-supply {
compatible = "x-powers,axp221-battery-power-supply";
status = "disabled";

Просмотреть файл

@ -48,7 +48,12 @@
interrupt-controller;
#interrupt-cells = <1>;
axp_gpio: axp-gpio {
axp_adc: adc {
compatible = "x-powers,axp813-adc";
#io-channel-cells = <1>;
};
axp_gpio: gpio {
compatible = "x-powers,axp813-gpio";
gpio-controller;
#gpio-cells = <2>;
@ -64,6 +69,11 @@
};
};
battery_power_supply: battery-power-supply {
compatible = "x-powers,axp813-battery-power-supply";
status = "disabled";
};
regulators {
/* Default work frequency for buck regulators */
x-powers,dcdc-freq = <3000>;

Просмотреть файл

@ -56,12 +56,27 @@
chosen {
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
};
&codec {
status = "okay";
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
@ -70,6 +85,16 @@
status = "okay";
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&mmc0 {
vmmc-supply = <&reg_vcc3v3>;
bus-width = <4>;

Просмотреть файл

@ -97,7 +97,6 @@
864000 1300000
624000 1250000
>;
cooling-max-level = <2>;
};
&de {

Просмотреть файл

@ -123,8 +123,6 @@
624000 1250000
>;
#cooling-cells = <2>;
cooling-min-level = <0>;
cooling-max-level = <3>;
};
};

Просмотреть файл

@ -116,8 +116,6 @@
432000 1200000
>;
#cooling-cells = <2>;
cooling-min-level = <0>;
cooling-max-level = <5>;
};
&pio {

Просмотреть файл

@ -58,6 +58,17 @@
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@ -93,6 +104,10 @@
status = "okay";
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
@ -113,6 +128,16 @@
};
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&ir {
pinctrl-names = "default";
pinctrl-0 = <&ir_pins_a>;
@ -161,6 +186,10 @@
status = "okay";
};
&tcon0 {
status = "okay";
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;

Просмотреть файл

@ -113,8 +113,6 @@
480000 1000000
>;
#cooling-cells = <2>;
cooling-min-level = <0>;
cooling-max-level = <3>;
};
cpu@1 {

Просмотреть файл

@ -63,6 +63,17 @@
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@ -109,6 +120,10 @@
>;
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
@ -130,6 +145,16 @@
};
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;

Просмотреть файл

@ -66,12 +66,27 @@
chosen {
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
};
&codec {
status = "okay";
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
@ -80,6 +95,16 @@
status = "okay";
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;

Просмотреть файл

@ -61,6 +61,17 @@
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@ -79,6 +90,10 @@
status = "okay";
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
@ -107,6 +122,16 @@
};
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;

Просмотреть файл

@ -0,0 +1,36 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Device Tree Source for A20-SOM204-EVB-eMMC Board
*
* Copyright (C) 2018 Olimex Ltd.
* Author: Stefan Mavrodiev <stefan@olimex.com>
*/
/dts-v1/;
#include "sun7i-a20-olimex-som204-evb.dts"
/ {
model = "Olimex A20-SOM204-EVB-eMMC";
compatible = "olimex,a20-olimex-som204-evb-emmc", "allwinner,sun7i-a20";
mmc2_pwrseq: mmc2_pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&pio 2 16 GPIO_ACTIVE_LOW>;
};
};
&mmc2 {
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins_a>;
vmmc-supply = <&reg_vcc3v3>;
mmc-pwrseq = <&mmc2_pwrseq>;
bus-width = <4>;
non-removable;
status = "okay";
emmc: emmc@0 {
reg = <0>;
compatible = "mmc-card";
broken-hpi;
};
};

Просмотреть файл

@ -0,0 +1,335 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Device Tree Source for A20-SOM204-EVB Board
*
* Copyright (C) 2018 Olimex Ltd.
* Author: Stefan Mavrodiev <stefan@olimex.com>
*/
/dts-v1/;
#include "sun7i-a20.dtsi"
#include "sunxi-common-regulators.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pwm/pwm.h>
/ {
model = "Olimex A20-SOM204-EVB";
compatible = "olimex,a20-olimex-som204-evb", "allwinner,sun7i-a20";
aliases {
serial0 = &uart0;
serial1 = &uart4;
serial2 = &uart7;
spi0 = &spi1;
spi1 = &spi2;
ethernet1 = &rtl8723bs;
};
chosen {
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
leds {
compatible = "gpio-leds";
stat {
label = "a20-som204-evb:green:stat";
gpios = <&pio 8 0 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
led1 {
label = "a20-som204-evb:green:led1";
gpios = <&pio 8 10 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
led2 {
label = "a20-som204-evb:yellow:led2";
gpios = <&pio 8 11 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
rtl_pwrseq: rtl_pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&pio 6 9 GPIO_ACTIVE_LOW>;
};
};
&ahci {
target-supply = <&reg_ahci_5v>;
status = "okay";
};
&can0 {
pinctrl-names = "default";
pinctrl-0 = <&can0_pins_a>;
status = "okay";
};
&codec {
status = "okay";
};
&cpu0 {
cpu-supply = <&reg_dcdc2>;
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
&ehci1 {
status = "okay";
};
&gmac {
pinctrl-names = "default";
pinctrl-0 = <&gmac_pins_rgmii_a>;
phy = <&phy3>;
phy-mode = "rgmii";
phy-supply = <&reg_vcc3v3>;
snps,reset-gpio = <&pio 0 17 GPIO_ACTIVE_HIGH>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 1000000>;
status = "okay";
phy3: ethernet-phy@3 {
reg = <3>;
};
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;
status = "okay";
axp209: pmic@34 {
reg = <0x34>;
interrupt-parent = <&nmi_intc>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
};
};
/* Exposed to UEXT1 */
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins_a>;
status = "okay";
eeprom: eeprom@50 {
compatible = "atmel,24c16";
reg = <0x50>;
pagesize = <16>;
};
};
/* Exposed to UEXT2 */
&i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins_a>;
status = "okay";
};
&ir0 {
pinctrl-names = "default";
pinctrl-0 = <&ir0_rx_pins_a>;
status = "okay";
};
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins_a>;
vmmc-supply = <&reg_vcc3v3>;
bus-width = <4>;
cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>;
cd-inverted;
status = "okay";
};
&mmc3 {
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins_a>;
vmmc-supply = <&reg_vcc3v3>;
mmc-pwrseq = <&rtl_pwrseq>;
bus-width = <4>;
non-removable;
status = "okay";
rtl8723bs: sdio_wifi@1 {
reg = <1>;
};
};
&ohci0 {
status = "okay";
};
&ohci1 {
status = "okay";
};
&otg_sram {
status = "okay";
};
&pio {
bt_uart_pins: bt_uart_pins@0 {
pins = "PG6", "PG7", "PG8";
function = "uart3";
};
};
#include "axp209.dtsi"
&ac_power_supply {
status = "okay";
};
&battery_power_supply {
status = "okay";
};
&reg_ahci_5v {
gpio = <&pio 2 3 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&reg_dcdc2 {
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1400000>;
regulator-name = "vdd-cpu";
};
&reg_dcdc3 {
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1400000>;
regulator-name = "vdd-int-dll";
};
&reg_ldo1 {
regulator-always-on;
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
regulator-name = "vdd-rtc";
};
&reg_ldo2 {
regulator-always-on;
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
regulator-name = "avcc";
};
&reg_ldo4 {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-pg";
};
&reg_usb0_vbus {
gpio = <&pio 2 17 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&reg_usb1_vbus {
status = "okay";
};
&reg_usb2_vbus {
status = "okay";
};
/* Exposed to UEXT1 */
&spi1 {
pinctrl-names = "default";
pinctrl-0 = <&spi1_pins_a>,
<&spi1_cs0_pins_a>;
status = "okay";
};
/* Exposed to UEXT2 */
&spi2 {
pinctrl-names = "default";
pinctrl-0 = <&spi2_pins_a>,
<&spi2_cs0_pins_a>;
status = "okay";
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
/* Used for RTL8723BS bluetooth */
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&bt_uart_pins>;
status = "okay";
};
/* Exposed to UEXT1 */
&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_pins_a>;
status = "okay";
};
/* Exposed to UEXT2 */
&uart7 {
pinctrl-names = "default";
pinctrl-0 = <&uart7_pins_a>;
status = "okay";
};
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usb_power_supply {
status = "okay";
};
&usbphy {
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
usb0_vbus_power-supply = <&usb_power_supply>;
usb0_vbus-supply = <&reg_usb0_vbus>;
usb1_vbus-supply = <&reg_usb1_vbus>;
usb2_vbus-supply = <&reg_usb2_vbus>;
status = "okay";
};

Просмотреть файл

@ -61,6 +61,17 @@
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@ -98,6 +109,10 @@
status = "okay";
};
&de {
status = "okay";
};
&ehci0 {
status = "okay";
};
@ -119,6 +134,16 @@
};
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins_a>;

Просмотреть файл

@ -47,7 +47,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h>
#include <dt-bindings/dma/sun4i-a10.h>
#include <dt-bindings/clock/sun4i-a10-ccu.h>
#include <dt-bindings/clock/sun7i-a20-ccu.h>
#include <dt-bindings/reset/sun4i-a10-ccu.h>
/ {
@ -116,8 +116,6 @@
144000 1000000
>;
#cooling-cells = <2>;
cooling-min-level = <0>;
cooling-max-level = <6>;
};
cpu@1 {
@ -1217,6 +1215,31 @@
#size-cells = <0>;
};
mali: gpu@1c40000 {
compatible = "allwinner,sun7i-a20-mali", "arm,mali-400";
reg = <0x01c40000 0x10000>;
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "gp",
"gpmmu",
"pp0",
"ppmmu0",
"pp1",
"ppmmu1",
"pmu";
clocks = <&ccu CLK_AHB_GPU>, <&ccu CLK_GPU>;
clock-names = "bus", "core";
resets = <&ccu RST_GPU>;
assigned-clocks = <&ccu CLK_GPU>;
assigned-clock-rates = <384000000>;
};
gmac: ethernet@1c50000 {
compatible = "allwinner,sun7i-a20-gmac";
reg = <0x01c50000 0x10000>;

Просмотреть файл

@ -43,7 +43,6 @@
/dts-v1/;
#include "sun8i-a33.dtsi"
#include "sunxi-common-regulators.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
@ -62,8 +61,6 @@
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&led_pin_olinuxino>;
green {
label = "a33-olinuxino:green:usr";
@ -72,13 +69,21 @@
};
};
&codec {
status = "okay";
};
&dai {
status = "okay";
};
&ehci0 {
status = "okay";
};
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino>;
pinctrl-0 = <&mmc0_pins_a>;
vmmc-supply = <&reg_dcdc1>;
bus-width = <4>;
cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
@ -90,23 +95,6 @@
status = "okay";
};
&pio {
led_pin_olinuxino: led_pins@0 {
pins = "PB7";
function = "gpio_out";
};
mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
pins = "PB4";
function = "gpio_in";
};
usb0_id_detect_pin: usb0_id_detect_pin@0 {
pins = "PB3";
function = "gpio_in";
};
};
&r_rsb {
status = "okay";
@ -122,6 +110,14 @@
#include "axp223.dtsi"
&ac_power_supply {
status = "okay";
};
&battery_power_supply {
status = "okay";
};
&reg_aldo1 {
regulator-always-on;
regulator-min-microvolt = <3300000>;
@ -195,6 +191,21 @@
vcc-lcd-supply = <&reg_dc1sw>;
};
&sound {
/* Board level jack widgets */
simple-audio-card,widgets = "Microphone", "Microphone Jack",
"Headphone", "Headphone Jack";
/* Board level routing. First 2 routes copied from SoC level */
simple-audio-card,routing =
"Left DAC", "AIF1 Slot 0 Left",
"Right DAC", "AIF1 Slot 0 Right",
"HP", "HPCOM",
"Headphone Jack", "HP",
"MIC1", "Microphone Jack",
"Microphone Jack", "MBIAS";
status = "okay";
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_b>;
@ -211,8 +222,6 @@
};
&usbphy {
pinctrl-names = "default";
pinctrl-0 = <&usb0_id_detect_pin>;
usb0_id_det-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
usb0_vbus_power-supply = <&usb_power_supply>;
usb0_vbus-supply = <&reg_drivevbus>;

Просмотреть файл

@ -289,7 +289,6 @@
clock-names = "ahb", "mod",
"ram";
resets = <&ccu RST_BUS_DE_FE>;
status = "disabled";
ports {
#address-cells = <1>;

Просмотреть файл

@ -60,6 +60,31 @@
stdout-path = "serial0:115200n8";
};
connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con_in: endpoint {
remote-endpoint = <&hdmi_out_con>;
};
};
};
leds {
compatible = "gpio-leds";
blue {
label = "bananapi-m3:blue:usr";
gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>;
};
green {
label = "bananapi-m3:green:usr";
gpios = <&axp_gpio 0 GPIO_ACTIVE_HIGH>;
};
};
reg_usb1_vbus: reg-usb1-vbus {
compatible = "regulator-fixed";
regulator-name = "usb1-vbus";
@ -82,6 +107,10 @@
};
};
&de {
status = "okay";
};
&ehci0 {
/* Terminus Tech FE 1.1s 4-port USB 2.0 hub here */
status = "okay";
@ -100,6 +129,16 @@
status = "okay";
};
&hdmi {
status = "okay";
};
&hdmi_out {
hdmi_out_con: endpoint {
remote-endpoint = <&hdmi_con_in>;
};
};
&mdio {
rgmii_phy: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";

Просмотреть файл

@ -128,6 +128,14 @@
};
};
&cpu0 {
cpu-supply = <&reg_dcdc2>;
};
&cpu100 {
cpu-supply = <&reg_dcdc3>;
};
&de {
status = "okay";
};
@ -231,6 +239,10 @@
#include "axp81x.dtsi"
&battery_power_supply {
status = "okay";
};
&reg_aldo1 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;

Просмотреть файл

@ -60,51 +60,63 @@
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
cpu0: cpu@0 {
clocks = <&ccu CLK_C0CPUX>;
clock-names = "cpu";
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu0_opp_table>;
reg = <0>;
};
cpu@1 {
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu0_opp_table>;
reg = <1>;
};
cpu@2 {
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu0_opp_table>;
reg = <2>;
};
cpu@3 {
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu0_opp_table>;
reg = <3>;
};
cpu@100 {
cpu100: cpu@100 {
clocks = <&ccu CLK_C1CPUX>;
clock-names = "cpu";
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu1_opp_table>;
reg = <0x100>;
};
cpu@101 {
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu1_opp_table>;
reg = <0x101>;
};
cpu@102 {
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu1_opp_table>;
reg = <0x102>;
};
cpu@103 {
compatible = "arm,cortex-a7";
device_type = "cpu";
operating-points-v2 = <&cpu1_opp_table>;
reg = <0x103>;
};
};
@ -155,7 +167,7 @@
de: display-engine {
compatible = "allwinner,sun8i-a83t-display-engine";
allwinner,pipelines = <&mixer0>;
allwinner,pipelines = <&mixer0>, <&mixer1>;
status = "disabled";
};
@ -164,6 +176,112 @@
device_type = "memory";
};
cpu0_opp_table: opp_table0 {
compatible = "operating-points-v2";
opp-shared;
opp-480000000 {
opp-hz = /bits/ 64 <480000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-720000000 {
opp-hz = /bits/ 64 <720000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-864000000 {
opp-hz = /bits/ 64 <864000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-912000000 {
opp-hz = /bits/ 64 <912000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-1008000000 {
opp-hz = /bits/ 64 <1008000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-1128000000 {
opp-hz = /bits/ 64 <1128000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
};
cpu1_opp_table: opp_table1 {
compatible = "operating-points-v2";
opp-shared;
opp-480000000 {
opp-hz = /bits/ 64 <480000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-720000000 {
opp-hz = /bits/ 64 <720000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-864000000 {
opp-hz = /bits/ 64 <864000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-912000000 {
opp-hz = /bits/ 64 <912000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-1008000000 {
opp-hz = /bits/ 64 <1008000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-1128000000 {
opp-hz = /bits/ 64 <1128000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
opp-1200000000 {
opp-hz = /bits/ 64 <1200000000>;
opp-microvolt = <840000>;
clock-latency-ns = <244144>; /* 8 32k periods */
};
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
@ -208,6 +326,29 @@
};
};
mixer1: mixer@1200000 {
compatible = "allwinner,sun8i-a83t-de2-mixer-1";
reg = <0x01200000 0x100000>;
clocks = <&display_clocks CLK_BUS_MIXER1>,
<&display_clocks CLK_MIXER1>;
clock-names = "bus",
"mod";
resets = <&display_clocks RST_WB>;
ports {
#address-cells = <1>;
#size-cells = <0>;
mixer1_out: port@1 {
reg = <1>;
mixer1_out_tcon1: endpoint {
remote-endpoint = <&tcon1_in_mixer1>;
};
};
};
};
syscon: syscon@1c00000 {
compatible = "allwinner,sun8i-a83t-system-controller",
"syscon";
@ -256,6 +397,40 @@
};
};
tcon1: lcd-controller@1c0d000 {
compatible = "allwinner,sun8i-a83t-tcon-tv";
reg = <0x01c0d000 0x1000>;
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>;
clock-names = "ahb", "tcon-ch1";
resets = <&ccu RST_BUS_TCON1>;
reset-names = "lcd";
ports {
#address-cells = <1>;
#size-cells = <0>;
tcon1_in: port@0 {
reg = <0>;
tcon1_in_mixer1: endpoint {
remote-endpoint = <&mixer1_out_tcon1>;
};
};
tcon1_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
tcon1_out_hdmi: endpoint@1 {
reg = <1>;
remote-endpoint = <&hdmi_in_tcon1>;
};
};
};
};
mmc0: mmc@1c0f000 {
compatible = "allwinner,sun8i-a83t-mmc",
"allwinner,sun7i-a20-mmc";
@ -427,6 +602,11 @@
drive-strength = <40>;
};
hdmi_pins: hdmi-pins {
pins = "PH6", "PH7", "PH8";
function = "hdmi";
};
i2c0_pins: i2c0-pins {
pins = "PH0", "PH1";
function = "i2c0";
@ -685,6 +865,50 @@
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
};
hdmi: hdmi@1ee0000 {
compatible = "allwinner,sun8i-a83t-dw-hdmi";
reg = <0x01ee0000 0x10000>;
reg-io-width = <1>;
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
<&ccu CLK_HDMI>;
clock-names = "iahb", "isfr", "tmds";
resets = <&ccu RST_BUS_HDMI1>;
reset-names = "ctrl";
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_tcon1: endpoint {
remote-endpoint = <&tcon1_out_hdmi>;
};
};
hdmi_out: port@1 {
reg = <1>;
};
};
};
hdmi_phy: hdmi-phy@1ef0000 {
compatible = "allwinner,sun8i-a83t-hdmi-phy";
reg = <0x01ef0000 0x10000>;
clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>;
clock-names = "bus", "mod";
resets = <&ccu RST_BUS_HDMI0>;
reset-names = "phy";
#phy-cells = <0>;
};
r_intc: interrupt-controller@1f00c00 {
compatible = "allwinner,sun8i-a83t-r-intc",
"allwinner,sun6i-a31-r-intc";

Просмотреть файл

@ -68,6 +68,14 @@
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
};
};
&ohci1 {
/*
* RTL8152B USB-Ethernet adapter is connected to USB1,

Просмотреть файл

@ -119,6 +119,16 @@
};
};
&mmc2 {
pinctrl-names = "default";
pinctrl-0 = <&mmc2_8bit_pins>;
vmmc-supply = <&reg_vcc3v3>;
vqmmc-supply = <&reg_vcc3v3>;
bus-width = <8>;
non-removable;
status = "okay";
};
&ohci1 {
status = "okay";
};

Просмотреть файл

@ -125,6 +125,14 @@
#include "axp223.dtsi"
&ac_power_supply {
status = "okay";
};
&battery_power_supply {
status = "okay";
};
&reg_aldo1 {
regulator-always-on;
regulator-min-microvolt = <3000000>;

Просмотреть файл

@ -74,6 +74,52 @@
};
};
vga-connector {
compatible = "vga-connector";
label = "vga";
ddc-i2c-bus = <&i2c3>;
port {
vga_con_in: endpoint {
remote-endpoint = <&vga_dac_out>;
};
};
};
vga-dac {
compatible = "corpro,gm7123", "adi,adv7123", "dumb-vga-dac";
vdd-supply = <&reg_dcdc1>;
#address-cells = <1>;
#size-cells = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
vga_dac_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_vga>;
};
};
port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
vga_dac_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&vga_con_in>;
};
};
};
};
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
clocks = <&ac100_rtc 1>;
@ -83,6 +129,16 @@
};
};
&de {
status = "okay";
};
&i2c3 {
pinctrl-names = "default";
pinctrl-0 = <&i2c3_pins>;
status = "okay";
};
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
@ -403,6 +459,18 @@
#include "axp809.dtsi"
&tcon0 {
pinctrl-names = "default";
pinctrl-0 = <&lcd0_rgb888_pins>;
};
&tcon0_out {
tcon0_out_vga: endpoint@0 {
reg = <0>;
remote-endpoint = <&vga_dac_in>;
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_ph_pins>;

Просмотреть файл

@ -63,48 +63,72 @@
cpu0: cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
cci-control-port = <&cci_control0>;
clock-frequency = <12000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x0>;
};
cpu1: cpu@1 {
compatible = "arm,cortex-a7";
device_type = "cpu";
cci-control-port = <&cci_control0>;
clock-frequency = <12000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x1>;
};
cpu2: cpu@2 {
compatible = "arm,cortex-a7";
device_type = "cpu";
cci-control-port = <&cci_control0>;
clock-frequency = <12000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x2>;
};
cpu3: cpu@3 {
compatible = "arm,cortex-a7";
device_type = "cpu";
cci-control-port = <&cci_control0>;
clock-frequency = <12000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x3>;
};
cpu4: cpu@100 {
compatible = "arm,cortex-a15";
device_type = "cpu";
cci-control-port = <&cci_control1>;
clock-frequency = <18000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x100>;
};
cpu5: cpu@101 {
compatible = "arm,cortex-a15";
device_type = "cpu";
cci-control-port = <&cci_control1>;
clock-frequency = <18000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x101>;
};
cpu6: cpu@102 {
compatible = "arm,cortex-a15";
device_type = "cpu";
cci-control-port = <&cci_control1>;
clock-frequency = <18000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x102>;
};
cpu7: cpu@103 {
compatible = "arm,cortex-a15";
device_type = "cpu";
cci-control-port = <&cci_control1>;
clock-frequency = <18000000>;
enable-method = "allwinner,sun9i-a80-smp";
reg = <0x103>;
};
};
@ -224,6 +248,12 @@
};
};
de: display-engine {
compatible = "allwinner,sun9i-a80-display-engine";
allwinner,pipelines = <&fe0>, <&fe1>;
status = "disabled";
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
@ -234,6 +264,25 @@
*/
ranges = <0 0 0 0x20000000>;
sram_b: sram@20000 {
/* 256 KiB secure SRAM at 0x20000 */
compatible = "mmio-sram";
reg = <0x00020000 0x40000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x00020000 0x40000>;
smp-sram@1000 {
/*
* This is checked by BROM to determine if
* cpu0 should jump to SMP entry vector
*/
compatible = "allwinner,sun9i-a80-smp-sram";
reg = <0x1000 0x8>;
};
};
ehci0: usb@a00000 {
compatible = "allwinner,sun9i-a80-ehci", "generic-ehci";
reg = <0x00a00000 0x100>;
@ -347,6 +396,11 @@
#reset-cells = <1>;
};
cpucfg@1700000 {
compatible = "allwinner,sun9i-a80-cpucfg";
reg = <0x01700000 0x100>;
};
mmc0: mmc@1c0f000 {
compatible = "allwinner,sun9i-a80-mmc";
reg = <0x01c0f000 0x1000>;
@ -431,6 +485,36 @@
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
};
cci: cci@1c90000 {
compatible = "arm,cci-400";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x01c90000 0x1000>;
ranges = <0x0 0x01c90000 0x10000>;
cci_control0: slave-if@4000 {
compatible = "arm,cci-400-ctrl-if";
interface-type = "ace";
reg = <0x4000 0x1000>;
};
cci_control1: slave-if@5000 {
compatible = "arm,cci-400-ctrl-if";
interface-type = "ace";
reg = <0x5000 0x1000>;
};
pmu@9000 {
compatible = "arm,cci-400-pmu,r1";
reg = <0x9000 0x5000>;
interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
};
};
de_clocks: clock@3000000 {
compatible = "allwinner,sun9i-a80-de-clks";
reg = <0x03000000 0x30>;
@ -445,6 +529,381 @@
#reset-cells = <1>;
};
fe0: display-frontend@3100000 {
compatible = "allwinner,sun9i-a80-display-frontend";
reg = <0x03100000 0x40000>;
interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_FE0>, <&de_clocks CLK_FE0>,
<&de_clocks CLK_DRAM_FE0>;
clock-names = "ahb", "mod",
"ram";
resets = <&de_clocks RST_FE0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
fe0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
fe0_out_deu0: endpoint@0 {
reg = <0>;
remote-endpoint = <&deu0_in_fe0>;
};
};
};
};
fe1: display-frontend@3140000 {
compatible = "allwinner,sun9i-a80-display-frontend";
reg = <0x03140000 0x40000>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_FE1>, <&de_clocks CLK_FE1>,
<&de_clocks CLK_DRAM_FE1>;
clock-names = "ahb", "mod",
"ram";
resets = <&de_clocks RST_FE0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
fe1_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
fe1_out_deu1: endpoint@0 {
reg = <0>;
remote-endpoint = <&deu1_in_fe1>;
};
};
};
};
be0: display-backend@3200000 {
compatible = "allwinner,sun9i-a80-display-backend";
reg = <0x03200000 0x40000>;
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_BE0>, <&de_clocks CLK_BE0>,
<&de_clocks CLK_DRAM_BE0>;
clock-names = "ahb", "mod",
"ram";
resets = <&de_clocks RST_BE0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
be0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
be0_in_deu0: endpoint@0 {
reg = <0>;
remote-endpoint = <&deu0_out_be0>;
};
be0_in_deu1: endpoint@1 {
reg = <1>;
remote-endpoint = <&deu1_out_be0>;
};
};
be0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
be0_out_drc0: endpoint@0 {
reg = <0>;
remote-endpoint = <&drc0_in_be0>;
};
};
};
};
be1: display-backend@3240000 {
compatible = "allwinner,sun9i-a80-display-backend";
reg = <0x03240000 0x40000>;
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_BE1>, <&de_clocks CLK_BE1>,
<&de_clocks CLK_DRAM_BE1>;
clock-names = "ahb", "mod",
"ram";
resets = <&de_clocks RST_BE1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
be1_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
be1_in_deu0: endpoint@0 {
reg = <0>;
remote-endpoint = <&deu0_out_be1>;
};
be1_in_deu1: endpoint@1 {
reg = <1>;
remote-endpoint = <&deu1_out_be1>;
};
};
be1_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
be1_out_drc1: endpoint@0 {
reg = <0>;
remote-endpoint = <&drc1_in_be1>;
};
};
};
};
deu0: deu@3300000 {
compatible = "allwinner,sun9i-a80-deu";
reg = <0x03300000 0x40000>;
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_DEU0>,
<&de_clocks CLK_IEP_DEU0>,
<&de_clocks CLK_DRAM_DEU0>;
clock-names = "ahb",
"mod",
"ram";
resets = <&de_clocks RST_DEU0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
deu0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
deu0_in_fe0: endpoint@0 {
reg = <0>;
remote-endpoint = <&fe0_out_deu0>;
};
};
deu0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
deu0_out_be0: endpoint@0 {
reg = <0>;
remote-endpoint = <&be0_in_deu0>;
};
deu0_out_be1: endpoint@1 {
reg = <1>;
remote-endpoint = <&be1_in_deu0>;
};
};
};
};
deu1: deu@3340000 {
compatible = "allwinner,sun9i-a80-deu";
reg = <0x03340000 0x40000>;
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_DEU1>,
<&de_clocks CLK_IEP_DEU1>,
<&de_clocks CLK_DRAM_DEU1>;
clock-names = "ahb",
"mod",
"ram";
resets = <&de_clocks RST_DEU1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
deu1_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
deu1_in_fe1: endpoint@0 {
reg = <0>;
remote-endpoint = <&fe1_out_deu1>;
};
};
deu1_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
deu1_out_be0: endpoint@0 {
reg = <0>;
remote-endpoint = <&be0_in_deu1>;
};
deu1_out_be1: endpoint@1 {
reg = <1>;
remote-endpoint = <&be1_in_deu1>;
};
};
};
};
drc0: drc@3400000 {
compatible = "allwinner,sun9i-a80-drc";
reg = <0x03400000 0x40000>;
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_DRC0>,
<&de_clocks CLK_IEP_DRC0>,
<&de_clocks CLK_DRAM_DRC0>;
clock-names = "ahb",
"mod",
"ram";
resets = <&de_clocks RST_DRC0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
drc0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
drc0_in_be0: endpoint@0 {
reg = <0>;
remote-endpoint = <&be0_out_drc0>;
};
};
drc0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
drc0_out_tcon0: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_in_drc0>;
};
};
};
};
drc1: drc@3440000 {
compatible = "allwinner,sun9i-a80-drc";
reg = <0x03440000 0x40000>;
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&de_clocks CLK_BUS_DRC1>,
<&de_clocks CLK_IEP_DRC1>,
<&de_clocks CLK_DRAM_DRC1>;
clock-names = "ahb",
"mod",
"ram";
resets = <&de_clocks RST_DRC1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
drc1_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
drc1_in_be1: endpoint@0 {
reg = <0>;
remote-endpoint = <&be1_out_drc1>;
};
};
drc1_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
drc1_out_tcon1: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon1_in_drc1>;
};
};
};
};
tcon0: lcd-controller@3c00000 {
compatible = "allwinner,sun9i-a80-tcon-lcd";
reg = <0x03c00000 0x10000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_LCD0>, <&ccu CLK_LCD0>;
clock-names = "ahb", "tcon-ch0";
resets = <&ccu RST_BUS_LCD0>, <&ccu RST_BUS_EDP>;
reset-names = "lcd", "edp";
clock-output-names = "tcon0-pixel-clock";
ports {
#address-cells = <1>;
#size-cells = <0>;
tcon0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
tcon0_in_drc0: endpoint@0 {
reg = <0>;
remote-endpoint = <&drc0_out_tcon0>;
};
};
tcon0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
tcon1: lcd-controller@3c10000 {
compatible = "allwinner,sun9i-a80-tcon-tv";
reg = <0x03c10000 0x10000>;
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_LCD1>, <&ccu CLK_LCD1>;
clock-names = "ahb", "tcon-ch1";
resets = <&ccu RST_BUS_LCD1>, <&ccu RST_BUS_EDP>;
reset-names = "lcd", "edp";
ports {
#address-cells = <1>;
#size-cells = <0>;
tcon1_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
tcon1_in_drc1: endpoint@0 {
reg = <0>;
remote-endpoint = <&drc1_out_tcon1>;
};
};
tcon1_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
ccu: clock@6000000 {
compatible = "allwinner,sun9i-a80-ccu";
reg = <0x06000000 0x800>;
@ -494,6 +953,17 @@
function = "i2c3";
};
lcd0_rgb888_pins: lcd0-rgb888-pins {
pins = "PD0", "PD1", "PD2", "PD3",
"PD4", "PD5", "PD6", "PD7",
"PD8", "PD9", "PD10", "PD11",
"PD12", "PD13", "PD14", "PD15",
"PD16", "PD17", "PD18", "PD19",
"PD20", "PD21", "PD22", "PD23",
"PD24", "PD25", "PD26", "PD27";
function = "lcd0";
};
mmc0_pins: mmc0-pins {
pins = "PF0", "PF1" ,"PF2", "PF3",
"PF4", "PF5";
@ -658,6 +1128,11 @@
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
};
prcm@8001400 {
compatible = "allwinner,sun9i-a80-prcm";
reg = <0x08001400 0x200>;
};
apbs_rst: reset@80014b0 {
reg = <0x080014b0 0x4>;
compatible = "allwinner,sun6i-a31-clock-reset";