diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 6d4ff8cdf..2d0b2f4c4 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -872,7 +872,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3288-veyron-minnie.dtb \ rk3288-veyron-pinky.dtb \ rk3288-veyron-speedy.dtb \ - rk3288-vyasa.dtb + rk3288-vyasa.dtb +subdir-y := overlay dtb-$(CONFIG_ARCH_S3C24XX) += \ s3c2416-smdk2416.dtb dtb-$(CONFIG_ARCH_S3C64XX) += \ diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts index d0961c35d..994f60a55 100644 --- a/arch/arm/boot/dts/rk3288-tinker.dts +++ b/arch/arm/boot/dts/rk3288-tinker.dts @@ -579,19 +579,19 @@ }; &uart1 { - status = "okay"; + status = "disabled"; }; &uart2 { - status = "okay"; + status = "disabled"; }; &uart3 { - status = "okay"; + status = "disabled"; }; &uart4 { - status = "okay"; + status = "disabled"; }; &usbphy { diff --git a/arch/arm/boot/dts/overlay/Makefile b/arch/arm/boot/dts/overlay/Makefile new file mode 100644 index 000000000..207eb4789 --- /dev/null +++ b/arch/arm/boot/dts/overlay/Makefile @@ -0,0 +1,26 @@ +# SPDX-License-Identifier: GPL-2.0 +dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ + rockchip-ds1307.dtbo \ + rockchip-i2c1.dtbo \ + rockchip-i2c4.dtbo \ + rockchip-spi0.dtbo \ + rockchip-spi2.dtbo \ + rockchip-spidev0.dtbo \ + rockchip-spidev2.dtbo \ + rockchip-uart1.dtbo \ + rockchip-uart2.dtbo \ + rockchip-uart3.dtbo \ + rockchip-uart4.dtbo \ + rockchip-w1-gpio.dtbo + +scr-$(CONFIG_ARCH_ROCKCHIP) += \ + rockchip-fixup.scr + +dtbotxt-$(CONFIG_ARCH_ROCKCHIP) += \ + README.rockchip-overlays + +targets += $(dtbo-y) $(scr-y) $(dtbotxt-y) + +always := $(dtbo-y) $(scr-y) $(dtbotxt-y) +clean-files := *.dtbo *.scr + diff --git a/arch/arm/boot/dts/overlay/README.rockchip-overlays b/arch/arm/boot/dts/overlay/README.rockchip-overlays new file mode 100644 index 000000000..c6f331542 --- /dev/null +++ b/arch/arm/boot/dts/overlay/README.rockchip-overlays @@ -0,0 +1,78 @@ +This document describes overlays provided in the kernel packages +For generic Armbian overlays documentation please see +https://docs.armbian.com/User-Guide_Allwinner_overlays/ + +### Platform: + +rockchip (Rockchip) + +### Provided overlays: + +- ds1307 +- i2c1 +- i2c4 +- spi0 +- spi2 +- spidev0 +- spidev2 +- uart1 +- uart2 +- uart3 +- uart4 +- w1-gpio + +### Overlay details: + +### ds1307 + +Activates ds1307 rtc on i2c1 + +### i2c1 + +Activate i2c1 + +### i2c4 + +Activate i2c4 + +### spi0 + +Activate spi0 +conflicts with uart4 + +### spi2 + +Activate spi2 + +### spidev0 + +Activate spidev on spi0 +Depends on spi0 + +### spidev2 + +Activate spidev on spi2 +depends on spi2 + +### uart1 + +Activate uart1 + +### uart2 + +Activate uart2 + +### uart3 + +Activate uart3 + +### uart4 + +Activate uart4 +Conflicts with spi0 + +### w1-gpio + +Activates 1-wire gpio master on GPIO0 17 + + diff --git a/arch/arm/boot/dts/overlay/rockchip-ds1307.dts b/arch/arm/boot/dts/overlay/rockchip-ds1307.dts new file mode 100644 index 000000000..af240e46b --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-ds1307.dts @@ -0,0 +1,21 @@ +/* Definitions for ds1307 +* From ASUS: https://github.com/TinkerBoard/debian_kernel/commits/develop/arch/arm/boot/dts/overlays/ds1307-overlay.dts +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&i2c1>; + __overlay__ { + rtc: ds1307@68 { + compatible = "dallas,ds1307"; + reg = <0x68>; + status = "okay"; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-fixup.scr-cmd b/arch/arm/boot/dts/overlay/rockchip-fixup.scr-cmd new file mode 100644 index 000000000..d4c39e20a --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-fixup.scr-cmd @@ -0,0 +1,4 @@ +# overlays fixup script +# implements (or rather substitutes) overlay arguments functionality +# using u-boot scripting, environment variables and "fdt" command + diff --git a/arch/arm/boot/dts/overlay/rockchip-spi0.dts b/arch/arm/boot/dts/overlay/rockchip-spi0.dts new file mode 100644 index 000000000..cde22beb1 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-spi0.dts @@ -0,0 +1,17 @@ +/* Definitions for spi0 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&spi0>; + __overlay__ { + status = "okay"; + max-freq = <50000000>; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-spi2.dts b/arch/arm/boot/dts/overlay/rockchip-spi2.dts new file mode 100644 index 000000000..dcbfd8ad6 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-spi2.dts @@ -0,0 +1,17 @@ +/* Definitions for spi2 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&spi2>; + __overlay__ { + status = "okay"; + max-freq = <50000000>; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-spidev0.dts b/arch/arm/boot/dts/overlay/rockchip-spidev0.dts new file mode 100644 index 000000000..6f4565761 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-spidev0.dts @@ -0,0 +1,33 @@ +/* Definition for SPI0 Spidev + * spi port for Tinker Board + */ + +/dts-v1/; +/plugin/; + +/{ + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + + target = <&spi0>; + __overlay__ { + + spidev@0 { + compatible = "rockchip,spi_tinker"; + reg = <0>; + spi-max-frequency = <50000000>; + spi-cpha = <1>; + status = "okay"; + }; + + spidev@1 { + compatible = "rockchip,spi_tinker"; + reg = <1>; + spi-max-frequency = <50000000>; + spi-cpha = <1>; + status = "okay"; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-spidev2.dts b/arch/arm/boot/dts/overlay/rockchip-spidev2.dts new file mode 100644 index 000000000..bdaf0bd77 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-spidev2.dts @@ -0,0 +1,33 @@ +/* Definition for SPI2 Spidev + * spi port for Tinker Board + */ + +/dts-v1/; +/plugin/; + +/{ + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + + target = <&spi2>; + __overlay__ { + + spidev@0 { + compatible = "rockchip,spi_tinker"; + reg = <0>; + spi-max-frequency = <50000000>; + spi-cpha = <1>; + status = "okay"; + }; + + spidev@1 { + compatible = "rockchip,spi_tinker"; + reg = <1>; + spi-max-frequency = <50000000>; + spi-cpha = <1>; + status = "okay"; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-uart1.dts b/arch/arm/boot/dts/overlay/rockchip-uart1.dts new file mode 100644 index 000000000..8d6b28a9d --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-uart1.dts @@ -0,0 +1,16 @@ +/* Definitions for uart1 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&uart1>; + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-uart2.dts b/arch/arm/boot/dts/overlay/rockchip-uart2.dts new file mode 100644 index 000000000..875de3c66 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-uart2.dts @@ -0,0 +1,16 @@ +/* Definitions for uart2 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&uart2>; + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-uart3.dts b/arch/arm/boot/dts/overlay/rockchip-uart3.dts new file mode 100644 index 000000000..ccc51248a --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-uart3.dts @@ -0,0 +1,16 @@ +/* Definitions for uart3 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&uart3>; + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-uart4.dts b/arch/arm/boot/dts/overlay/rockchip-uart4.dts new file mode 100644 index 000000000..cc9f84ae8 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-uart4.dts @@ -0,0 +1,16 @@ +/* Definitions for uart4 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&uart4>; + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-w1-gpio.dts b/arch/arm/boot/dts/overlay/rockchip-w1-gpio.dts new file mode 100644 index 000000000..02bb81a1e --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-w1-gpio.dts @@ -0,0 +1,33 @@ +/* 1-Wire GPIO +* From ASUS: https://github.com/TinkerBoard/debian_kernel/blob/develop/arch/arm/boot/dts/overlays/w1-gpio-overlay.dts +* +* +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-tinker", "rockchip,rk3288"; + fragment@0 { + target-path = "/"; + __overlay__ { + w1: onewire@0 { + compatible = "w1-gpio"; + pinctrl-names = "default"; + pinctrl-0 = <&w1_pins>; + gpios = <&gpio0 17 0>; + status = "okay"; + }; + }; + }; + + fragment@1 { + target = <&gpio0>; + __overlay__ { + w1_pins: w1_pins@0 { + rockchip,pins = <0 17 0 &pcfg_pull_up>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-i2c1.dts b/arch/arm/boot/dts/overlay/rockchip-i2c1.dts new file mode 100644 index 000000000..12064d4d2 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-i2c1.dts @@ -0,0 +1,16 @@ +/* Definitions for i2c1 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&i2c1>; + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlay/rockchip-i2c4.dts b/arch/arm/boot/dts/overlay/rockchip-i2c4.dts new file mode 100644 index 000000000..b399ecbd8 --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-i2c4.dts @@ -0,0 +1,16 @@ +/* Definitions for i2c4 +*/ + +/dts-v1/; +/plugin/; + +/ { + compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + + fragment@0 { + target = <&i2c4>; + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts index 994f60a55..958c0f3bf 100644 --- a/arch/arm/boot/dts/rk3288-tinker.dts +++ b/arch/arm/boot/dts/rk3288-tinker.dts @@ -369,7 +369,7 @@ }; &i2c1 { - status = "okay"; + status = "disabled"; }; &i2c2 { @@ -392,7 +392,7 @@ }; &i2c4 { - status = "okay"; + status = "disabled"; }; &i2c5 {