Allwinner DT changes for 4.16, bis

A few improvements to our DT support, with:
   - basic DRM support for the A83t
   - simplefb support for the H3 and H5 SoCs
   - One fix for the USB ethernet on the Orange Pi R1
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE0VqZU19dR2zEVaqr0rTAlCFNr3QFAlpPTzIACgkQ0rTAlCFN
 r3SwvRAAkG4Idi3wsORz0+RwIFLHeiPNzE4iGrnwAsX1RhlYn17LHcGA2xBkV5d9
 Khk1AoOKkhpNKJ11e1UFffU0jMeibDXaWEbcE3fhLP6X3wnkuspOZuSCsk94C+oU
 xLOKVTy9Kw+yQPvOzqWmiI84YCSkH1SGw1mPOnTUD2Nz7Soux9I6hr3AO6x50pIW
 5dq9tbxNN53YARc28ydOFtChnR2NTPQrLnGefU3eFjMp4F1xcEZq54TN3kBbF5U2
 x7rbDunDh13EI8Qhi1jzgnKedXkkSFc3Zm0IhnjzEVVms9TS0Fz0b5KDT8RG/f9+
 O3hHXcsvCnxadULcq4xEWB4WV3Xjmt8x6Y8RUlkYFgBfA2iOJcqd2jJbWB98iaVB
 Ce7w+48yBWVkG35vGIGpmO/TiY8czicveFy2T98zDmHPiwzCNn3+0XExDQsgklt7
 gR/8CWCqVDhK0XnZadntkZuq/bXOJzVQ2BpnZXIC+cGz1GjmAGR9Ey5l2VusBZLU
 zEhTGbyBbfaJikR+4sRxkPx7DFkvjXbM/Y/cEHgD0CqZboynFLgPiewHTRcCTYWb
 4qaBI660jYINHetQWdCG2Iz3gjAjaJEyEBtK61BDL9hX4del2hVwvq7t7F7NMV6L
 EZFCDDUOfky56gKCYSXPWU/S6MX5hzIw8Y5/csQVMQCOoOkqe7o=
 =bDG2
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-4.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt

Allwinner DT changes for 4.16, bis

A few improvements to our DT support, with:
  - basic DRM support for the A83t
  - simplefb support for the H3 and H5 SoCs
  - One fix for the USB ethernet on the Orange Pi R1

* tag 'sunxi-dt-for-4.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  ARM: dts: sun8i: a711: Enable the LCD
  ARM: dts: sun8i: a83t: Add LVDS pins group
  ARM: dts: sun8i: a83t: Enable the PWM
  ARM: dts: sun8i: a83t: Add display pipeline
  ARM: sunxi: h3/h5: add simplefb nodes
  arm64: allwinner: h5: add compatible string for DE2 CCU
  ARM: sun8i: h3/h5: add DE2 CCU device node for H3
  dt-bindings: simplefb-sunxi: add pipelines for DE2
  ARM: dts: sun8i: fix USB Ethernet of Orange Pi R1

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2018-01-11 16:54:36 -08:00
commit d0a8532e1e
7 changed files with 228 additions and 0 deletions

View file

@ -15,6 +15,10 @@ Required properties:
"de_be1-lcd1"
"de_be0-lcd0-hdmi"
"de_be1-lcd1-hdmi"
"mixer0-lcd0"
"mixer0-lcd0-hdmi"
"mixer1-lcd1-hdmi"
"mixer1-lcd1-tve"
Example:

View file

