Merge changes Id1932552,I2ceb31b9,Ie9d2325e,Id0262986,Idd344270, ... into odroidg12-4.9.y-android

* changes:
  ODROID-COMMON: arm64/dts: move can0 node to each overlay directory
  ODROID-COMMON: arm64/dts: Extract spidev node from main dts to spi0 dtbo
  ODROID-COMMON: arm64/dts: Rename uart DTBOs to use numerical order
  ODROID-COMMON: arm64/dts: move onewire node to each overlay directory
  ODROID-C4/N2: fix to remove compile warning of 'Warning (reg_format): "reg" property in ...'
  ODROID-COMMON: arm64/dts: Move peripheral nodes from dts to each dtbos.
  ODROID-COMMON: arm64/dts: Support device tree overlay.
This commit is contained in:
Luke go
2020-06-11 18:04:21 +09:00
committed by Gerrit Code Review
35 changed files with 838 additions and 312 deletions

View File

@@ -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

View File

@@ -1 +1,2 @@
*.dtb
*.dtbo

View File

@@ -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

View File

@@ -752,53 +752,6 @@
reg = <0x0 0xff808040 0x0 0x44>;
status = "ok";
};
hktft35 {
status = "disabled";
compatible = "odroid,hktft35";
pinctrl-names = "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_6 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_6",
"GPIOX_7",
"GPIOX_8",
"GPIOX_9",
"GPIOX_10",
"GPIOX_11",
"GPIOX_14",
"GPIOX_16";
function = "gpio_periphs";
output-high;
drive-strength = <3>;
};
};
};
}; /* end of / */
&audiobus {
@@ -850,7 +803,7 @@
}; /* end of audiobus */
&uart_A {
status = "okay";
status = "disabled";
};
&usb3_phy_v2 {
@@ -935,7 +888,7 @@
}; /* end of pinctrl_aobus */
&spicc0 {
status = "okay";
status = "disabled";
/*
40 Pin Header : MOSI(GPIOX.8->19 Pin), MISO(GPIOX.9->21 Pin),
@@ -949,102 +902,12 @@
cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>,
<&gpio GPIOH_6 GPIO_ACTIVE_LOW>;
can0: can@0 {
compatible = "microchip,mcp2515";
reg = <0>;
spi-max-frequency = <10000000>;
status = "disabled";
gpio-irq = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
};
spidev@0 {
status = "okay";
compatible = "linux,spidev";
/* spi default max clock 100Mhz */
spi-max-frequency = <100000000>;
reg = <0>;
};
/* SPI 3.2" Touch Screen Define */
ads7846@1 {
status = "disabled";
spi-max-frequency = <1000000>;
compatible = "ti,ads7846";
reg = <1>;
/* ODROID-N2 Touch interrupt gpio */
pendown-gpio = <&gpio GPIOX_3 GPIO_ACTIVE_HIGH>;
ti,swap-xy = <1>;
ti,x-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <8000>;
ti,y-min = /bits/ 16 <0>;
ti,y-max = /bits/ 16 <4800>;
ti,x-plate-ohms = /bits/ 16 <40>;
ti,pressure-max = /bits/ 16 <255>;
linux,wakeup;
};
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-gpios = <&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>;
};
};
};
};
&i2c2 {
pcf8563: rtc@51 {
status = "disabled";
compatible = "nxp,pcf8563";
reg = <0x51>;
};
status = "disabled";
};
&i2c3 {
/* Hardkernel I2C 3.5" Touchscreen */
/* drivers/input/sx8650.c */
sx865x: sx865x@49 {
status = "disabled";
compatible = "semtech,sx8650";
reg = <0x49>;
#clock-cells = <0>;
/* H/W Pin control setup */
/* ODROID-C4 */
gpio-pendown = <&gpio GPIOH_5 GPIO_ACTIVE_LOW>;
gpio-reset = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
/* platform data setup */
invert-x = <0>;
invert-y = <1>;
swap-xy = <1>;
};
status = "disabled";
};

View File

