From 76573936ae2d6156b4197b00370884b2c6086e0e Mon Sep 17 00:00:00 2001 From: Thomas McKahan Date: Tue, 18 Dec 2018 01:28:50 -0500 Subject: [PATCH] [ rockchip-dev ] add various overlays General cleanup of patch. Adds: - spi0 - spi2 - spidev0 - spidev2 - uart1 - uart2 - uart3 - uart4 Default for Tinkerboard: spi2, spidev2, uart1, uart2 --- config/boards/tinkerboard.conf | 2 +- ...88-tinker-Defining-the-SPI-interface.patch | 49 -- .../rockchip-dev/general-add-overlays.patch | 460 ++++++++++++------ 3 files changed, 300 insertions(+), 211 deletions(-) delete mode 100644 patch/kernel/rockchip-dev/2018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch diff --git a/config/boards/tinkerboard.conf b/config/boards/tinkerboard.conf index c7cc0e9296..4d2a590cee 100644 --- a/config/boards/tinkerboard.conf +++ b/config/boards/tinkerboard.conf @@ -5,7 +5,7 @@ BOOTCONFIG="tinker-rk3288_defconfig" # MODULES="hci_uart rfcomm hidp 8723bs" MODULES_NEXT="" -DEFAULT_OVERLAYS="spidev2" +DEFAULT_OVERLAYS="spi2 spidev2 uart1 uart2" KERNEL_TARGET="default,next,dev" CLI_TARGET="stretch,bionic:default,next" DESKTOP_TARGET="stretch,bionic:default,next" diff --git a/patch/kernel/rockchip-dev/2018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch b/patch/kernel/rockchip-dev/2018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch deleted file mode 100644 index 43f161a2c0..0000000000 --- a/patch/kernel/rockchip-dev/2018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 14f951ca2d354ad8fd068d0f3d8648d5c0d1e60e Mon Sep 17 00:00:00 2001 -From: Myy Miouyouyou -Date: Thu, 19 Oct 2017 22:40:26 +0200 -Subject: [PATCH 23/28] ARM: DTS: rk3288-tinker.dts: Defining the SPI interface - -Taken from, and tested by @TonyMac32 . - -Well, the original one was tested by him but I had to adapt the -registers definitions to the new 64-bits LPAE-compliant syntax. - -Therefore that *might* break, along with a few other patches. - -Signed-off-by: Myy Miouyouyou ---- - arch/arm/boot/dts/rk3288-tinker.dts | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts -index 6f4c0843..f4b4525c 100644 ---- a/arch/arm/boot/dts/rk3288-tinker.dts -+++ b/arch/arm/boot/dts/rk3288-tinker.dts -@@ -471,6 +471,24 @@ - - }; - -+&spi2 { -+ status = "okay"; -+ max-freq = <50000000>; -+ spidev@0 { -+ compatible = "rockchip,spi_tinker"; -+ reg = <0>; -+ spi-max-frequency = <50000000>; -+ spi-cpha = <1>; -+ }; -+ spidev@1 { -+ compatible = "rockchip,spi_tinker"; -+ reg = <1>; -+ spi-max-frequency = <50000000>; -+ spi-cpha = <1>; -+ }; -+}; -+ -+ - &pinctrl { - pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { - drive-strength = <8>; --- -2.11.0 - diff --git a/patch/kernel/rockchip-dev/general-add-overlays.patch b/patch/kernel/rockchip-dev/general-add-overlays.patch index 0c08c10feb..9245a3b543 100644 --- a/patch/kernel/rockchip-dev/general-add-overlays.patch +++ b/patch/kernel/rockchip-dev/general-add-overlays.patch @@ -12,15 +12,52 @@ index 6d4ff8cdf..2d0b2f4c4 100644 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..b95172d18 +index 000000000..207eb4789 --- /dev/null +++ b/arch/arm/boot/dts/overlay/Makefile -@@ -0,0 +1,15 @@ +@@ -0,0 +1,24 @@ +# SPDX-License-Identifier: GPL-2.0 +dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ -+ rockchip-ds1307.dtbo ++ rockchip-ds1307.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 @@ -35,10 +72,10 @@ index 000000000..b95172d18 + 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..ca8d80af1 +index 000000000..c6f331542 --- /dev/null +++ b/arch/arm/boot/dts/overlay/README.rockchip-overlays -@@ -0,0 +1,18 @@ +@@ -0,0 +1,68 @@ +This document describes overlays provided in the kernel packages +For generic Armbian overlays documentation please see +https://docs.armbian.com/User-Guide_Allwinner_overlays/ @@ -50,6 +87,15 @@ index 000000000..ca8d80af1 +### Provided overlays: + +- ds1307 ++- spi0 ++- spi2 ++- spidev0 ++- spidev2 ++- uart1 ++- uart2 ++- uart3 ++- uart4 ++- w1-gpio + +### Overlay details: + @@ -57,13 +103,57 @@ index 000000000..ca8d80af1 + +Activates ds1307 rtc on i2c1 + ++### 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..e60a37e0f +index 000000000..af240e46b --- /dev/null +++ b/arch/arm/boot/dts/overlay/rockchip-ds1307.dts -@@ -0,0 +1,17 @@ -+// Definitions for ds1307 +@@ -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/; + @@ -75,6 +165,7 @@ index 000000000..e60a37e0f + __overlay__ { + rtc: ds1307@68 { + compatible = "dallas,ds1307"; ++ reg = <0x68>; + status = "okay"; + }; + }; @@ -90,149 +181,91 @@ index 000000000..d4c39e20a +# implements (or rather substitutes) overlay arguments functionality +# using u-boot scripting, environment variables and "fdt" command + -diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib -index db7399a49..6f14d9c7b 100644 ---- a/scripts/Makefile.lib -+++ b/scripts/Makefile.lib -@@ -61,6 +61,9 @@ real-obj-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) - extra-y += $(dtb-y) - extra-$(CONFIG_OF_ALL_DTBS) += $(dtb-) - -+# Overlay targets -+extra-y += $(dtbo-y) $(scr-y) $(dtbotxt-y) -+ - # Add subdir path - - extra-y := $(addprefix $(obj)/,$(extra-y)) -diff --git a/arch/arm/boot/dts/overlay/Makefile b/arch/arm/boot/dts/overlay/Makefile -index b95172d18..f1c792059 100644 ---- a/arch/arm/boot/dts/overlay/Makefile -+++ b/arch/arm/boot/dts/overlay/Makefile -@@ -1,6 +1,7 @@ - # SPDX-License-Identifier: GPL-2.0 - dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ -- rockchip-ds1307.dtbo -+ rockchip-ds1307.dtbo \ -+ rockchip-w1-gpio.dtbo - - scr-$(CONFIG_ARCH_ROCKCHIP) += \ - rockchip-fixup.scr -diff --git a/arch/arm/boot/dts/overlay/README.rockchip-overlays b/arch/arm/boot/dts/overlay/README.rockchip-overlays -index ca8d80af1..14b22cc0c 100644 ---- a/arch/arm/boot/dts/overlay/README.rockchip-overlays -+++ b/arch/arm/boot/dts/overlay/README.rockchip-overlays -@@ -9,6 +9,7 @@ rockchip (Rockchip) - ### Provided overlays: - - - ds1307 -+- w1-gpio - - ### Overlay details: - -@@ -16,3 +17,8 @@ rockchip (Rockchip) - - Activates ds1307 rtc on i2c1 - -+### 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 -index e60a37e0f..af240e46b 100644 ---- a/arch/arm/boot/dts/overlay/rockchip-ds1307.dts -+++ b/arch/arm/boot/dts/overlay/rockchip-ds1307.dts -@@ -1,4 +1,7 @@ --// Definitions for ds1307 -+/* Definitions for ds1307 -+* From ASUS: https://github.com/TinkerBoard/debian_kernel/commits/develop/arch/arm/boot/dts/overlays/ds1307-overlay.dts -+*/ -+ - /dts-v1/; - /plugin/; - -@@ -10,6 +13,7 @@ - __overlay__ { - rtc: ds1307@68 { - compatible = "dallas,ds1307"; -+ reg = <0x68>; - status = "okay"; - }; - }; -diff --git a/arch/arm/boot/dts/overlay/rockchip-w1-gpio.dts b/arch/arm/boot/dts/overlay/rockchip-w1-gpio.dts +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..02bb81a1e +index 000000000..cde22beb1 --- /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 -+* -+* ++++ b/arch/arm/boot/dts/overlay/rockchip-spi0.dts +@@ -0,0 +1,17 @@ ++/* Definitions for spi0 +*/ + +/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"; -+ }; -+ }; -+ }; ++ compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288"; + -+ fragment@1 { -+ target = <&gpio0>; -+ __overlay__ { -+ w1_pins: w1_pins@0 { -+ rockchip,pins = <0 17 0 &pcfg_pull_up>; -+ }; -+ }; -+ }; ++ fragment@0 { ++ target = <&spi0>; ++ __overlay__ { ++ status = "okay"; ++ max-freq = <50000000>; ++ }; ++ }; +}; -diff --git a/arch/arm/boot/dts/overlay/Makefile b/arch/arm/boot/dts/overlay/Makefile -index f1c792059..acf1bc549 100644 ---- a/arch/arm/boot/dts/overlay/Makefile -+++ b/arch/arm/boot/dts/overlay/Makefile -@@ -1,6 +1,7 @@ - # SPDX-License-Identifier: GPL-2.0 - dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ - rockchip-ds1307.dtbo \ -+ rockchip-spidev2.dtbo \ - rockchip-w1-gpio.dtbo - - scr-$(CONFIG_ARCH_ROCKCHIP) += \ -diff --git a/arch/arm/boot/dts/overlay/README.rockchip-overlays b/arch/arm/boot/dts/overlay/README.rockchip-overlays -index 14b22cc0c..45abdbbc2 100644 ---- a/arch/arm/boot/dts/overlay/README.rockchip-overlays -+++ b/arch/arm/boot/dts/overlay/README.rockchip-overlays -@@ -9,6 +9,7 @@ rockchip (Rockchip) - ### Provided overlays: - - - ds1307 -+- spidev2 - - w1-gpio - - ### Overlay details: -@@ -17,6 +18,10 @@ rockchip (Rockchip) - - Activates ds1307 rtc on i2c1 - -+### spidev2 +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 ++*/ + -+Activate spidev on spi2 ++/dts-v1/; ++/plugin/; + - ### w1-gpio - - Activates 1-wire gpio master on GPIO0 17 ++/ { ++ 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 @@ -272,26 +305,131 @@ index 000000000..bdaf0bd77 + }; + }; +}; -diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts -index 08ec7aa4b..f9efc85eb 100644 ---- a/arch/arm/boot/dts/rk3288-tinker.dts -+++ b/arch/arm/boot/dts/rk3288-tinker.dts -@@ -433,18 +433,7 @@ - &spi2 { - status = "okay"; - max-freq = <50000000>; -- spidev@0 { -- compatible = "rockchip,spi_tinker"; -- reg = <0>; -- spi-max-frequency = <50000000>; -- spi-cpha = <1>; -- }; -- spidev@1 { -- compatible = "rockchip,spi_tinker"; -- reg = <1>; -- spi-max-frequency = <50000000>; -- spi-cpha = <1>; -- }; +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>; ++ }; ++ }; ++ }; ++}; +