@ -45,6 +45,7 @@
#include "sun8i-a83t.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pwm/pwm.h>
/ {
model = "TBS A711 Tablet";
@ -59,6 +60,44 @@ chosen {
stdout-path = "serial0:115200n8";
};
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
enable-gpios = <&pio 3 29 GPIO_ACTIVE_HIGH>;
brightness-levels = <0 1 2 4 8 16 32 64 128 255>;
default-brightness-level = <9>;
};
panel {
compatible = "tbs,a711-panel", "panel-lvds";
backlight = <&backlight>;
power-supply = <&reg_sw>;
width-mm = <153>;
height-mm = <90>;
data-mapping = "vesa-24";
panel-timing {
/* 1024x600 @60Hz */
clock-frequency = <52000000>;
hactive = <1024>;
vactive = <600>;
hsync-len = <20>;
hfront-porch = <180>;
hback-porch = <160>;
vfront-porch = <12>;
vback-porch = <23>;
vsync-len = <5>;
};
port {
panel_input: endpoint {
remote-endpoint = <&tcon0_out_lcd>;
};
};
};
reg_vbat: reg-vbat {
compatible = "regulator-fixed";
regulator-name = "vbat";
@ -89,6 +128,10 @@ wifi_pwrseq: wifi_pwrseq {
};
};
&de {
status = "okay";
};
/*
* An USB-2 hub is connected here, which also means we don't need to
* enable the OHCI controller.
@ -142,6 +185,12 @@ &mmc2 {
status = "okay";
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm_pin>;
status = "okay";
};
&r_rsb {
status = "okay";
@ -322,6 +371,18 @@ &reg_sw {
regulator-name = "vcc-lcd";
};
&tcon0 {
pinctrl-names = "default";
pinctrl-0 = <&lcd_lvds_pins>;
};
&tcon0_out {
tcon0_out_lcd: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_input>;
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pb_pins>;

View file

@ -45,8 +45,10 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-a83t-ccu.h>
#include <dt-bindings/clock/sun8i-de2.h>
#include <dt-bindings/clock/sun8i-r-ccu.h>
#include <dt-bindings/reset/sun8i-a83t-ccu.h>
#include <dt-bindings/reset/sun8i-de2.h>
#include <dt-bindings/reset/sun8i-r-ccu.h>
/ {
@ -151,6 +153,12 @@ osc16Md512: osc16Md512_clk {
};
};
de: display-engine {
compatible = "allwinner,sun8i-a83t-display-engine";
allwinner,pipelines = <&mixer0>;
status = "disabled";
};
memory {
reg = <0x40000000 0x80000000>;
device_type = "memory";
@ -162,6 +170,44 @@ soc {
#size-cells = <1>;
ranges;
display_clocks: clock@1000000 {
compatible = "allwinner,sun8i-a83t-de2-clk";
reg = <0x01000000 0x100000>;
clocks = <&ccu CLK_PLL_DE>,
<&ccu CLK_BUS_DE>;
clock-names = "mod",
"bus";
resets = <&ccu RST_BUS_DE>;
#clock-cells = <1>;
#reset-cells = <1>;
};
mixer0: mixer@1100000 {
compatible = "allwinner,sun8i-a83t-de2-mixer-0";
reg = <0x01100000 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 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
mixer0_out_tcon0: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_in_mixer0>;
};
};
};
};
syscon: syscon@1c00000 {
compatible = "allwinner,sun8i-a83t-system-controller",
"syscon";
@ -177,6 +223,39 @@ dma: dma-controller@1c02000 {
#dma-cells = <1>;
};
tcon0: lcd-controller@1c0c000 {
compatible = "allwinner,sun8i-a83t-tcon-lcd";
reg = <0x01c0c000 0x1000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
clock-names = "ahb", "tcon-ch0";
clock-output-names = "tcon-pixel-clock";
resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
reset-names = "lcd", "lvds";
ports {
#address-cells = <1>;
#size-cells = <0>;
tcon0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
tcon0_in_mixer0: endpoint@0 {
reg = <0>;
remote-endpoint = <&mixer0_out_tcon0>;
};
};
tcon0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
mmc0: mmc@1c0f000 {
compatible = "allwinner,sun8i-a83t-mmc",
"allwinner,sun7i-a20-mmc";
@ -369,6 +448,12 @@ i2s1_pins: i2s1-pins {
function = "i2s1";
};
lcd_lvds_pins: lcd-lvds-pins {
pins = "PD18", "PD19", "PD20", "PD21", "PD22",
"PD23", "PD24", "PD25", "PD26", "PD27";
function = "lvds0";
};
mmc0_pins: mmc0-pins {
pins = "PF0", "PF1", "PF2",
"PF3", "PF4", "PF5";
@ -394,6 +479,11 @@ mmc2_8bit_emmc_pins: mmc2-8bit-emmc-pins {
bias-pull-up;
};
pwm_pin: pwm-pin {
pins = "PD28";
function = "pwm";
};
spdif_tx_pin: spdif-tx-pin {
pins = "PE18";
function = "spdif";
@ -492,6 +582,15 @@ i2s2: i2s@1c22800 {
status = "disabled";
};
pwm: pwm@1c21400 {
compatible = "allwinner,sun8i-a83t-pwm",
"allwinner,sun8i-h3-pwm";
reg = <0x01c21400 0x400>;
clocks = <&osc24M>;
#pwm-cells = <3>;
status = "disabled";
};
uart0: serial@1c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28000 0x400>;

View file

@ -49,6 +49,20 @@ / {
/delete-node/ reg_vcc_wifi;
/*
* Ths pin of this regulator is the same with the Wi-Fi extra
* regulator on the original Zero. However it's used for USB
* Ethernet rather than the Wi-Fi now.
*/
reg_vcc_usb_eth: reg-vcc-usb-ethernet {
compatible = "regulator-fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-name = "vcc-usb-ethernet";
enable-active-high;
gpio = <&pio 0 20 GPIO_ACTIVE_HIGH>;
};
aliases {
ethernet1 = &rtl8189etv;
};
@ -71,3 +85,7 @@ rtl8189etv: sdio_wifi@1 {
reg = <1>;
};
};
&usbphy {
usb1_vbus-supply = <&reg_vcc_usb_eth>;
};