@@ -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 {
@@ -552,11 +450,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,30 +465,11 @@
&i2c3 {
/* default i2c clock-frequency is 100Khz */
status = "okay";
/* Hardkernel I2C 3.5" Touchscreen */
/* drivers/input/sx8650.c */
sx865x: sx865x@49 {
status = "disabled";
compatible = "semtech,sx8650";
reg = <0x49>;
#clock-cells = <0>;
/* H/W Pin control setup */
/* ODROID-N2 */
gpio-pendown = <&gpio GPIOX_19 GPIO_ACTIVE_LOW>;
gpio-reset = <&gpio GPIOA_12 GPIO_ACTIVE_LOW>;
/* platform data setup */
invert-x = <0>;
invert-y = <1>;
swap-xy = <1>;
};
status = "disabled";
};
&spicc0 {
status = "okay";
status = "disabled";
/*
40 Pin Header : MOSI(GPIOX.8->19 Pin), MISO(GPIOX.9->21 Pin),
@@ -604,45 +483,4 @@
cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>,
<&gpio GPIOA_4 GPIO_ACTIVE_LOW>;
can0: can@0 {
compatible = "microchip,mcp2515";
reg = <0>;
spi-max-frequency = <10000000>;
status = "disabled";
gpio-irq = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
};
spidev@0 {
status = "okay";
compatible = "linux,spidev";
/* spi default max clock 100Mhz */
spi-max-frequency = <100000000>;
reg = <0>;
};
/* SPI 3.2" Touch Screen Define */
ads7846@1 {
status = "disabled";
spi-max-frequency = <1000000>;
compatible = "ti,ads7846";
reg = <1>;
/* ODROID-N2 Touch interrupt gpio */
pendown-gpio = <&gpio GPIOX_3 GPIO_ACTIVE_HIGH>;
ti,swap-xy = <1>;
ti,x-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <8000>;
ti,y-min = /bits/ 16 <0>;
ti,y-max = /bits/ 16 <4800>;
ti,x-plate-ohms = /bits/ 16 <40>;
ti,pressure-max = /bits/ 16 <255>;
linux,wakeup;
};
};

View File

@@ -0,0 +1,18 @@
# Overlays for the Odroid platform
dtbo-$(CONFIG_ARCH_MESON64_ODROIDC4) += spi0.dtbo \
i2c0.dtbo \
i2c1.dtbo \
uart0.dtbo \
uart1.dtbo \
uart2.dtbo \
hktft32.dtbo \
hktft35.dtbo \
ads7846.dtbo \
sx865x-i2c1.dtbo \
pcf8563.dtbo \
onewire.dtbo \
can0.dtbo
targets += $(dtbo-y)
always := $(dtbo-y)

View File

@@ -0,0 +1,38 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
ads7846: ads7846@0 {
status = "okay";
compatible = "ti,ads7846";
spi-max-frequency = <1000000>;
reg = <1>;
pendown-gpio = <&gpio GPIOX_3 GPIO_ACTIVE_HIGH>;
ti,swap-xy = <1>;
ti,x-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <8000>;
ti,y-min = /bits/ 16 <0>;
ti,y-max = /bits/ 16 <4800>;
ti,x-plate-ohms = /bits/ 16 <40>;
ti,pressure-max = /bits/ 16 <255>;
linux,wakeup;
};
};
};
};

View File

@@ -0,0 +1,23 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
can0: can@0 {
compatible = "microchip,mcp2515";
gpio-irq = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
reg = <0>;
spi-max-frequency = <10000000>;
status = "okay";
};
};
};
};

View File

@@ -0,0 +1,46 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
hktft32: hktft32@0 {
status = "okay";
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-gpios = <&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>;
};
};
};
};
};
};

View File

@@ -0,0 +1,63 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target-path = "/";
#address-cells = <1>;
#size-cells = <0>;
__overlay__ {
hktft35: hktft35 {
status = "okay";
compatible = "odroid,hktft35";
pinctrl-names = "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_6 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_6",
"GPIOX_7",
"GPIOX_8",
"GPIOX_9",
"GPIOX_10",
"GPIOX_11",
"GPIOX_14",
"GPIOX_16";
function = "gpio_periphs";
output-high;
drive-strength = <3>;
};
};
};
};
};
};

View File

@@ -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";
};
};
};

View File

@@ -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";
};
};
};

View File

@@ -0,0 +1,19 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target-path = "/";
__overlay__ {
onewire:onewire {
compatible = "w1-gpio";
gpios = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
};
};

View File

@@ -0,0 +1,22 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
// i2c2 aliased with i2c0.
target = <&i2c2>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
pcf8563: rtc@51 {
status = "okay";
compatible = "nxp,pcf8563";
reg = <0x51>;
};
};
};
};

View File

@@ -0,0 +1,23 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
spidev: spidev@0 {
status = "okay";
compatible = "linux,spidev";
reg = <0>;
/* spi default max clock 100Mhz */
spi-max-frequency = <100000000>;
};
};
};
};

