build/patch/kernel/pine64-dev/add-sun50i-a64-overlays.patch
2017-04-06 16:55:02 -04:00

375 lines
9.4 KiB
Diff

diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 244e8b7..afcc1c0 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -3,5 +3,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb
always := $(dtb-y)
-subdir-y := $(dts-dirs)
+subdir-y := $(dts-dirs) overlays
clean-files := *.dtb
+
+dts-dirs += overlays
diff --git a/arch/arm64/boot/dts/allwinner/overlays/Makefile b/arch/arm64/boot/dts/allwinner/overlays/Makefile
new file mode 100644
index 0000000..bb7c8ad
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/Makefile
@@ -0,0 +1,26 @@
+ifeq ($(CONFIG_OF_CONFIGFS),y)
+
+dtbo-$(CONFIG_ARCH_SUNXI) += \
+ sun50i-a64-i2c0.dtbo \
+ sun50i-a64-i2c1.dtbo \
+ sun50i-a64-i2c2.dtbo \
+ sun50i-a64-spi0-jedec-nor.dtbo \
+ sun50i-a64-spi0-spidev.dtbo \
+ sun50i-a64-spi1-jedec-nor.dtbo \
+ sun50i-a64-spi1-spidev.dtbo \
+ sun50i-a64-uart1.dtbo \
+ sun50i-a64-uart2.dtbo \
+ sun50i-a64-uart3.dtbo
+
+#scr-$(CONFIG_ARCH_SUNXI) += sun50i-a64-fixup.scr
+
+#dtbotxt-$(CONFIG_ARCH_SUNXI) += README.sun50i-a64-overlays
+
+targets += $(dtbo-y)
+#$(scr-y) $(dtbotxt-y)
+
+endif
+
+always := $(dtbo-y)
+# $(scr-y) $(dtbotxt-y)
+clean-files := *.dtbo *.scr
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c0.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c0.dts
new file mode 100644
index 0000000..5377cc6
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c0.dts
@@ -0,0 +1,20 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ i2c0 = "/soc/i2c@01c2ac00";
+ };
+ };
+
+ fragment@1 {
+ target = <&i2c0>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c1.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c1.dts
new file mode 100644
index 0000000..36291c5
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c1.dts
@@ -0,0 +1,20 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ i2c1 = "/soc/i2c@01c2b000";
+ };
+ };
+
+ fragment@1 {
+ target = <&i2c1>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c2.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c2.dts
new file mode 100644
index 0000000..0e1de08
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-i2c2.dts
@@ -0,0 +1,20 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ i2c2 = "/soc/i2c@01c2b400";
+ };
+ };
+
+ fragment@1 {
+ target = <&i2c2>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi0-jedec-nor.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi0-jedec-nor.dts
new file mode 100644
index 0000000..5fea00c
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi0-jedec-nor.dts
@@ -0,0 +1,45 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ spi0 = "/soc/spi@01c68000";
+ };
+ };
+
+ fragment@1 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spiflash@0 {
+ compatible = "jedec,spi-nor";
+ status = "okay";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x100000>;
+ };
+ partition@100000 {
+ label = "env";
+ reg = <0x100000 0x100000>;
+ };
+ partition@200000 {
+ label = "data";
+ reg = <0x200000 0x200000>;
+ };
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi1-jedec-nor.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi1-jedec-nor.dts
new file mode 100644
index 0000000..5fea00c
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi1-jedec-nor.dts
@@ -0,0 +1,45 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ spi1 = "/soc/spi@01c69000";
+ };
+ };
+
+ fragment@1 {
+ target = <&spi1>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spiflash@0 {
+ compatible = "jedec,spi-nor";
+ status = "okay";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x100000>;
+ };
+ partition@100000 {
+ label = "env";
+ reg = <0x100000 0x100000>;
+ };
+ partition@200000 {
+ label = "data";
+ reg = <0x200000 0x200000>;
+ };
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi0-spidev.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi0-spidev.dts
new file mode 100644
index 0000000..8eacf1b
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi0-spidev.dts
@@ -0,0 +1,27 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ spi0 = "/soc/spi@01c68000";
+ };
+ };
+
+ fragment@1 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spidev@0 {
+ compatible = "spidev";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi1-spidev.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi1-spidev.dts
new file mode 100644
index 0000000..8eacf1b
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-spi1-spidev.dts
@@ -0,0 +1,27 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ spi1 = "/soc/spi@01c69000";
+ };
+ };
+
+ fragment@1 {
+ target = <&spi1>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spidev@0 {
+ compatible = "spidev";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ };
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart1.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart1.dts
new file mode 100644
index 0000000..902e3e5
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart1.dts
@@ -0,0 +1,22 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ serial1 = "/soc/serial@01c28400";
+ };
+ };
+
+ fragment@1 {
+ target = <&uart1>;
+ __overlay__ {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart1_pins>;
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart2.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart2.dts
new file mode 100644
index 0000000..8a91069
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart2.dts
@@ -0,0 +1,22 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ serial2 = "/soc/serial@01c28800";
+ };
+ };
+
+ fragment@1 {
+ target = <&uart2>;
+ __overlay__ {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins>;
+ status = "okay";
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart3.dts b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart3.dts
new file mode 100644
index 0000000..3f729d4
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/overlays/sun50i-a64-uart3.dts
@@ -0,0 +1,22 @@
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "allwinner,sun50i-a64";
+
+ fragment@0 {
+ target-path = "/aliases";
+ __overlay__ {
+ serial3 = "/soc/serial@01c28c00";
+ };
+ };
+
+ fragment@1 {
+ target = <&uart3>;
+ __overlay__ {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart3_pins>;
+ status = "okay";
+ };
+ };
+};