View file

@ -85,6 +85,10 @@ &ccu {
compatible = "allwinner,sun8i-h3-ccu";
};
&display_clocks {
compatible = "allwinner,sun8i-h3-de2-clk";
};
&mmc0 {
compatible = "allwinner,sun7i-a20-mmc";
clocks = <&ccu CLK_BUS_MMC0>,

View file

@ -40,9 +40,11 @@
* OTHER DEALINGS IN THE SOFTWARE.
*/
#include <dt-bindings/clock/sun8i-de2.h>
#include <dt-bindings/clock/sun8i-h3-ccu.h>
#include <dt-bindings/clock/sun8i-r-ccu.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/sun8i-de2.h>
#include <dt-bindings/reset/sun8i-h3-ccu.h>
#include <dt-bindings/reset/sun8i-r-ccu.h>
@ -51,6 +53,30 @@ / {
#address-cells = <1>;
#size-cells = <1>;
chosen {
#address-cells = <1>;
#size-cells = <1>;
ranges;
framebuffer-hdmi {
compatible = "allwinner,simple-framebuffer",
"simple-framebuffer";
allwinner,pipeline = "mixer0-lcd0-hdmi";
clocks = <&display_clocks CLK_MIXER0>,
<&ccu CLK_TCON0>, <&ccu CLK_HDMI>;
status = "disabled";
};
framebuffer-tve {
compatible = "allwinner,simple-framebuffer",
"simple-framebuffer";
allwinner,pipeline = "mixer1-lcd1-tve";
clocks = <&display_clocks CLK_MIXER1>,
<&ccu CLK_TVE>;
status = "disabled";
};
};
clocks {
#address-cells = <1>;
#size-cells = <1>;
@ -85,6 +111,18 @@ soc {
#size-cells = <1>;
ranges;
display_clocks: clock@1000000 {
/* compatible is in per SoC .dtsi file */
reg = <0x01000000 0x100000>;
clocks = <&ccu CLK_DE>,
<&ccu CLK_BUS_DE>;
clock-names = "mod",
"bus";
resets = <&ccu RST_BUS_DE>;
#clock-cells = <1>;
#reset-cells = <1>;
};
syscon: syscon@1c00000 {
compatible = "allwinner,sun8i-h3-system-controller",
"syscon";

View file

@ -98,6 +98,10 @@ &ccu {
compatible = "allwinner,sun50i-h5-ccu";
};
&display_clocks {
compatible = "allwinner,sun50i-h5-de2-clk";
};
&mmc0 {
compatible = "allwinner,sun50i-h5-mmc",
"allwinner,sun50i-a64-mmc";