Add new A20 overlays

Update some H3 overlays
This commit is contained in:
zador-blood-stained 2017-03-13 20:32:37 +03:00
parent a6e818dc2f
commit caf4b1b037
3 changed files with 970 additions and 338 deletions

View File

@ -12,7 +12,7 @@ index 01d178a2..bfba239c 100644
+dts-dirs += overlay
diff --git a/arch/arm/boot/dts/overlay/Makefile b/arch/arm/boot/dts/overlay/Makefile
new file mode 100644
index 00000000..1764aed8
index 00000000..c305bf94
--- /dev/null
+++ b/arch/arm/boot/dts/overlay/Makefile
@@ -0,0 +1,29 @@
@ -25,8 +25,8 @@ index 00000000..1764aed8
+ sun8i-h3-i2c1.dtbo \
+ sun8i-h3-i2c2.dtbo \
+ sun8i-h3-spi-jedec-nor.dtbo \
+ sun8i-h3-spi-spidev.dtbo \
+ sun8i-h3-spi-mcp2515.dtbo \
+ sun8i-h3-spi-spidev.dtbo \
+ sun8i-h3-uart1.dtbo \
+ sun8i-h3-uart2.dtbo \
+ sun8i-h3-uart3.dtbo \
@ -47,10 +47,10 @@ index 00000000..1764aed8
+clean-files := *.dtbo *.scr
diff --git a/arch/arm/boot/dts/overlay/README.sun8i-h3-overlays b/arch/arm/boot/dts/overlay/README.sun8i-h3-overlays
new file mode 100644
index 00000000..1bdfdd59
index 00000000..c4024a05
--- /dev/null
+++ b/arch/arm/boot/dts/overlay/README.sun8i-h3-overlays
@@ -0,0 +1,188 @@
@@ -0,0 +1,202 @@
+This document describes overlays provided in the kernel packages
+For generic Armbian overlays documentation please see
+https://docs.armbian.com/Hardware_Allwinner_overlays/
@ -67,7 +67,7 @@ index 00000000..1bdfdd59
+so SPI chip select is always set to 0
+
+Using software (GPIO) SPI chip selects is possible, but since
+GPIO pins cannot be changed dynamically dur to u-boot limitation,
+GPIO pins cannot be changed dynamically due to u-boot limitation,
+this feature is not used in provided overlays.
+
+### Provided overlays:
@ -97,25 +97,35 @@ index 00000000..1bdfdd59
+
+### cir
+
+Activates CIR (Infrared remote) receiver connected to the standard pin (PL11)
+Activates CIR (Infrared remote) receiver
+
+CIR pin: PL11
+
+### i2c0
+
+Activates TWI/I2C bus 0, exposed on pins PA11 and PA12
+Activates TWI/I2C bus 0
+
+I2C0 pins (SCL, SDA): PA11, PA12
+
+### i2c1
+
+Activates TWI/I2C bus 1, exposed on pins PA18 and PA19
+Activates TWI/I2C bus 1
+
+I2C1 pins (SCL, SDA): PA18, PA19
+
+### i2c2
+
+Activates TWI/I2C bus 2, exposed on pins PE12 and PE13
+On most board this but is wired to Camera (CSI) socket
+Activates TWI/I2C bus 2
+
+I2C2 pins (SCL, SDA): PE12, PE13
+
+On most board this bus is wired to Camera (CSI) socket
+
+### spi-jedec-nor
+
+Activates MTD support for JEDEC compatible SPI NOR flash chips on SPI bus
+supported by the kernel SPI NOR driver
+
+SPI 0 pins (MOSI, MISO, SCK, CS): PC0, PC1, PC2, PC3
+SPI 1 pins (MOSI, MISO, SCK, CS): PA15, PA16, PA14, PA13
+
@ -123,7 +133,7 @@ index 00000000..1bdfdd59
+
+param_spinor_spi_bus (int)
+ SPI bus to activate SPI NOR flash support on
+ Default: 0
+ Required
+ Supported values: 0, 1
+
+param_spinor_max_freq (int)
@ -134,6 +144,7 @@ index 00000000..1bdfdd59
+### spi-mcp2515
+
+Activates mcp2515 SPI CAN controller connected to SPI bus
+
+SPI 0 pins (MOSI, MISO, SCK, CS): PC0, PC1, PC2, PC3
+SPI 1 pins (MOSI, MISO, SCK, CS): PA15, PA16, PA14, PA13
+
@ -141,7 +152,7 @@ index 00000000..1bdfdd59
+
+param_mcp2515_spi_bus (int)
+ SPI bus to activate mcp2515 support on
+ Default: 0
+ Required
+ Supported values: 0, 1
+
+param_mcp2515_clk_freq (int)
@ -156,8 +167,8 @@ index 00000000..1bdfdd59
+
+### spi-spidev
+
+Activates SPIdev device node (/dev/spidev0.0 or /dev/spidev1.0)
+for userspace SPI access
+Activates SPIdev device node (/dev/spidevX.Y) for userspace SPI access,
+where X is the bus number and Y is the CS number
+
+SPI 0 pins (MOSI, MISO, SCK, CS): PC0, PC1, PC2, PC3
+SPI 1 pins (MOSI, MISO, SCK, CS): PA15, PA16, PA14, PA13
@ -166,7 +177,7 @@ index 00000000..1bdfdd59
+
+param_spidev_spi_bus (int)
+ SPI bus to activate SPIdev support on
+ Default: 0
+ Required
+ Supported values: 0, 1
+
+param_spidev_max_freq (int)
@ -177,6 +188,7 @@ index 00000000..1bdfdd59
+### uart1
+
+Activates serial port 1 (/dev/ttyS1)
+
+UART 1 pins (TX, RX, RTS, CTS): PG6, PG7, PG8, PG9
+
+Parameters:
@ -189,6 +201,7 @@ index 00000000..1bdfdd59
+### uart2
+
+Activates serial port 2 (/dev/ttyS2)
+
+UART 2 pins (TX, RX, RTS, CTS): PA0, PA1, PA2, PA3
+
+Parameters:
@ -201,6 +214,7 @@ index 00000000..1bdfdd59
+### uart3
+
+Activates serial port 3 (/dev/ttyS3)
+
+UART 3 pins (TX, RX, RTS, CTS): PA13, PA14, PA15, PA16
+
+Parameters:
@ -283,10 +297,10 @@ index 00000000..f611d823
+};
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-fixup.scr-cmd b/arch/arm/boot/dts/overlay/sun8i-h3-fixup.scr-cmd
new file mode 100644
index 00000000..7d083989
index 00000000..ceb21b21
--- /dev/null
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-fixup.scr-cmd
@@ -0,0 +1,113 @@
@@ -0,0 +1,122 @@
+# overlays fixup script
+# implements (or rather substitutes) overlay arguments functionality
+# using u-boot scripting, environment variables and "fdt" command
@ -301,24 +315,33 @@ index 00000000..7d083989
+test "${tmp_bank}" = "D" && setenv tmp_bank 3;
+test "${tmp_bank}" = "G" && setenv tmp_bank 6'
+
+if test "${param_spinor_spi_bus}" = "0"; then
+ fdt set /soc/spi@01c68000 status "okay"
+ fdt set /soc/spi@01c68000/spiflash@0 status "okay"
+fi
+
+if test "${param_spinor_spi_bus}" = "1"; then
+ fdt set /soc/spi@01c68000 status "disabled"
+ fdt set /soc/spi@01c69000 status "okay"
+ fdt set /soc/spi@01c68000/spiflash@0 status "disabled"
+ fdt set /soc/spi@01c69000/spiflash@0 status "okay"
+fi
+
+if test "${param_mcp2515_spi_bus}" = "0"; then
+ fdt set /soc/spi@01c68000 status "okay"
+ fdt set /soc/spi@01c68000/mcp2515@0 status "okay"
+fi
+
+if test "${param_mcp2515_spi_bus}" = "1"; then
+ fdt set /soc/spi@01c68000 status "disabled"
+ fdt set /soc/spi@01c69000 status "okay"
+ fdt set /soc/spi@01c68000/mcp2515@0 status "disabled"
+ fdt set /soc/spi@01c69000/mcp2515@0 status "okay"
+fi
+
+if test "${param_spidev_spi_bus}" = "0"; then
+ fdt set /soc/spi@01c68000 status "okay"
+ fdt set /soc/spi@01c68000/spidev@0 status "okay"
+fi
+
+if test "${param_spidev_spi_bus}" = "1"; then
+ fdt set /soc/spi@01c68000 status "disabled"
+ fdt set /soc/spi@01c69000 status "okay"
+ fdt set /soc/spi@01c68000/spidev@0 status "disabled"
+ fdt set /soc/spi@01c69000/spidev@0 status "okay"
+fi
+
@ -477,10 +500,10 @@ index 00000000..0e1de089
+};
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-spi-jedec-nor.dts b/arch/arm/boot/dts/overlay/sun8i-h3-spi-jedec-nor.dts
new file mode 100644
index 00000000..93efa936
index 00000000..4df8a5ee
--- /dev/null
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-spi-jedec-nor.dts
@@ -0,0 +1,43 @@
@@ -0,0 +1,41 @@
+/dts-v1/ /plugin/;
+
+/ {
@ -497,14 +520,13 @@ index 00000000..93efa936
+ fragment@1 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spiflash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ status = "okay";
+ status = "disabled";
+ };
+ };
+ };
@ -512,24 +534,23 @@ index 00000000..93efa936
+ fragment@2 {
+ target = <&spi1>;
+ __overlay__ {
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spiflash@0 {
+ compatible = "jedec,spi-nor";
+ status = "disabled";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ status = "disabled";
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-spi-mcp2515.dts b/arch/arm/boot/dts/overlay/sun8i-h3-spi-mcp2515.dts
new file mode 100644
index 00000000..8796019c
index 00000000..f9ae57ab
--- /dev/null
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-spi-mcp2515.dts
@@ -0,0 +1,79 @@
@@ -0,0 +1,77 @@
+/dts-v1/ /plugin/;
+
+#include <dt-bindings/interrupt-controller/irq.h>
@ -550,11 +571,11 @@ index 00000000..8796019c
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ can0_osc_fixed: can0_osc_fixed {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <8000000>;
+ };
+ can0_osc_fixed: can0_osc_fixed {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <8000000>;
+ };
+ };
+ };
+
@ -572,19 +593,18 @@ index 00000000..8796019c
+ fragment@3 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mcp2515@0 {
+ reg = <0>; /* Chip Select 0 */
+ compatible = "microchip,mcp2515";
+ pinctrl-names = "default";
+ pinctrl-0 = <&can0_pin_irq>;
+ spi-max-frequency = <10000000>;
+ mcp2515@0 {
+ reg = <0>;
+ compatible = "microchip,mcp2515";
+ pinctrl-names = "default";
+ pinctrl-0 = <&can0_pin_irq>;
+ spi-max-frequency = <10000000>;
+ interrupt-parent = <&pio>;
+ interrupts = <0 7 IRQ_TYPE_EDGE_FALLING>; /* PA7 */
+ clocks = <&can0_osc_fixed>;
+ status = "okay";
+ status = "disabled";
+ };
+ };
+ };
@ -592,15 +612,14 @@ index 00000000..8796019c
+ fragment@4 {
+ target = <&spi1>;
+ __overlay__ {
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ mcp2515@0 {
+ reg = <0>; /* Chip Select 0 */
+ compatible = "microchip,mcp2515";
+ pinctrl-names = "default";
+ pinctrl-0 = <&can0_pin_irq>;
+ spi-max-frequency = <10000000>;
+ mcp2515@0 {
+ reg = <0>;
+ compatible = "microchip,mcp2515";
+ pinctrl-names = "default";
+ pinctrl-0 = <&can0_pin_irq>;
+ spi-max-frequency = <10000000>;
+ interrupt-parent = <&pio>;
+ interrupts = <0 7 IRQ_TYPE_EDGE_FALLING>; /* PA7 */
+ clocks = <&can0_osc_fixed>;
@ -611,10 +630,10 @@ index 00000000..8796019c
+};
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-spi-spidev.dts b/arch/arm/boot/dts/overlay/sun8i-h3-spi-spidev.dts
new file mode 100644
index 00000000..5eb2e2c9
index 00000000..e178e6a1
--- /dev/null
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-spi-spidev.dts
@@ -0,0 +1,43 @@
@@ -0,0 +1,41 @@
+/dts-v1/ /plugin/;
+
+/ {
@ -631,12 +650,11 @@ index 00000000..5eb2e2c9
+ fragment@1 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spidev@0 {
+ compatible = "spidev";
+ status = "okay";
+ status = "disabled";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+ };
@ -646,7 +664,6 @@ index 00000000..5eb2e2c9
+ fragment@2 {
+ target = <&spi1>;
+ __overlay__ {
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ spidev@0 {
@ -687,10 +704,10 @@ index 00000000..902e3e5a
+};
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-uart2.dts b/arch/arm/boot/dts/overlay/sun8i-h3-uart2.dts
new file mode 100644
index 00000000..8a910690
index 00000000..bf35d82c
--- /dev/null
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-uart2.dts
@@ -0,0 +1,21 @@
@@ -0,0 +1,31 @@
+/dts-v1/ /plugin/;
+
+/ {
@ -704,10 +721,20 @@ index 00000000..8a910690
+ };
+
+ fragment@1 {
+ target = <&pio>;
+ __overlay__ {
+ uart2_pins_a_2: uart2@1 {
+ pins = "PI18", "PI19";
+ function = "uart2";
+ };
+ };
+ };
+
+ fragment@2 {
+ target = <&uart2>;
+ __overlay__ {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2_pins>;
+ pinctrl-0 = <&uart2_pins_a_2>;
+ status = "okay";
+ };
+ };

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,15 @@ diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index ab30cc63..cc176797 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -339,6 +339,9 @@ $(INSTALL_TARGETS):
@@ -339,6 +339,12 @@ $(INSTALL_TARGETS):
%.dtb: | scripts
$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
+%.dtbo: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
+
+%.scr: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts ARCH=$(ARCH) $(boot)/dts/$@
+
PHONY += dtbs dtbs_install
@ -16,72 +19,85 @@ diff --git a/arch/arm/boot/.gitignore b/arch/arm/boot/.gitignore
index 3c79f859..eaaeb17e 100644
--- a/arch/arm/boot/.gitignore
+++ b/arch/arm/boot/.gitignore
@@ -3,4 +3,4 @@ zImage
@@ -3,4 +3,5 @@ zImage
xipImage
bootpImage
uImage
-*.dtb
+*.dtb*
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 01d178a2..48e5a5f5 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -984,10 +984,16 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \
aspeed-ast2500-evb.dtb
+
+targets += dtbs dtbs_install
+targets += $(dtb-y)
endif
+*.scr
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index b9a4a934..54e3c38d 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -119,6 +119,12 @@ zinstall install:
%.dtb: scripts
$(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
dtstree := $(srctree)/$(src)
dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
always := $(dtb-y)
+subdir-y := overlay
clean-files := *.dtb
+%.dtbo: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
+
+dts-dirs += overlay
+%.scr: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts ARCH=$(ARCH) $(boot)/dts/$@
+
PHONY += dtbs dtbs_install
dtbs: prepare scripts
diff --git a/arch/arm64/boot/dts/.gitignore b/arch/arm64/boot/dts/.gitignore
index b60ed208..5d65b54b 100644
--- a/arch/arm64/boot/dts/.gitignore
+++ b/arch/arm64/boot/dts/.gitignore
@@ -1 +1,2 @@
-*.dtb
+*.dtb*
+*.scr
diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
index a1be75d0..ad8dc1c9 100644
--- a/scripts/Makefile.dtbinst
+++ b/scripts/Makefile.dtbinst
@@ -27,6 +27,7 @@ ifeq ("$(dtbinst-root)", "$(obj)")
@@ -27,6 +27,9 @@ ifeq ("$(dtbinst-root)", "$(obj)")
endif
dtbinst-files := $(dtb-y)
+dtboinst-files := $(dtbo-y)
+script-files := $(scr-y)
+readme-files := $(dtbotxt-y)
dtbinst-dirs := $(dts-dirs)
# Helper targets for Installing DTBs into the boot directory
@@ -35,15 +36,18 @@ quiet_cmd_dtb_install = INSTALL $<
@@ -35,15 +38,24 @@ quiet_cmd_dtb_install = INSTALL $<
install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
-$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
+$(dtbinst-files) $(dtboinst-files) $(dtbinst-dirs): | __dtbs_install_prep
+$(dtbinst-files) $(dtboinst-files) $(readme-files) $(script-files) $(dtbinst-dirs): | __dtbs_install_prep
$(dtbinst-files): %.dtb: $(obj)/%.dtb
$(call cmd,dtb_install,$(install-dir))
+$(dtboinst-files): %.dtbo: $(obj)/%.dtbo
+ $(call cmd,dtb_install,$(install-dir))
+
+$(script-files): %.scr: $(obj)/%.scr
+ $(call cmd,dtb_install,$(install-dir))
+
+$(readme-files): %: $(src)/%
+ $(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 += $(dtbinst-files) $(dtboinst-files) $(script-files) $(readme-files) $(dtbinst-dirs)
+__dtbs_install: $(dtbinst-files) $(dtboinst-files) $(script-files) $(readme-files) $(dtbinst-dirs)
.PHONY: $(PHONY)
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 0a07f901..5ccd3490 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -312,6 +312,17 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
@@ -312,6 +312,23 @@ cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
$(obj)/%.dtb: $(src)/%.dts FORCE
$(call if_changed_dep,dtc)
@ -95,6 +111,12 @@ index 0a07f901..5ccd3490 100644
+
+$(obj)/%.dtbo: $(src)/%.dts FORCE
+ $(call if_changed_dep,dtco)
+
+quiet_cmd_scr = MKIMAGE $@
+cmd_scr = mkimage -C none -A $(ARCH) -T script -d $< $@
+
+$(obj)/%.scr: $(src)/%.scr-cmd FORCE
+ $(call if_changed,scr)
+
dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)