From 1aa2d3f97c80f5333d5e0fde9fabe31798348e2c Mon Sep 17 00:00:00 2001 From: Yang Deokgyu Date: Thu, 5 Dec 2019 18:07:13 +0900 Subject: [PATCH 34/75] 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 Change-Id: I40e6a915e2149952fb548f64e7fae335ba12db18 --- Makefile | 2 +- arch/arm/boot/dts/Makefile | 4 +++ arch/arm/boot/dts/exynos5422-odroidxu4.dts | 8 ++--- arch/arm/boot/dts/overlays/Makefile | 12 +++++++ .../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 +++++++++++ scripts/Makefile.dtbinst | 3 +- scripts/Makefile.lib | 13 +++++++ 12 files changed, 188 insertions(+), 6 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/Makefile b/Makefile index ed6e7ec60eff..931c70a56566 100644 --- a/Makefile +++ b/Makefile @@ -1400,7 +1400,7 @@ ifneq ($(dtstree),) $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ %.dtbo: include/config/kernel.release scripts_dtc - $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ + $(Q)$(MAKE) $(build)=$(dtstree)/overlays $(dtstree)/overlays/$@ PHONY += dtbs dtbs_install dtbs_check dtbs: include/config/kernel.release scripts_dtc diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 7e0934180724..407142a5ed0b 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1498,3 +1498,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ aspeed-bmc-supermicro-x11spi.dtb \ aspeed-bmc-inventec-transformers.dtb \ aspeed-bmc-tyan-s7106.dtb + +targets += $(dtb-y) + +subdir-y := overlays diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts index 90698c7bed98..e3f290f14d5e 100644 --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts @@ -137,25 +137,25 @@ &usbdrd_dwc3_1 { /* 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 000000000000..9502f67ce928 --- /dev/null +++ b/arch/arm/boot/dts/overlays/Makefile @@ -0,0 +1,12 @@ +# Overlays for the Odroid platform + +dtbo-y += \ + spidev1-overlay.dtbo \ + i2c1-overlay.dtbo \ + i2c5-overlay.dtbo \ + hktft32-overlay.dtbo \ + hktft35-overlay.dtbo \ + hktft-cs-ogst-overlay.dtbo + +targets += $(dtbo-y) +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 000000000000..a727fb311574 --- /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 000000000000..7bda6cd8e6d8 --- /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 000000000000..a656dd272165 --- /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 000000000000..2fd27754e7c8 --- /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 000000000000..9ef9e66699e0 --- /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 000000000000..c5cb6bcb6011 --- /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"; + }; + }; +}; diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst index 190d781e84f4..84c46c081218 100644 --- a/scripts/Makefile.dtbinst +++ b/scripts/Makefile.dtbinst @@ -18,9 +18,10 @@ include $(srctree)/scripts/Kbuild.include include $(src)/Makefile dtbs := $(addprefix $(dst)/, $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-))) +dtbos := $(addprefix $(dst)/, $(dtbo-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-))) subdirs := $(addprefix $(obj)/, $(subdir-y) $(subdir-m)) -__dtbs_install: $(dtbs) $(subdirs) +__dtbs_install: $(dtbs) $(dtbos) $(subdirs) @: quiet_cmd_dtb_install = INSTALL $@ diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 54582673fc1a..e82ce99da50c 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -311,6 +311,7 @@ DTC_FLAGS += -Wno-interrupt_provider # Disable noisy checks by default ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),) DTC_FLAGS += -Wno-unit_address_vs_reg \ + -Wno-gpios_property \ -Wno-avoid_unnecessary_addr_size \ -Wno-alias_paths \ -Wno-graph_child_address \ @@ -384,6 +385,18 @@ endef $(obj)/%.dt.yaml: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE $(call if_changed_rule,dtc) +quiet_cmd_dtco = DTCO $@ +cmd_dtco = mkdir -p $(dir ${dtc-tmp}) ; \ + $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ + $(DTC) -@ -H epapr -O dtb -o $@ -b 0 \ + -i $(dir $<) $(DTC_FLAGS) \ + -Wno-interrupts_property \ + -d $(depfile).dtc.tmp $(dtc-tmp) ; \ + cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) + +$(obj)/%.dtbo: $(obj)/%.dts FORCE + $(call if_changed_dep,dtco) + dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) # Bzip2 -- 2.25.1