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