View File

@@ -0,0 +1,39 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
// i2c3 aliased with i2c1.
target = <&i2c3>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
/* Hardkernel I2C 3.5" Touchscreen */
/* drivers/input/sx8650.c */
sx865x: sx865x@49 {
status = "okay";
compatible = "semtech,sx8650";
reg = <0x49>;
#clock-cells = <0>;
/* H/W Pin control setup */
/* ODROID-C4 */
gpio-pendown = <&gpio GPIOH_5 GPIO_ACTIVE_LOW>;
gpio-reset = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
/* platform data setup */
invert-x = <0>;
invert-y = <1>;
swap-xy = <1>;
};
};
};
};

View File

@@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&uart_A>;
__overlay__ {
status = "okay";
};
};
};

View File

@@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&uart_B>;
__overlay__ {
status = "okay";
};
};
};

View File

@@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&uart_C>;
__overlay__ {
status = "okay";
};
};
};

View File

@@ -0,0 +1,19 @@
# Overlays for the Odroid platform
dtbo-$(CONFIG_ARCH_MESON64_ODROIDN2) += spi0.dtbo \
i2c0.dtbo \
i2c1.dtbo \
uart0.dtbo \
uart1.dtbo \
hktft32.dtbo \
hktft35.dtbo \
ads7846.dtbo \
sx865x-i2c1.dtbo \
saradc.dtbo \
irblaster.dtbo \
odroidn2-opp.dtbo \
onewire.dtbo \
can0.dtbo
targets += $(dtbo-y)
always := $(dtbo-y)

View File

@@ -0,0 +1,38 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
ads7846: ads7846@0 {
status = "okay";
compatible = "ti,ads7846";
spi-max-frequency = <1000000>;
reg = <1>;
pendown-gpio = <&gpio GPIOX_3 GPIO_ACTIVE_HIGH>;
ti,swap-xy = <1>;
ti,x-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <8000>;
ti,y-min = /bits/ 16 <0>;
ti,y-max = /bits/ 16 <4800>;
ti,x-plate-ohms = /bits/ 16 <40>;
ti,pressure-max = /bits/ 16 <255>;
linux,wakeup;
};
};
};
};

View File

@@ -0,0 +1,23 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
can0: can@0 {
compatible = "microchip,mcp2515";
gpio-irq = <&gpio GPIOX_3 GPIO_ACTIVE_LOW>;
reg = <0>;
spi-max-frequency = <10000000>;
status = "okay";
};
};
};
};

View File

@@ -0,0 +1,46 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
hktft32: hktft32@0 {
status = "okay";
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>;
};
};
};
};
};
};

View File

@@ -0,0 +1,63 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target-path = "/";
#address-cells = <1>;
#size-cells = <0>;
__overlay__ {
hktft35: hktft35 {
status = "okay";
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>;
};
};
};
};
};
};

View File

@@ -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";
};
};
};

View File

@@ -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";
};
};
};

View File

@@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&irblaster>;
__overlay__ {
status = "okay";
};
};
};

View File

@@ -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>;
};
};
};
};

View File

@@ -0,0 +1,19 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
target-path = "/";
__overlay__ {
onewire:onewire {
compatible = "w1-gpio";
gpios = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
};
};

View File

@@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&saradc>;
__overlay__ {
status = "okay";
};
};
};

View File

@@ -0,0 +1,23 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&spicc0>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
spidev: spidev@0 {
status = "okay";
compatible = "linux,spidev";
reg = <0>;
/* spi default max clock 100Mhz */
spi-max-frequency = <100000000>;
};
};
};
};

View File

@@ -0,0 +1,37 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/gpio/gpio.h>
/ {
fragment@0 {
// i2c3 aliased with i2c1.
target = <&i2c3>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
sx865x: sx865x@49 {
status = "okay";
compatible = "semtech,sx8650";
reg = <0x49>;
#clock-cells = <0>;
/* H/W Pin control setup */
/* ODROID-N2 */
gpio-pendown = <&gpio GPIOX_19 GPIO_ACTIVE_LOW>;
gpio-reset = <&gpio GPIOA_12 GPIO_ACTIVE_LOW>;
/* platform data setup */
invert-x = <0>;
invert-y = <1>;
swap-xy = <1>;
};
};
};
};

View File

@@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&uart_A>;
__overlay__ {
status = "okay";
};
};
};

View File

@@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&uart_B>;
__overlay__ {
status = "okay";
};
};
};

View File

@@ -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)