build/patch/kernel/odroidxu4-current/overlay.patch
2020-03-23 00:41:45 +01:00

333 lines
7.4 KiB
Diff

From f4fa5785238393813ddc7105f799d1da00254933 Mon Sep 17 00:00:00 2001
From: Yang Deokgyu <secugyu@gmail.com>
Date: Thu, 5 Dec 2019 18:07:13 +0900
Subject: [PATCH] ODROID-XU4: Introduce device tree overlay
Copy *.dtbo files at arch/arm/boot/dts/overlays to boot
partition, e.g, /media/boot/overlays/. Then use "fdtoverlay" tool
to integrate DTB and DTBOs. Or, you also can use "fdt apply" u-boot
command to prepare device tree blob at booting time.
Signed-off-by: Yang Deokgyu <secugyu@gmail.com>
Change-Id: I40e6a915e2149952fb548f64e7fae335ba12db18
---
.gitignore | 1 +
Makefile | 7 +++-
arch/arm/boot/dts/Makefile | 3 ++
arch/arm/boot/dts/exynos5422-odroidxu4.dts | 8 ++---
arch/arm/boot/dts/overlays/Makefile | 31 ++++++++++++++++
.../dts/overlays/hktft-cs-ogst-overlay.dts | 36 +++++++++++++++++++
.../arm/boot/dts/overlays/hktft32-overlay.dts | 36 +++++++++++++++++++
.../arm/boot/dts/overlays/hktft35-overlay.dts | 36 +++++++++++++++++++
arch/arm/boot/dts/overlays/i2c1-overlay.dts | 12 +++++++
arch/arm/boot/dts/overlays/i2c5-overlay.dts | 12 +++++++
.../arm/boot/dts/overlays/spidev1-overlay.dts | 20 +++++++++++
11 files changed, 197 insertions(+), 5 deletions(-)
create mode 100644 arch/arm/boot/dts/overlays/Makefile
create mode 100644 arch/arm/boot/dts/overlays/hktft-cs-ogst-overlay.dts
create mode 100644 arch/arm/boot/dts/overlays/hktft32-overlay.dts
create mode 100644 arch/arm/boot/dts/overlays/hktft35-overlay.dts
create mode 100644 arch/arm/boot/dts/overlays/i2c1-overlay.dts
create mode 100644 arch/arm/boot/dts/overlays/i2c5-overlay.dts
create mode 100644 arch/arm/boot/dts/overlays/spidev1-overlay.dts
diff --git a/.gitignore b/.gitignore
index 70580bdd352cc..a0cf56d7d0d2e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,7 @@
*.c.[012]*.*
*.dt.yaml
*.dtb
+*.dtbo
*.dtb.S
*.dwo
*.elf
diff --git a/Makefile b/Makefile
index 07998b60d56cf..5579165a84634 100644
--- a/Makefile
+++ b/Makefile
@@ -1242,7 +1242,12 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
-PHONY += dtbs dtbs_install dtbs_check
+%.dtbo:
+ $(Q)$(MAKE) -C $(dtstree)/overlays $@
+
+PHONY += dtbs dtbs_install dtbs_check dtbos
+dtbos:
+ $(Q)$(MAKE) -C $(dtstree)/overlays
dtbs dtbs_check: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree)
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b21b3a64641a7..f6e3a8817c576 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1303,3 +1303,6 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-opp-zaius.dtb \
aspeed-bmc-portwell-neptune.dtb \
aspeed-bmc-quanta-q71l.dtb
+
+DTC_FLAGS ?= -@
+subdir-y := overlays
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
index 6e7da591654f4..6768dc18ebeeb 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts
@@ -143,25 +143,25 @@
/* i2c@12C70000 */
&i2c_1 {
- status = "okay";
+ status = "disabled";
samsung,i2c-max-bus-freq = <400000>;
};
/* i2c@12cb0000 */
&hsi2c_5 {
- status = "okay";
+ status = "disabled";
samsung,hs-mode;
clock-frequency = <400000>;
};
&spi_1 {
- status = "okay";
+ status = "disabled";
samsung,spi-src-clk = <0>;
num-cs = <2>;
cs-gpios = <&gpa2 5 GPIO_ACTIVE_HIGH>, <&gpx2 1 GPIO_ACTIVE_HIGH>;
spidev: spidev@0 {
- status = "okay";
+ status = "disabled";
reg = <0>;
compatible = "odroid,spidev";
spi-max-frequency = <1000000>;
diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
new file mode 100644
index 0000000000000..dff81c41c8688
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -0,0 +1,31 @@
+# Overlays for the Odroid platform
+
+DTC ?= dtc
+DTCO_FLAGS ?= \
+ -Wno-unit_address_vs_reg \
+ -@
+
+OBJ := $(patsubst %.dts, %.dtbo, $(wildcard *.dts))
+
+dtbo-y := \
+ spidev1-overlay.dtbo \
+ i2c1-overlay.dtbo \
+ i2c5-overlay.dtbo \
+ hktft32-overlay.dtbo \
+ hktft35-overlay.dtbo \
+ hktft-cs-ogst-overlay.dtbo
+
+%.dtbo: %.dts
+ @echo " DTCO $@"
+ @$(DTC) $(DTCO_FLAGS) -I dts -O dtb -o $@ $^
+
+dtbos: $(dtbo-y)
+
+all: $(dtbos)
+
+clean:
+ @rm -rf *.dtbo
+
+.PHONY: all clean dtbos
+
+always += $(dtbo-y)
diff --git a/arch/arm/boot/dts/overlays/hktft-cs-ogst-overlay.dts b/arch/arm/boot/dts/overlays/hktft-cs-ogst-overlay.dts
new file mode 100644
index 0000000000000..a727fb311574f
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/hktft-cs-ogst-overlay.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ fragment@0 {
+ target = <&i2c_1>;
+
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@1 {
+ target = <&hsi2c_5>;
+
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@2 {
+ target = <&spi_1>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@3 {
+ target = <&hktft_cs_ogst>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/hktft32-overlay.dts b/arch/arm/boot/dts/overlays/hktft32-overlay.dts
new file mode 100644
index 0000000000000..7bda6cd8e6d8a
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/hktft32-overlay.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ fragment@0 {
+ target = <&i2c_1>;
+
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@1 {
+ target = <&hsi2c_5>;
+
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@2 {
+ target = <&spi_1>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@3 {
+ target = <&hktft32>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/hktft35-overlay.dts b/arch/arm/boot/dts/overlays/hktft35-overlay.dts
new file mode 100644
index 0000000000000..a656dd272165c
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/hktft35-overlay.dts
@@ -0,0 +1,36 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ fragment@0 {
+ target = <&i2c_1>;
+
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@1 {
+ target = <&hsi2c_5>;
+
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@2 {
+ target = <&spi_1>;
+
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@3 {
+ target = <&hktft35>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/i2c1-overlay.dts b/arch/arm/boot/dts/overlays/i2c1-overlay.dts
new file mode 100644
index 0000000000000..2fd27754e7c89
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/i2c1-overlay.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ fragment@0 {
+ target = <&i2c_1>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/i2c5-overlay.dts b/arch/arm/boot/dts/overlays/i2c5-overlay.dts
new file mode 100644
index 0000000000000..9ef9e66699e08
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/i2c5-overlay.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ fragment@0 {
+ target = <&hsi2c_5>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlays/spidev1-overlay.dts b/arch/arm/boot/dts/overlays/spidev1-overlay.dts
new file mode 100644
index 0000000000000..c5cb6bcb60114
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/spidev1-overlay.dts
@@ -0,0 +1,20 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ fragment@0 {
+ target = <&spi_1>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target = <&spidev>;
+
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};