Skip to content

Commit

Permalink
Merge tag 'sunxi-dt-for-4.16-2' of https://git.kernel.org/pub/scm/lin…
Browse files Browse the repository at this point in the history
…ux/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>
  • Loading branch information
Olof Johansson committed Jan 12, 2018
2 parents ba05173 + 1ce7990 commit d0a8532
Show file tree
Hide file tree
Showing 7 changed files with 228 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
61 changes: 61 additions & 0 deletions arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
#include "sun8i-a83t.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pwm/pwm.h>

/ {
model = "TBS A711 Tablet";
Expand All @@ -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 = <&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";
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -142,6 +185,12 @@
status = "okay";
};

&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm_pin>;
status = "okay";
};

&r_rsb {
status = "okay";

Expand Down Expand Up @@ -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>;
Expand Down
99 changes: 99 additions & 0 deletions arch/arm/boot/dts/sun8i-a83t.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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>

/ {
Expand Down Expand Up @@ -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";
Expand All @@ -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";
Expand All @@ -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";
Expand Down Expand Up @@ -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";
Expand All @@ -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";
Expand Down Expand Up @@ -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>;
Expand Down
18 changes: 18 additions & 0 deletions arch/arm/boot/dts/sun8i-h2-plus-orangepi-r1.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
Expand All @@ -71,3 +85,7 @@
reg = <1>;
};
};

&usbphy {
usb1_vbus-supply = <&reg_vcc_usb_eth>;
};
4 changes: 4 additions & 0 deletions arch/arm/boot/dts/sun8i-h3.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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>,
Expand Down
38 changes: 38 additions & 0 deletions arch/arm/boot/dts/sunxi-h3-h5.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand All @@ -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>;
Expand Down Expand Up @@ -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";
Expand Down
4 changes: 4 additions & 0 deletions arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down

0 comments on commit d0a8532

Please sign in to comment.