add device tree overlay support
authorNick Xie <nick@khadas.com>
Tue, 11 Aug 2020 11:56:34 +0000 (19:56 +0800)
committerNick Xie <nick@khadas.com>
Thu, 13 Aug 2020 03:36:58 +0000 (11:36 +0800)
Signed-off-by: Nick Xie <nick@khadas.com>
15 files changed:
arch/arm64/boot/dts/.gitignore
arch/arm64/boot/dts/amlogic/Makefile
arch/arm64/boot/dts/amlogic/kvim3_linux.dts
arch/arm64/boot/dts/amlogic/kvim_linux.dts
arch/arm64/boot/dts/amlogic/overlays/kvim/Makefile [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim/uart4.dts [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim2/Makefile [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim2/uart4.dts [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim3/Makefile [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim3/pwm_f.dts [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim3/uart3.dts [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim3l/Makefile [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim3l/pwm_f.dts [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/overlays/kvim3l/uart3.dts [new file with mode: 0644]
scripts/package/builddeb

index 0af6e47..ce7520e 100644 (file)
@@ -5,4 +5,8 @@ dtb-$(CONFIG_ARM64) += kvim3_linux.dtb
 
 always         := $(dtb-y)
 subdir-y       := $(dts-dirs)
-clean-files    := *.dtb
+subdir-y       += overlays/kvim
+subdir-y       += overlays/kvim2
+subdir-y       += overlays/kvim3
+subdir-y       += overlays/kvim3l
+clean-files    := *.dtb *.dtbo
index b11b8a9..21b4f30 100644 (file)
 
 &pwm_ef {
        status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&pwm_f_pins2>;
 };
 
 &pwm_AO_cd {
index 4871fb5..d8270e4 100644 (file)
 };
 
 &uart_AO_B {
-       status = "okay";
+       status = "disabled";
 };
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim/Makefile b/arch/arm64/boot/dts/amlogic/overlays/kvim/Makefile
new file mode 100644 (file)
index 0000000..4836380
--- /dev/null
@@ -0,0 +1,4 @@
+dtbo-y += uart4.dtbo
+
+targets += $(dtbo-y)
+always  := $(dtbo-y)
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim/uart4.dts b/arch/arm64/boot/dts/amlogic/overlays/kvim/uart4.dts
new file mode 100644 (file)
index 0000000..ba6ffe7
--- /dev/null
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&uart_AO_B>;
+
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim2/Makefile b/arch/arm64/boot/dts/amlogic/overlays/kvim2/Makefile
new file mode 100644 (file)
index 0000000..4836380
--- /dev/null
@@ -0,0 +1,4 @@
+dtbo-y += uart4.dtbo
+
+targets += $(dtbo-y)
+always  := $(dtbo-y)
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim2/uart4.dts b/arch/arm64/boot/dts/amlogic/overlays/kvim2/uart4.dts
new file mode 100644 (file)
index 0000000..ba6ffe7
--- /dev/null
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&uart_AO_B>;
+
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim3/Makefile b/arch/arm64/boot/dts/amlogic/overlays/kvim3/Makefile
new file mode 100644 (file)
index 0000000..e53c7d8
--- /dev/null
@@ -0,0 +1,4 @@
+dtbo-y += uart3.dtbo pwm_f.dtbo
+
+targets += $(dtbo-y)
+always  := $(dtbo-y)
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim3/pwm_f.dts b/arch/arm64/boot/dts/amlogic/overlays/kvim3/pwm_f.dts
new file mode 100644 (file)
index 0000000..0aeea93
--- /dev/null
@@ -0,0 +1,14 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&pwm_ef>;
+
+               __overlay__ {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pwm_f_pins2>;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim3/uart3.dts b/arch/arm64/boot/dts/amlogic/overlays/kvim3/uart3.dts
new file mode 100644 (file)
index 0000000..c2267df
--- /dev/null
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&uart_C>;
+
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim3l/Makefile b/arch/arm64/boot/dts/amlogic/overlays/kvim3l/Makefile
new file mode 100644 (file)
index 0000000..e53c7d8
--- /dev/null
@@ -0,0 +1,4 @@
+dtbo-y += uart3.dtbo pwm_f.dtbo
+
+targets += $(dtbo-y)
+always  := $(dtbo-y)
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim3l/pwm_f.dts b/arch/arm64/boot/dts/amlogic/overlays/kvim3l/pwm_f.dts
new file mode 100644 (file)
index 0000000..0aeea93
--- /dev/null
@@ -0,0 +1,14 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&pwm_ef>;
+
+               __overlay__ {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pwm_f_pins2>;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/amlogic/overlays/kvim3l/uart3.dts b/arch/arm64/boot/dts/amlogic/overlays/kvim3l/uart3.dts
new file mode 100644 (file)
index 0000000..c2267df
--- /dev/null
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+       fragment@0 {
+               target = <&uart_C>;
+
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+};
index 0b04eae..6b4f66a 100755 (executable)
@@ -175,7 +175,7 @@ BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
 # Setup the directory structure
 rm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files
 mkdir -m 755 -p "$dtb_dir/DEBIAN"
-mkdir -p "$dtb_dir/boot/dtb-$version" "$dtb_dir/usr/share/doc/$dtb_packagename"
+mkdir -p $dtb_dir/boot/dtb-$version/overlays/{kvim,kvim2,kvim3,kvim3l} "$dtb_dir/usr/share/doc/$dtb_packagename"
 mkdir -m 755 -p "$tmpdir/DEBIAN"
 mkdir -p "$tmpdir/lib" "$tmpdir/boot"
 mkdir -p "$fwdir/lib/firmware/$version/"
@@ -231,8 +231,12 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
 fi
 
 if grep -q '^CONFIG_ARM64=y' $KCONFIG_CONFIG ; then
-       mkdir -p "$tmpdir/boot/dtb-""$version"
+       mkdir -p "$tmpdir/boot/dtb-""$version"/overlays/{kvim,kvim2,kvim3,kvim3l}
        cp $objtree/arch/$SRCARCH/boot/dts/amlogic/*.dtb $dtb_dir/boot/dtb-$version
+       cp $objtree/arch/$SRCARCH/boot/dts/amlogic/overlays/kvim/*.dtbo $dtb_dir/boot/dtb-$version/overlays/kvim
+       cp $objtree/arch/$SRCARCH/boot/dts/amlogic/overlays/kvim2/*.dtbo $dtb_dir/boot/dtb-$version/overlays/kvim2
+       cp $objtree/arch/$SRCARCH/boot/dts/amlogic/overlays/kvim3/*.dtbo $dtb_dir/boot/dtb-$version/overlays/kvim3
+       cp $objtree/arch/$SRCARCH/boot/dts/amlogic/overlays/kvim3l/*.dtbo $dtb_dir/boot/dtb-$version/overlays/kvim3l
 fi
 
 if [ "$ARCH" != "um" ]; then