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:
commit
d0a8532e1e
|
@ -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:
|
||||
|
||||
|
|
|
@ -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 @@
|
|||
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 = <®_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 @@
|
|||
};
|
||||
};
|
||||
|
||||
&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 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm_pin>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&r_rsb {
|
||||
status = "okay";
|
||||
|
||||
|
@ -322,6 +371,18 @@
|
|||
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>;
|
||||
|
|
|
@ -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 @@
|
|||
};
|
||||
};
|
||||
|
||||
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 @@
|
|||
#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-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 @@
|
|||
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 @@
|
|||
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 @@
|
|||
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>;
|
||||
|
|
|
@ -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 @@
|
|||
reg = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&usbphy {
|
||||
usb1_vbus-supply = <®_vcc_usb_eth>;
|
||||
};
|
||||
|
|
|
@ -85,6 +85,10 @@
|
|||
compatible = "allwinner,sun8i-h3-ccu";
|
||||
};
|
||||
|
||||
&display_clocks {
|
||||
compatible = "allwinner,sun8i-h3-de2-clk";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
compatible = "allwinner,sun7i-a20-mmc";
|
||||
clocks = <&ccu CLK_BUS_MMC0>,
|
||||
|
|
|
@ -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 @@
|
|||
#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";
|
||||
|
|
|
@ -98,6 +98,10 @@
|
|||
compatible = "allwinner,sun50i-h5-ccu";
|
||||
};
|
||||
|
||||
&display_clocks {
|
||||
compatible = "allwinner,sun50i-h5-de2-clk";
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
compatible = "allwinner,sun50i-h5-mmc",
|
||||
"allwinner,sun50i-a64-mmc";
|
||||
|
|
Loading…
Reference in New Issue