From bad84ba08f4562a499e790ad1a765739fd96c4bb Mon Sep 17 00:00:00 2001 From: Luke Go Date: Mon, 27 Apr 2020 14:43:55 +0900 Subject: [PATCH] ODROID-COMMON: arm64/dts: Support device tree overlay. - Support device tree overlay to modify peripherals states. By using this feature, we can select the peripheral state like on/off. -To use this feature, you should change a "overlays" value of env.ini files. Change-Id: Ibf9e7bf676a4d470f991350508dc7b84b2ea80fa Signed-off-by: Luke Go --- arch/arm64/Makefile | 2 +- arch/arm64/boot/dts/.gitignore | 1 + arch/arm64/boot/dts/amlogic/Makefile | 7 +- .../boot/dts/amlogic/meson64_odroidc4.dts | 18 +- .../boot/dts/amlogic/meson64_odroidn2.dts | 189 ++++++++---------- .../dts/amlogic/overlays/odroidc4/Makefile | 15 ++ .../dts/amlogic/overlays/odroidc4/hktft32.dts | 28 +++ .../dts/amlogic/overlays/odroidc4/hktft35.dts | 28 +++ .../dts/amlogic/overlays/odroidc4/i2c2.dts | 12 ++ .../dts/amlogic/overlays/odroidc4/i2c3.dts | 12 ++ .../dts/amlogic/overlays/odroidc4/pcf8563.dts | 20 ++ .../dts/amlogic/overlays/odroidc4/pcm5242.dts | 20 ++ .../dts/amlogic/overlays/odroidc4/spi0.dts | 20 ++ .../dts/amlogic/overlays/odroidc4/uarta.dts | 12 ++ .../dts/amlogic/overlays/odroidc4/uartb.dts | 12 ++ .../dts/amlogic/overlays/odroidc4/uartc.dts | 12 ++ .../dts/amlogic/overlays/odroidn2/Makefile | 15 ++ .../dts/amlogic/overlays/odroidn2/hktft32.dts | 28 +++ .../dts/amlogic/overlays/odroidn2/hktft35.dts | 28 +++ .../dts/amlogic/overlays/odroidn2/i2c0.dts | 14 ++ .../dts/amlogic/overlays/odroidn2/i2c1.dts | 14 ++ .../amlogic/overlays/odroidn2/irblaster.dts | 12 ++ .../overlays/odroidn2/odroidn2-opp.dts | 118 +++++++++++ .../dts/amlogic/overlays/odroidn2/saradc.dts | 12 ++ .../dts/amlogic/overlays/odroidn2/spi0.dts | 20 ++ .../dts/amlogic/overlays/odroidn2/uarta.dts | 12 ++ .../dts/amlogic/overlays/odroidn2/uartb.dts | 12 ++ scripts/Makefile.dtbinst | 8 +- 28 files changed, 581 insertions(+), 120 deletions(-) create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft32.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft35.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c2.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c3.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcf8563.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcm5242.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/spi0.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/uarta.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartb.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartc.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft32.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft35.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c0.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c1.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/irblaster.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/odroidn2-opp.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/saradc.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/spi0.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/uarta.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/uartb.dts diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index a8b55ff179d6..b86f74905973 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -159,7 +159,7 @@ PHONY += dtbs dtbs_install dtbs: prepare scripts $(Q)$(MAKE) $(build)=$(boot)/dts -dtbs_install: prepare scripts +dtbs_install: $(Q)$(MAKE) $(dtbinst)=$(boot)/dts Image-dtb Image.gz-dtb: vmlinux scripts dtbs diff --git a/arch/arm64/boot/dts/.gitignore b/arch/arm64/boot/dts/.gitignore index b60ed208c779..77ed402cbbc8 100644 --- a/arch/arm64/boot/dts/.gitignore +++ b/arch/arm64/boot/dts/.gitignore @@ -1 +1,2 @@ *.dtb +*.dtbo diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile index 83124f5422f6..1469dcda53b5 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -1,12 +1,15 @@ +ifndef CONFIG_ARCH_MESON64_ODROID_COMMON dtb-y += g12a_s905d2_skt.dtb dtb-y += g12a_s905d2_skt_buildroot.dtb dtb-y += g12a_s905d2_u200_buildroot.dtb dtb-y += g12a_s905d2_u200_drm_buildroot.dtb dtb-y += g12b_a311d_w400.dtb dtb-y += g12b_a311d_w400_buildroot.dtb -dtb-$(CONFIG_ARCH_MESON64_ODROIDC3) += meson64_odroidc3.dtb -dtb-$(CONFIG_ARCH_MESON64_ODROIDC3) += meson64_odroidc3_android.dtb +endif dtb-$(CONFIG_ARCH_MESON64_ODROIDC4) += meson64_odroidc4.dtb dtb-$(CONFIG_ARCH_MESON64_ODROIDC4) += meson64_odroidc4_android.dtb dtb-$(CONFIG_ARCH_MESON64_ODROIDN2) += meson64_odroidn2.dtb dtb-$(CONFIG_ARCH_MESON64_ODROIDN2) += meson64_odroidn2_android.dtb + +subdir-$(CONFIG_ARCH_MESON64_ODROIDC4) := overlays/odroidc4 +subdir-$(CONFIG_ARCH_MESON64_ODROIDN2) := overlays/odroidn2 diff --git a/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts b/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts index 849457f1d9ed..4be09287a56a 100644 --- a/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts +++ b/arch/arm64/boot/dts/amlogic/meson64_odroidc4.dts @@ -753,7 +753,7 @@ status = "ok"; }; - hktft35 { + hktft35: hktft35 { status = "disabled"; compatible = "odroid,hktft35"; pinctrl-names = "hktft35"; @@ -850,7 +850,7 @@ }; /* end of audiobus */ &uart_A { - status = "okay"; + status = "disabled"; }; &usb3_phy_v2 { @@ -935,7 +935,7 @@ }; /* end of pinctrl_aobus */ &spicc0 { - status = "okay"; + status = "disabled"; /* 40 Pin Header : MOSI(GPIOX.8->19 Pin), MISO(GPIOX.9->21 Pin), @@ -958,8 +958,8 @@ gpio-irq = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>; }; - spidev@0 { - status = "okay"; + spidev: spidev@0 { + status = "disabled"; compatible = "linux,spidev"; /* spi default max clock 100Mhz */ @@ -968,7 +968,7 @@ }; /* SPI 3.2" Touch Screen Define */ - ads7846@1 { + ads7846: ads7846@1 { status = "disabled"; spi-max-frequency = <1000000>; @@ -991,7 +991,7 @@ linux,wakeup; }; - hktft32@0 { + hktft32: hktft32@0 { status = "disabled"; compatible = "odroid,hktft32"; reg = <0>; @@ -1021,6 +1021,8 @@ }; &i2c2 { + status = "disabled"; + pcf8563: rtc@51 { status = "disabled"; compatible = "nxp,pcf8563"; @@ -1029,6 +1031,8 @@ }; &i2c3 { + status = "disabled"; + /* Hardkernel I2C 3.5" Touchscreen */ /* drivers/input/sx8650.c */ sx865x: sx865x@49 { diff --git a/arch/arm64/boot/dts/amlogic/meson64_odroidn2.dts b/arch/arm64/boot/dts/amlogic/meson64_odroidn2.dts index 8616661ae717..51357249487b 100644 --- a/arch/arm64/boot/dts/amlogic/meson64_odroidn2.dts +++ b/arch/arm64/boot/dts/amlogic/meson64_odroidn2.dts @@ -356,113 +356,11 @@ cpu_opp_table0: cpu_opp_table0 { compatible = "operating-points-v2"; opp-shared; - - opp00 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <730000>; - }; - opp01 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <730000>; - }; - opp02 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <730000>; - }; - opp03 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <730000>; - }; - opp04 { - opp-hz = /bits/ 64 <1000000000>; - opp-microvolt = <730000>; - }; - opp05 { - opp-hz = /bits/ 64 <1200000000>; - opp-microvolt = <730000>; - }; - opp06 { - opp-hz = /bits/ 64 <1398000000>; - opp-microvolt = <760000>; - }; - opp07 { - opp-hz = /bits/ 64 <1512000000>; - opp-microvolt = <790000>; - }; - opp08 { - opp-hz = /bits/ 64 <1608000000>; - opp-microvolt = <830000>; - }; - opp09 { - opp-hz = /bits/ 64 <1704000000>; - opp-microvolt = <860000>; - }; - opp10 { - opp-hz = /bits/ 64 <1896000000>; - opp-microvolt = <980000>; - }; - opp11 { - opp-hz = /bits/ 64 <1992000000>; - opp-microvolt = <1000000>; - }; }; cpu_opp_table1: cpu_opp_table1 { compatible = "operating-points-v2"; opp-shared; - - opp00 { - opp-hz = /bits/ 64 <100000000>; - opp-microvolt = <750000>; - }; - opp01 { - opp-hz = /bits/ 64 <250000000>; - opp-microvolt = <750000>; - }; - opp02 { - opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <750000>; - }; - opp03 { - opp-hz = /bits/ 64 <667000000>; - opp-microvolt = <750000>; - }; - opp04 { - opp-hz = /bits/ 64 <1000000000>; - opp-microvolt = <770000>; - }; - opp05 { - opp-hz = /bits/ 64 <1200000000>; - opp-microvolt = <770000>; - }; - opp06 { - opp-hz = /bits/ 64 <1398000000>; - opp-microvolt = <790000>; - }; - opp07 { - opp-hz = /bits/ 64 <1512000000>; - opp-microvolt = <820000>; - }; - opp08 { - opp-hz = /bits/ 64 <1608000000>; - opp-microvolt = <860000>; - }; - opp09 { - opp-hz = /bits/ 64 <1704000000>; - opp-microvolt = <890000>; - }; - opp10 { - opp-hz = /bits/ 64 <1800000000>; - opp-microvolt = <980000>; - }; - opp11 { - opp-hz = /bits/ 64 <1908000000>; - opp-microvolt = <1020000>; - }; - opp12 { - opp-hz = /bits/ 64 <2004000000>; - opp-microvolt = <1020000>; - }; }; cpufreq-meson { @@ -487,6 +385,53 @@ reg = <0x0 0xff808040 0x0 0x44>; status = "ok"; }; + + hktft35: hktft35 { + status = "disabled"; + compatible = "odroid,hktft35"; + pinctrl-name = "hktft35"; + pinctrl-0 = <&hktft35_pins>; + + rotate = <270>; + bgr; + fps = <20>; + bpp = <16>; + reset-gpios = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>; + dc-gpios = <&gpio GPIOX_14 GPIO_ACTIVE_LOW>; + wr-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>; + cs-gpios = <&gpio GPIOX_16 GPIO_ACTIVE_LOW>; + led-gpios = <&gpio GPIOX_5 GPIO_ACTIVE_LOW>; + db-gpios = <&gpio GPIOX_1 GPIO_ACTIVE_LOW>, + <&gpio GPIOX_2 GPIO_ACTIVE_LOW>, + <&gpio GPIOX_0 GPIO_ACTIVE_LOW>, + <&gpio GPIOX_11 GPIO_ACTIVE_LOW>, + <&gpio GPIOX_9 GPIO_ACTIVE_LOW>, + <&gpio GPIOX_8 GPIO_ACTIVE_LOW>, + <&gpio GPIOX_7 GPIO_ACTIVE_LOW>, + <&gpio GPIOX_4 GPIO_ACTIVE_LOW>; + debug = <0>; + + hktft35_pins: hktft35_pins { + mux { + groups = "GPIOX_0", + "GPIOX_1", + "GPIOX_2", + "GPIOX_3", + "GPIOX_4", + "GPIOX_5", + "GPIOX_7", + "GPIOX_8", + "GPIOX_9", + "GPIOX_10", + "GPIOX_11", + "GPIOX_14", + "GPIOX_16"; + function = "gpio_periphs"; + output-high; + drive-strength = <3>; + }; + }; + }; }; /* end of / */ &meson_fb { @@ -552,11 +497,11 @@ }; &saradc { - status = "okay"; + status = "disabled"; }; &i2c2 { - status = "okay"; + status = "disabled"; pinctrl-names = "default","gpio_periphs"; /* 40 Pin Header : SDA(GPIOX.17->3 Pin), SCL(GPIOX.18->5 Pin) */ pinctrl-0 = <&i2c2_master_pins1>; @@ -567,7 +512,7 @@ &i2c3 { /* default i2c clock-frequency is 100Khz */ - status = "okay"; + status = "disabled"; /* Hardkernel I2C 3.5" Touchscreen */ /* drivers/input/sx8650.c */ @@ -590,7 +535,7 @@ }; &spicc0 { - status = "okay"; + status = "disabled"; /* 40 Pin Header : MOSI(GPIOX.8->19 Pin), MISO(GPIOX.9->21 Pin), @@ -613,8 +558,8 @@ gpio-irq = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>; }; - spidev@0 { - status = "okay"; + spidev: spidev@0 { + status = "disabled"; compatible = "linux,spidev"; /* spi default max clock 100Mhz */ @@ -645,4 +590,32 @@ linux,wakeup; }; + + hktft32: hktft32@0 { + status = "disabled"; + compatible = "odroid,hktft32"; + reg = <0>; + pinctrl-names = "hktft32"; + pinctrl-0 = <&hktft32_pins>; + + spi-max-frequency = <40000000>; + rotate = <90>; + bgr; + backlight; + fps = <20>; + bpp = <16>; + reset-gpios = <&gpio GPIOX_4 GPIO_ACTIVE_LOW>; + dc-gpio = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>; + debug = <0>; + + hktft32_pins: hktft32_pins { + mux { + groups = "GPIOX_4", + "GPIOX_7"; + function = "gpio_periphs"; + output-high; + drive-strength = <3>; + }; + }; + }; }; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile new file mode 100644 index 000000000000..6cd92954e863 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile @@ -0,0 +1,15 @@ +# Overlays for the Odroid platform + +dtbo-$(CONFIG_ARCH_MESON64_ODROIDC4) += spi0.dtbo \ + i2c2.dtbo \ + i2c3.dtbo \ + uarta.dtbo \ + uartb.dtbo \ + uartc.dtbo \ + hktft32.dtbo \ + hktft35.dtbo \ + pcf8563.dtbo \ + pcm5242.dtbo + +targets += $(dtbo-y) +always := $(dtbo-y) diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft32.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft32.dts new file mode 100644 index 000000000000..196ee81b62b4 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft32.dts @@ -0,0 +1,28 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spicc0>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&hktft32>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&ads7846>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft35.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft35.dts new file mode 100644 index 000000000000..5b377ff29302 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/hktft35.dts @@ -0,0 +1,28 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&i2c3>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&sx865x>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&hktft35>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c2.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c2.dts new file mode 100644 index 000000000000..3d48fa2e4dc1 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c2.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&i2c2>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c3.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c3.dts new file mode 100644 index 000000000000..8f979fe323f8 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/i2c3.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&i2c3>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcf8563.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcf8563.dts new file mode 100644 index 000000000000..505323c3d980 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcf8563.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&i2c2>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&pcf8563>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcm5242.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcm5242.dts new file mode 100644 index 000000000000..40e7da71d8c1 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/pcm5242.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&i2c2>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&pcm5242>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/spi0.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/spi0.dts new file mode 100644 index 000000000000..79a8111f6c22 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/spi0.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spicc0>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&spidev>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uarta.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uarta.dts new file mode 100644 index 000000000000..ef5468a12130 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uarta.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart_A>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartb.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartb.dts new file mode 100644 index 000000000000..9cc1f5715e0a --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartb.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart_B>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartc.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartc.dts new file mode 100644 index 000000000000..c2267df1fb66 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/uartc.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart_C>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile new file mode 100644 index 000000000000..947683bbd7cc --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile @@ -0,0 +1,15 @@ +# Overlays for the Odroid platform + +dtbo-$(CONFIG_ARCH_MESON64_ODROIDN2) += spi0.dtbo \ + i2c0.dtbo \ + i2c1.dtbo \ + uarta.dtbo \ + uartb.dtbo \ + hktft32.dtbo \ + hktft35.dtbo \ + saradc.dtbo \ + irblaster.dtbo \ + odroidn2-opp.dtbo + +targets += $(dtbo-y) +always := $(dtbo-y) diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft32.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft32.dts new file mode 100644 index 000000000000..196ee81b62b4 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft32.dts @@ -0,0 +1,28 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spicc0>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&hktft32>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&ads7846>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft35.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft35.dts new file mode 100644 index 000000000000..5b377ff29302 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/hktft35.dts @@ -0,0 +1,28 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&i2c3>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&sx865x>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&hktft35>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c0.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c0.dts new file mode 100644 index 000000000000..36e4d0e1f6b1 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c0.dts @@ -0,0 +1,14 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + // i2c2 aliased with i2c0. + // This activates i2c2 but it will be named as i2c0 on the userspace. + target = <&i2c2>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c1.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c1.dts new file mode 100644 index 000000000000..2e9198151a94 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/i2c1.dts @@ -0,0 +1,14 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + // i2c3 aliased with i2c1. + // This activates i2c3 but it will be named as i2c1 on the userspace. + target = <&i2c3>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/irblaster.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/irblaster.dts new file mode 100644 index 000000000000..699506098c12 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/irblaster.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&irblaster>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/odroidn2-opp.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/odroidn2-opp.dts new file mode 100644 index 000000000000..2a6f2eb70126 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/odroidn2-opp.dts @@ -0,0 +1,118 @@ +// cpu opp table +/dts-v1/; +/plugin/; + +/{ + fragment@0 { + target= <&cpu_opp_table0>; + + __overlay__ { + opp00 { + opp-hz = /bits/ 64 <100000000>; + opp-microvolt = <730000>; + }; + opp01 { + opp-hz = /bits/ 64 <250000000>; + opp-microvolt = <730000>; + }; + opp02 { + opp-hz = /bits/ 64 <500000000>; + opp-microvolt = <730000>; + }; + opp03 { + opp-hz = /bits/ 64 <667000000>; + opp-microvolt = <730000>; + }; + opp04 { + opp-hz = /bits/ 64 <1000000000>; + opp-microvolt = <730000>; + }; + opp05 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <730000>; + }; + opp06 { + opp-hz = /bits/ 64 <1398000000>; + opp-microvolt = <760000>; + }; + opp07 { + opp-hz = /bits/ 64 <1512000000>; + opp-microvolt = <790000>; + }; + opp08 { + opp-hz = /bits/ 64 <1608000000>; + opp-microvolt = <830000>; + }; + opp09 { + opp-hz = /bits/ 64 <1704000000>; + opp-microvolt = <860000>; + }; + opp10 { + opp-hz = /bits/ 64 <1896000000>; + opp-microvolt = <980000>; + }; + opp11 { + opp-hz = /bits/ 64 <1992000000>; + opp-microvolt = <1000000>; + }; + }; + }; + fragment@1 { + target= <&cpu_opp_table1>; + + __overlay__ { + opp00 { + opp-hz = /bits/ 64 <100000000>; + opp-microvolt = <750000>; + }; + opp01 { + opp-hz = /bits/ 64 <250000000>; + opp-microvolt = <750000>; + }; + opp02 { + opp-hz = /bits/ 64 <500000000>; + opp-microvolt = <750000>; + }; + opp03 { + opp-hz = /bits/ 64 <667000000>; + opp-microvolt = <750000>; + }; + opp04 { + opp-hz = /bits/ 64 <1000000000>; + opp-microvolt = <770000>; + }; + opp05 { + opp-hz = /bits/ 64 <1200000000>; + opp-microvolt = <770000>; + }; + opp06 { + opp-hz = /bits/ 64 <1398000000>; + opp-microvolt = <790000>; + }; + opp07 { + opp-hz = /bits/ 64 <1512000000>; + opp-microvolt = <820000>; + }; + opp08 { + opp-hz = /bits/ 64 <1608000000>; + opp-microvolt = <860000>; + }; + opp09 { + opp-hz = /bits/ 64 <1704000000>; + opp-microvolt = <890000>; + }; + opp10 { + opp-hz = /bits/ 64 <1800000000>; + opp-microvolt = <980000>; + }; + opp11 { + opp-hz = /bits/ 64 <1908000000>; + opp-microvolt = <1020000>; + }; + opp12 { + opp-hz = /bits/ 64 <2004000000>; + opp-microvolt = <1020000>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/saradc.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/saradc.dts new file mode 100644 index 000000000000..8daff5e5fe8f --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/saradc.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&saradc>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/spi0.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/spi0.dts new file mode 100644 index 000000000000..79a8111f6c22 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/spi0.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spicc0>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&spidev>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/uarta.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/uarta.dts new file mode 100644 index 000000000000..ef5468a12130 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/uarta.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart_A>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/uartb.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/uartb.dts new file mode 100644 index 000000000000..9cc1f5715e0a --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/uartb.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart_B>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst index f112bc99ae0f..5cc1ddca85e8 100644 --- a/scripts/Makefile.dtbinst +++ b/scripts/Makefile.dtbinst @@ -21,6 +21,7 @@ include scripts/Kbuild.include include $(src)/Makefile dtbinst-files := $(sort $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtb-))) +dtboinst-files := $(sort $(dtbo-y) $(if $(CONFIG_OF_ALL_DTBS), $(dtbo-))) dtbinst-dirs := $(subdir-y) $(subdir-m) # Helper targets for Installing DTBs into the boot directory @@ -32,10 +33,13 @@ install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj)) $(dtbinst-files): %.dtb: $(obj)/%.dtb $(call cmd,dtb_install,$(install-dir)) +$(dtboinst-files): %.dtbo: $(obj)/%.dtbo + $(call cmd,dtb_install,$(install-dir)) + $(dtbinst-dirs): $(Q)$(MAKE) $(dtbinst)=$(obj)/$@ -PHONY += $(dtbinst-files) $(dtbinst-dirs) -__dtbs_install: $(dtbinst-files) $(dtbinst-dirs) +PHONY += $(dtbinst-files) $(dtboinst-files) $(dtbinst-dirs) +__dtbs_install: $(dtbinst-files) $(dtboinst-files) $(dtbinst-dirs) .PHONY: $(PHONY)