7139 lines
160 KiB
Diff
7139 lines
160 KiB
Diff
|
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||
|
index 965a7c0..71a672e 100644
|
||
|
--- a/arch/arm/boot/dts/Makefile
|
||
|
+++ b/arch/arm/boot/dts/Makefile
|
||
|
@@ -1213,3 +1213,5 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
|
||
|
aspeed-bmc-opp-zaius.dtb \
|
||
|
aspeed-bmc-portwell-neptune.dtb \
|
||
|
aspeed-bmc-quanta-q71l.dtb
|
||
|
+
|
||
|
+subdir-y := overlay
|
||
|
diff --git a/arch/arm/boot/dts/overlay/Makefile b/arch/arm/boot/dts/overlay/Makefile
|
||
|
new file mode 100644
|
||
|
index 0000000..39d6a27
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/Makefile
|
||
|
@@ -0,0 +1,97 @@
|
||
|
+# SPDX-License-Identifier: GPL-2.0
|
||
|
+dtbo-$(CONFIG_MACH_SUN4I) += \
|
||
|
+ sun4i-a10-analog-codec.dtbo \
|
||
|
+ sun4i-a10-can.dtbo \
|
||
|
+ sun4i-a10-i2c1.dtbo \
|
||
|
+ sun4i-a10-i2c2.dtbo \
|
||
|
+ sun4i-a10-nand.dtbo \
|
||
|
+ sun4i-a10-pps-gpio.dtbo \
|
||
|
+ sun4i-a10-pwm.dtbo \
|
||
|
+ sun4i-a10-spdif-out.dtbo \
|
||
|
+ sun4i-a10-spi-jedec-nor.dtbo \
|
||
|
+ sun4i-a10-spi-spidev.dtbo \
|
||
|
+ sun4i-a10-uart2.dtbo \
|
||
|
+ sun4i-a10-uart3.dtbo \
|
||
|
+ sun4i-a10-uart4.dtbo \
|
||
|
+ sun4i-a10-uart5.dtbo \
|
||
|
+ sun4i-a10-uart6.dtbo \
|
||
|
+ sun4i-a10-uart7.dtbo \
|
||
|
+ sun4i-a10-w1-gpio.dtbo
|
||
|
+
|
||
|
+dtbo-$(CONFIG_MACH_SUN5I) += \
|
||
|
+ sun5i-a13-analog-codec.dtbo \
|
||
|
+ sun5i-a13-i2c1.dtbo \
|
||
|
+ sun5i-a13-i2c2.dtbo \
|
||
|
+ sun5i-a13-nand.dtbo \
|
||
|
+ sun5i-a13-pwm.dtbo \
|
||
|
+ sun5i-a13-spi0.dtbo \
|
||
|
+ sun5i-a13-spi1.dtbo \
|
||
|
+ sun5i-a13-spi2.dtbo \
|
||
|
+ sun5i-a13-spi-jedec-nor.dtbo \
|
||
|
+ sun5i-a13-spi-spidev.dtbo \
|
||
|
+ sun5i-a13-uart0.dtbo \
|
||
|
+ sun5i-a13-uart1.dtbo \
|
||
|
+ sun5i-a13-uart2.dtbo \
|
||
|
+ sun5i-a13-uart3.dtbo
|
||
|
+
|
||
|
+dtbo-$(CONFIG_MACH_SUN7I) += \
|
||
|
+ sun7i-a20-analog-codec.dtbo \
|
||
|
+ sun7i-a20-can.dtbo \
|
||
|
+ sun7i-a20-i2c1.dtbo \
|
||
|
+ sun7i-a20-i2c2.dtbo \
|
||
|
+ sun7i-a20-i2c3.dtbo \
|
||
|
+ sun7i-a20-i2c4.dtbo \
|
||
|
+ sun7i-a20-mmc2.dtbo \
|
||
|
+ sun7i-a20-nand.dtbo \
|
||
|
+ sun7i-a20-pps-gpio.dtbo \
|
||
|
+ sun7i-a20-pwm.dtbo \
|
||
|
+ sun7i-a20-spdif-out.dtbo \
|
||
|
+ sun7i-a20-spi-add-cs1.dtbo \
|
||
|
+ sun7i-a20-spi-jedec-nor.dtbo \
|
||
|
+ sun7i-a20-spi-spidev.dtbo \
|
||
|
+ sun7i-a20-uart2.dtbo \
|
||
|
+ sun7i-a20-uart3.dtbo \
|
||
|
+ sun7i-a20-uart4.dtbo \
|
||
|
+ sun7i-a20-uart5.dtbo \
|
||
|
+ sun7i-a20-uart6.dtbo \
|
||
|
+ sun7i-a20-uart7.dtbo \
|
||
|
+ sun7i-a20-w1-gpio.dtbo
|
||
|
+
|
||
|
+dtbo-$(CONFIG_MACH_SUN8I) += \
|
||
|
+ sun8i-h3-analog-codec.dtbo \
|
||
|
+ sun8i-h3-cir.dtbo \
|
||
|
+ sun8i-h3-i2c0.dtbo \
|
||
|
+ sun8i-h3-i2c1.dtbo \
|
||
|
+ sun8i-h3-i2c2.dtbo \
|
||
|
+ sun8i-h3-pps-gpio.dtbo \
|
||
|
+ sun8i-h3-pwm.dtbo \
|
||
|
+ sun8i-h3-spdif-out.dtbo \
|
||
|
+ sun8i-h3-spi-add-cs1.dtbo \
|
||
|
+ sun8i-h3-spi-jedec-nor.dtbo \
|
||
|
+ sun8i-h3-spi-spidev.dtbo \
|
||
|
+ sun8i-h3-uart1.dtbo \
|
||
|
+ sun8i-h3-uart2.dtbo \
|
||
|
+ sun8i-h3-uart3.dtbo \
|
||
|
+ sun8i-h3-usbhost0.dtbo \
|
||
|
+ sun8i-h3-usbhost1.dtbo \
|
||
|
+ sun8i-h3-usbhost2.dtbo \
|
||
|
+ sun8i-h3-usbhost3.dtbo \
|
||
|
+ sun8i-h3-w1-gpio.dtbo \
|
||
|
+ sun8i-r40-i2c2.dtbo \
|
||
|
+ sun8i-r40-i2c3.dtbo \
|
||
|
+ sun8i-r40-spi-spidev0.dtbo \
|
||
|
+ sun8i-r40-spi-spidev1.dtbo \
|
||
|
+ sun8i-r40-uart2.dtbo \
|
||
|
+ sun8i-r40-uart4.dtbo \
|
||
|
+ sun8i-r40-uart5.dtbo \
|
||
|
+ sun8i-r40-uart7.dtbo
|
||
|
+
|
||
|
+scr-$(CONFIG_MACH_SUN4I) += sun4i-a10-fixup.scr
|
||
|
+scr-$(CONFIG_MACH_SUN5I) += sun5i-a13-fixup.scr
|
||
|
+scr-$(CONFIG_MACH_SUN7I) += sun7i-a20-fixup.scr
|
||
|
+scr-$(CONFIG_MACH_SUN8I) += sun8i-h3-fixup.scr
|
||
|
+
|
||
|
+dtbotxt-$(CONFIG_MACH_SUN4I) += README.sun4i-a10-overlays
|
||
|
+dtbotxt-$(CONFIG_MACH_SUN5I) += README.sun5i-a13-overlays
|
||
|
+dtbotxt-$(CONFIG_MACH_SUN7I) += README.sun7i-a20-overlays
|
||
|
+dtbotxt-$(CONFIG_MACH_SUN8I) += README.sun8i-h3-overlays
|
||
|
diff --git a/arch/arm/boot/dts/overlay/README.sun4i-a10-overlays b/arch/arm/boot/dts/overlay/README.sun4i-a10-overlays
|
||
|
new file mode 100644
|
||
|
index 0000000..e0795f1
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/README.sun4i-a10-overlays
|
||
|
@@ -0,0 +1,278 @@
|
||
|
+This document describes overlays provided in the kernel packages
|
||
|
+For generic Armbian overlays documentation please see
|
||
|
+https://docs.armbian.com/User-Guide_Allwinner_overlays/
|
||
|
+
|
||
|
+### Platform:
|
||
|
+
|
||
|
+sun4i-a10 (Allwinner A10)
|
||
|
+
|
||
|
+### Platform details:
|
||
|
+
|
||
|
+Supported pin banks: PB, PC, PD, PE, PG, PH, PI
|
||
|
+
|
||
|
+SPI controller 0 have 2 exposed hardware CS,
|
||
|
+other SPI controllers have only one hardware CS
|
||
|
+Reference: A10 User manual section 17.4.13, A10 datasheet section 5.2
|
||
|
+
|
||
|
+I2C bus 0 is used for the AXP209 PMIC
|
||
|
+
|
||
|
+### Provided overlays:
|
||
|
+
|
||
|
+- analog-codec
|
||
|
+- can
|
||
|
+- i2c1
|
||
|
+- i2c2
|
||
|
+- nand
|
||
|
+- pps-gpio
|
||
|
+- pwm
|
||
|
+- spdif-out
|
||
|
+- spi0
|
||
|
+- spi1
|
||
|
+- spi2
|
||
|
+- spi-jedec-nor
|
||
|
+- spi-spidev
|
||
|
+- uart1
|
||
|
+- uart2
|
||
|
+- uart3
|
||
|
+- uart4
|
||
|
+- uart5
|
||
|
+- uart6
|
||
|
+- uart7
|
||
|
+- w1-gpio
|
||
|
+
|
||
|
+### Overlay details:
|
||
|
+
|
||
|
+### analog-codec
|
||
|
+
|
||
|
+Activates SoC analog codec driver that provides Line Out and Mic In
|
||
|
+functionality
|
||
|
+
|
||
|
+## can
|
||
|
+
|
||
|
+Activates SoC CAN controller
|
||
|
+
|
||
|
+CAN pins (TX, RX): PH20, PH21
|
||
|
+
|
||
|
+### i2c1
|
||
|
+
|
||
|
+Activates TWI/I2C bus 1
|
||
|
+
|
||
|
+I2C1 pins (SCL, SDA): PB18, PB19
|
||
|
+
|
||
|
+### i2c2
|
||
|
+
|
||
|
+Activates TWI/I2C bus 2
|
||
|
+
|
||
|
+I2C2 pins (SCL, SDA): PB20, PB21
|
||
|
+
|
||
|
+### nand
|
||
|
+
|
||
|
+Activates NAND controller
|
||
|
+
|
||
|
+This overlay should not be used until mainline MLC NAND support
|
||
|
+allows using NAND storage reliably
|
||
|
+
|
||
|
+### pps-gpio
|
||
|
+
|
||
|
+Activates pulse-per-second GPIO client
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_pps_pin (pin)
|
||
|
+ Pin PPS source is connected to
|
||
|
+ Optional
|
||
|
+ Default: PI15
|
||
|
+
|
||
|
+param_pps_falling_edge (bool)
|
||
|
+ Assert by falling edge
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ When set (to 1), assert is indicated by a falling edge
|
||
|
+ (instead of by a rising edge)
|
||
|
+
|
||
|
+### pwm
|
||
|
+
|
||
|
+Activates hardware PWM controller
|
||
|
+
|
||
|
+PWM pins (PWM0, PWM1): PB2, PI3
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_pwm_pins (string)
|
||
|
+ PWM pins activated with this overlay
|
||
|
+ Optional
|
||
|
+ Default: both
|
||
|
+ Supported values: 0, 1, both
|
||
|
+ If set to 0 only PWM0 can be used,
|
||
|
+ if set to 1 then only PWM1 can be used,
|
||
|
+ if set to both (default), both PWM0 and PWM1 can be used
|
||
|
+
|
||
|
+### spdif-out
|
||
|
+
|
||
|
+Activates SPDIF/Toslink audio output
|
||
|
+
|
||
|
+SPDIF pin: PB13
|
||
|
+
|
||
|
+### spi0
|
||
|
+
|
||
|
+Activates SPI controller 0 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 0 pins (MOSI, MISO, SCK, CS0, CS1): PI12, PI13, PI11, PI10, PI14
|
||
|
+
|
||
|
+### spi1
|
||
|
+
|
||
|
+Activates SPI controller 1 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PI18, PI19, PI17, PI16
|
||
|
+
|
||
|
+### spi2
|
||
|
+
|
||
|
+Activates SPI controller 2 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 2 pins a (MOSI, MISO, SCK, CS0): PC21, PC22, PC20, PC19
|
||
|
+SPI 2 pins b (MOSI, MISO, SCK, CS0): PB16, PB17, PB15, PB14
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spi2_bus_pins (char)
|
||
|
+ SPI bus 2 pinmux variant
|
||
|
+ Optional
|
||
|
+ Default: a
|
||
|
+ Supported values: a, b
|
||
|
+ Determines what pins SPI bus 2 is exposed on if SPI 2 is used
|
||
|
+
|
||
|
+
|
||
|
+### 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, CS0, CS1): PI12, PI13, PI11, PI10, PI14
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PI18, PI19, PI17, PI16
|
||
|
+SPI 2 pins a (MOSI, MISO, SCK, CS0): PC21, PC22, PC20, PC19
|
||
|
+SPI 2 pins b (MOSI, MISO, SCK, CS0): PB16, PB17, PB15, PB14
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spinor_spi_bus (int)
|
||
|
+ SPI bus to activate SPI NOR flash support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1, 2
|
||
|
+
|
||
|
+param_spinor_max_freq (int)
|
||
|
+ Maximum SPI frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### spi-spidev
|
||
|
+
|
||
|
+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, CS0, CS1): PI12, PI13, PI11, PI10, PI14
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PI18, PI19, PI17, PI16
|
||
|
+SPI 2 pins a (MOSI, MISO, SCK, CS0): PC21, PC22, PC20, PC19
|
||
|
+SPI 2 pins b (MOSI, MISO, SCK, CS0): PB16, PB17, PB15, PB14
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spidev_spi_bus (int)
|
||
|
+ SPI bus to activate mcp2515 support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1, 2
|
||
|
+
|
||
|
+param_spidev_max_freq (int)
|
||
|
+ Maximum SPIdev frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### uart2
|
||
|
+
|
||
|
+Activates serial port 2 (/dev/ttyS2)
|
||
|
+
|
||
|
+UART 2 pins (TX, RX, RTS, CTS): PI18, PI19, PI16, PI17
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart2_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart3
|
||
|
+
|
||
|
+Activates serial port 3 (/dev/ttyS3)
|
||
|
+
|
||
|
+UART 3 pins a (TX, RX, RTS, CTS): PG6, PG7, PG8, PG9
|
||
|
+UART 3 pins b (TX, RX, RTS, CTS): PH0, PH1, PH2, PH3
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart3_pins (char)
|
||
|
+ Determines what pins UART 3 is exposed on
|
||
|
+ Optional
|
||
|
+ Default: a
|
||
|
+ Supported values: a, b
|
||
|
+
|
||
|
+param_uart3_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart4
|
||
|
+
|
||
|
+Activates serial port 4 (/dev/ttyS4)
|
||
|
+
|
||
|
+UART 4 pins a (TX, RX): PG10, PG11
|
||
|
+UART 4 pins b (TX, RX): PH4, PH5
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart4_pins (char)
|
||
|
+ Determines what pins UART 4 is exposed on
|
||
|
+ Optional
|
||
|
+ Default: a
|
||
|
+ Supported values: a, b
|
||
|
+
|
||
|
+### uart 5
|
||
|
+
|
||
|
+Activates serial port 5 (/dev/ttyS5)
|
||
|
+
|
||
|
+UART 5 pins (TX, RX): PH6, PH7
|
||
|
+
|
||
|
+### uart 6
|
||
|
+
|
||
|
+Activates serial port 6 (/dev/ttyS6)
|
||
|
+
|
||
|
+UART 6 pins (TX, RX): PI12, PI13
|
||
|
+
|
||
|
+### uart 7
|
||
|
+
|
||
|
+Activates serial port 7 (/dev/ttyS7)
|
||
|
+
|
||
|
+UART 7 pins (TX, RX): PI20, PI21
|
||
|
+
|
||
|
+### w1-gpio
|
||
|
+
|
||
|
+Activates 1-Wire GPIO master
|
||
|
+Requires an external pull-up resistor on the data pin
|
||
|
+or enabling the internal pull-up
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_w1_pin (pin)
|
||
|
+ Data pin for 1-Wire master
|
||
|
+ Optional
|
||
|
+ Default: PI15
|
||
|
+
|
||
|
+param_w1_pin_int_pullup (bool)
|
||
|
+ Enable internal pull-up for the data pin
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable the pull-up
|
||
|
+ This option should not be used with multiple sensors or long wires -
|
||
|
+ please use external pull-up resistor instead
|
||
|
diff --git a/arch/arm/boot/dts/overlay/README.sun5i-a13-overlays b/arch/arm/boot/dts/overlay/README.sun5i-a13-overlays
|
||
|
new file mode 100644
|
||
|
index 0000000..9f9653f
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/README.sun5i-a13-overlays
|
||
|
@@ -0,0 +1,172 @@
|
||
|
+This document describes overlays provided in the kernel packages
|
||
|
+For generic Armbian overlays documentation please see
|
||
|
+https://docs.armbian.com/User-Guide_Allwinner_overlays/
|
||
|
+
|
||
|
+### Platform:
|
||
|
+
|
||
|
+sun5i-a13 (Allwinner A13)
|
||
|
+
|
||
|
+### Platform details:
|
||
|
+
|
||
|
+I2C bus 0 is used for the AXP209 PMIC
|
||
|
+
|
||
|
+### Provided overlays:
|
||
|
+
|
||
|
+- analog-codec
|
||
|
+- i2c1
|
||
|
+- i2c2
|
||
|
+- nand
|
||
|
+- pwm
|
||
|
+- spi0
|
||
|
+- spi1
|
||
|
+- spi2
|
||
|
+- spi-jedec-nor
|
||
|
+- spi-spidev
|
||
|
+- uart0
|
||
|
+- uart1
|
||
|
+- uart2
|
||
|
+- uart3
|
||
|
+
|
||
|
+### Overlay details:
|
||
|
+
|
||
|
+### analog-codec
|
||
|
+
|
||
|
+Activates SoC analog codec driver that provides HP Out and Mic In
|
||
|
+functionality
|
||
|
+
|
||
|
+### i2c1
|
||
|
+
|
||
|
+Activates TWI/I2C bus 1
|
||
|
+
|
||
|
+I2C1 pins (SCL, SDA): PB15, PB16
|
||
|
+
|
||
|
+### i2c2
|
||
|
+
|
||
|
+Activates TWI/I2C bus 2
|
||
|
+
|
||
|
+I2C2 pins (SCL, SDA): PB17, PB18
|
||
|
+
|
||
|
+### nand
|
||
|
+
|
||
|
+Activates NAND controller
|
||
|
+
|
||
|
+This overlay should not be used until mainline MLC NAND support
|
||
|
+allows using NAND storage reliably
|
||
|
+
|
||
|
+### pwm
|
||
|
+
|
||
|
+Activates hardware PWM controller
|
||
|
+
|
||
|
+PWM pins (PWM0): PB2
|
||
|
+
|
||
|
+### spi0
|
||
|
+
|
||
|
+Activates SPI controller 0 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 0 pins (MOSI, MISO, SCK, CS0): PC0, PC1, PC2, PC3
|
||
|
+
|
||
|
+### spi1
|
||
|
+
|
||
|
+Activates SPI controller 1 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PG11, PG12, PG10, PG9
|
||
|
+
|
||
|
+### spi2
|
||
|
+
|
||
|
+Activates SPI controller 2 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 2 pins (MOSI, MISO, SCK, CS0): PE2, PE3, PE1, PE0
|
||
|
+
|
||
|
+### 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, CS0): PC0, PC1, PC2, PC3
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PG11, PG12, PG10, PG9
|
||
|
+SPI 2 pins (MOSI, MISO, SCK, CS0): PE2, PE3, PE1, PE0
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spinor_spi_bus (int)
|
||
|
+ SPI bus to activate SPI NOR flash support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1, 2
|
||
|
+
|
||
|
+param_spinor_max_freq (int)
|
||
|
+ Maximum SPI frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### spi-spidev
|
||
|
+
|
||
|
+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, CS0): PC0, PC1, PC2, PC3
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PG11, PG12, PG10, PG9
|
||
|
+SPI 2 pins (MOSI, MISO, SCK, CS0): PE2, PE3, PE1, PE0
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spidev_spi_bus (int)
|
||
|
+ SPI bus to activate mcp2515 support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1, 2
|
||
|
+
|
||
|
+param_spidev_max_freq (int)
|
||
|
+ Maximum SPIdev frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### uart 0
|
||
|
+
|
||
|
+Activates serial port 0 (/dev/ttyS0)
|
||
|
+
|
||
|
+UART 0 pins (TX, RX): PF2, PF4
|
||
|
+
|
||
|
+### uart 1
|
||
|
+
|
||
|
+Activates serial port 1 (/dev/ttyS1)
|
||
|
+
|
||
|
+UART 1 pins a (TX, RX): PE10, PE11
|
||
|
+UART 1 pins b (TX, RX): PG3, PG4
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart1_pins (char)
|
||
|
+ UART 1 pinmux variant
|
||
|
+ Optional
|
||
|
+ Default: a
|
||
|
+ Supported values: a, b
|
||
|
+ Determines what pins UART 1 is exposed on if UART 1 is used
|
||
|
+
|
||
|
+### uart2
|
||
|
+
|
||
|
+Activates serial port 2 (/dev/ttyS2)
|
||
|
+
|
||
|
+UART 2 pins (TX, RX, RTS, CTS): PD2, PD3, PD4, PD5
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart2_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart3
|
||
|
+
|
||
|
+Activates serial port 3 (/dev/ttyS3)
|
||
|
+
|
||
|
+UART 3 pins (TX, RX, RTS, CTS): PG9, PG10, PG12, PG11
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart3_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
diff --git a/arch/arm/boot/dts/overlay/README.sun7i-a20-overlays b/arch/arm/boot/dts/overlay/README.sun7i-a20-overlays
|
||
|
new file mode 100644
|
||
|
index 0000000..362f879
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/README.sun7i-a20-overlays
|
||
|
@@ -0,0 +1,348 @@
|
||
|
+This document describes overlays provided in the kernel packages
|
||
|
+For generic Armbian overlays documentation please see
|
||
|
+https://docs.armbian.com/User-Guide_Allwinner_overlays/
|
||
|
+
|
||
|
+### Platform:
|
||
|
+
|
||
|
+sun7i-a20 (Allwinner A20)
|
||
|
+
|
||
|
+### Platform details:
|
||
|
+
|
||
|
+Supported pin banks: PB, PC, PD, PE, PG, PH, PI
|
||
|
+
|
||
|
+SPI controller 0 have 2 exposed hardware CS,
|
||
|
+other SPI controllers have only one hardware CS
|
||
|
+Reference: A20 Datasheet sections 6.3.5.1, 1.19.2
|
||
|
+
|
||
|
+I2C bus 0 is used for the AXP209 PMIC
|
||
|
+
|
||
|
+### Provided overlays:
|
||
|
+
|
||
|
+- analog-codec
|
||
|
+- can
|
||
|
+- i2c1
|
||
|
+- i2c2
|
||
|
+- i2c3
|
||
|
+- i2c4
|
||
|
+- i2s0
|
||
|
+- i2s1
|
||
|
+- mmc2
|
||
|
+- nand
|
||
|
+- pps-gpio
|
||
|
+- pwm
|
||
|
+- spdif-out
|
||
|
+- spi0
|
||
|
+- spi1
|
||
|
+- spi2
|
||
|
+- spi-add-cs1
|
||
|
+- spi-jedec-nor
|
||
|
+- spi-spidev
|
||
|
+- uart1
|
||
|
+- uart2
|
||
|
+- uart3
|
||
|
+- uart4
|
||
|
+- uart5
|
||
|
+- uart6
|
||
|
+- uart7
|
||
|
+- w1-gpio
|
||
|
+
|
||
|
+### Overlay details:
|
||
|
+
|
||
|
+### analog-codec
|
||
|
+
|
||
|
+Activates SoC analog codec driver that provides Line Out and Mic In
|
||
|
+functionality
|
||
|
+
|
||
|
+## can
|
||
|
+
|
||
|
+Activates SoC CAN controller
|
||
|
+
|
||
|
+CAN pins (TX, RX): PH20, PH21
|
||
|
+
|
||
|
+### i2c1
|
||
|
+
|
||
|
+Activates TWI/I2C bus 1
|
||
|
+
|
||
|
+I2C1 pins (SCL, SDA): PB18, PB19
|
||
|
+
|
||
|
+### i2c2
|
||
|
+
|
||
|
+Activates TWI/I2C bus 2
|
||
|
+
|
||
|
+I2C2 pins (SCL, SDA): PB20, PB21
|
||
|
+
|
||
|
+### i2c3
|
||
|
+
|
||
|
+Activates TWI/I2C bus 3
|
||
|
+
|
||
|
+I2C3 pins (SCL, SDA): PI0, PI1
|
||
|
+
|
||
|
+### i2c4
|
||
|
+
|
||
|
+Activates TWI/I2C bus 4
|
||
|
+
|
||
|
+I2C4 pins (SCL, SDA): PI2, PI3
|
||
|
+
|
||
|
+### i2s0
|
||
|
+
|
||
|
+Activates SoC I2S controller 0
|
||
|
+
|
||
|
+I2S0 pins (MCLK, BCLK, LRCK, DO0, DO1, DO2, DO3, DI): PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12
|
||
|
+
|
||
|
+### i2s1
|
||
|
+
|
||
|
+Activates SoC I2S controller 1
|
||
|
+
|
||
|
+I2S1 pins (MCLK, BCLK, LRCK, DO, DI): PA9, PA14, PA15, PA16, PA17
|
||
|
+
|
||
|
+### mmc2
|
||
|
+
|
||
|
+Activates SD/MMC controller 2. To be used on boards with second SD slot, eMMC
|
||
|
+or tSD instead of NAND storage.
|
||
|
+
|
||
|
+MMC2 pins: PC6, PC7, PC8, PC9, PC10, PC11
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_mmc2_cd_pin (pin)
|
||
|
+ SD/MMC 2 card detect pin
|
||
|
+ Optional
|
||
|
+ Default: PH0
|
||
|
+
|
||
|
+param_mmc2_non_removable (bool)
|
||
|
+ Option for non-removable storage options on MMC 2 controller (eMMC or tSD)
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to use this option
|
||
|
+
|
||
|
+### nand
|
||
|
+
|
||
|
+Activates NAND controller
|
||
|
+
|
||
|
+This overlay should not be used until mainline MLC NAND support
|
||
|
+allows using NAND storage reliably
|
||
|
+
|
||
|
+### pps-gpio
|
||
|
+
|
||
|
+Activates pulse-per-second GPIO client
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_pps_pin (pin)
|
||
|
+ Pin PPS source is connected to
|
||
|
+ Optional
|
||
|
+ Default: PI15
|
||
|
+
|
||
|
+param_pps_falling_edge (bool)
|
||
|
+ Assert by falling edge
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ When set (to 1), assert is indicated by a falling edge
|
||
|
+ (instead of by a rising edge)
|
||
|
+
|
||
|
+### pwm
|
||
|
+
|
||
|
+Activates hardware PWM controller
|
||
|
+
|
||
|
+PWM pins (PWM0, PWM1): PB2, PI3
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_pwm_pins (string)
|
||
|
+ PWM pins activated with this overlay
|
||
|
+ Optional
|
||
|
+ Default: both
|
||
|
+ Supported values: 0, 1, both
|
||
|
+ If set to 0 only PWM0 can be used,
|
||
|
+ if set to 1 then only PWM1 can be used,
|
||
|
+ if set to both (default), both PWM0 and PWM1 can be used
|
||
|
+
|
||
|
+### spdif-out
|
||
|
+
|
||
|
+Activates SPDIF/Toslink audio output
|
||
|
+
|
||
|
+SPDIF pin: PB13
|
||
|
+
|
||
|
+### spi0
|
||
|
+
|
||
|
+Activates SPI controller 0 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 0 pins (MOSI, MISO, SCK, CS0, CS1): PI12, PI13, PI11, PI10, PI14
|
||
|
+
|
||
|
+### spi1
|
||
|
+
|
||
|
+Activates SPI controller 1 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PI18, PI19, PI17, PI16
|
||
|
+
|
||
|
+### spi2
|
||
|
+
|
||
|
+Activates SPI controller 2 to use it with other overlays and sets up the pin multiplexing for it
|
||
|
+
|
||
|
+SPI 2 pins a (MOSI, MISO, SCK, CS0): PC21, PC22, PC20, PC19
|
||
|
+SPI 2 pins b (MOSI, MISO, SCK, CS0): PB16, PB17, PB15, PB14
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spi2_bus_pins (char)
|
||
|
+ SPI bus 2 pinmux variant
|
||
|
+ Optional
|
||
|
+ Default: a
|
||
|
+ Supported values: a, b
|
||
|
+ Determines what pins SPI bus 2 is exposed on if SPI 2 is used
|
||
|
+
|
||
|
+### spi-add-cs1
|
||
|
+
|
||
|
+Activates SPI chip select 1 on SPI controller 0
|
||
|
+This overlay is required for using chip select 1 with other SPI overlays
|
||
|
+
|
||
|
+SPI 0 CS1 pin: PI14
|
||
|
+
|
||
|
+### 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, CS0, CS1): PI12, PI13, PI11, PI10, PI14
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PI18, PI19, PI17, PI16
|
||
|
+SPI 2 pins a (MOSI, MISO, SCK, CS0): PC21, PC22, PC20, PC19
|
||
|
+SPI 2 pins b (MOSI, MISO, SCK, CS0): PB16, PB17, PB15, PB14
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spinor_spi_bus (int)
|
||
|
+ SPI bus to activate SPI NOR flash support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1, 2
|
||
|
+
|
||
|
+param_spinor_spi_cs (int)
|
||
|
+ SPI chip select number for SPI NOR connected to SPI bus 0
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 on SPI 0 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spinor_max_freq (int)
|
||
|
+ Maximum SPI frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### spi-spidev
|
||
|
+
|
||
|
+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, CS0, CS1): PI12, PI13, PI11, PI10, PI14
|
||
|
+SPI 1 pins (MOSI, MISO, SCK, CS0): PI18, PI19, PI17, PI16
|
||
|
+SPI 2 pins a (MOSI, MISO, SCK, CS0): PC21, PC22, PC20, PC19
|
||
|
+SPI 2 pins b (MOSI, MISO, SCK, CS0): PB16, PB17, PB15, PB14
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spidev_spi_bus (int)
|
||
|
+ SPI bus to activate mcp2515 support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1, 2
|
||
|
+
|
||
|
+param_spidev_spi_cs (int)
|
||
|
+ SPI chip select number for SPIdev on SPI bus 0
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 on SPI 0 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spidev_max_freq (int)
|
||
|
+ Maximum SPIdev frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### uart2
|
||
|
+
|
||
|
+Activates serial port 2 (/dev/ttyS2)
|
||
|
+
|
||
|
+UART 2 pins (TX, RX, RTS, CTS): PI18, PI19, PI16, PI17
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart2_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart3
|
||
|
+
|
||
|
+Activates serial port 3 (/dev/ttyS3)
|
||
|
+
|
||
|
+UART 3 pins a (TX, RX, RTS, CTS): PG6, PG7, PG8, PG9
|
||
|
+UART 3 pins b (TX, RX, RTS, CTS): PH0, PH1, PH2, PH3
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart3_pins (char)
|
||
|
+ Determines what pins UART 3 is exposed on
|
||
|
+ Optional
|
||
|
+ Default: a
|
||
|
+ Supported values: a, b
|
||
|
+
|
||
|
+param_uart3_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart4
|
||
|
+
|
||
|
+Activates serial port 4 (/dev/ttyS4)
|
||
|
+
|
||
|
+UART 4 pins a (TX, RX): PG10, PG11
|
||
|
+UART 4 pins b (TX, RX): PH4, PH5
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart4_pins (char)
|
||
|
+ Determines what pins UART 4 is exposed on
|
||
|
+ Optional
|
||
|
+ Default: a
|
||
|
+ Supported values: a, b
|
||
|
+
|
||
|
+### uart 5
|
||
|
+
|
||
|
+Activates serial port 5 (/dev/ttyS5)
|
||
|
+
|
||
|
+UART 5 pins (TX, RX): PH6, PH7
|
||
|
+
|
||
|
+### uart 6
|
||
|
+
|
||
|
+Activates serial port 6 (/dev/ttyS6)
|
||
|
+
|
||
|
+UART 6 pins (TX, RX): PI12, PI13
|
||
|
+
|
||
|
+### uart 7
|
||
|
+
|
||
|
+Activates serial port 7 (/dev/ttyS7)
|
||
|
+
|
||
|
+UART 7 pins (TX, RX): PI20, PI21
|
||
|
+
|
||
|
+### w1-gpio
|
||
|
+
|
||
|
+Activates 1-Wire GPIO master
|
||
|
+Requires an external pull-up resistor on the data pin
|
||
|
+or enabling the internal pull-up
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_w1_pin (pin)
|
||
|
+ Data pin for 1-Wire master
|
||
|
+ Optional
|
||
|
+ Default: PI15
|
||
|
+
|
||
|
+param_w1_pin_int_pullup (bool)
|
||
|
+ Enable internal pull-up for the data pin
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable the pull-up
|
||
|
+ This option should not be used with multiple sensors or long wires -
|
||
|
+ please use external pull-up resistor instead
|
||
|
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 0000000..3029734
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/README.sun8i-h3-overlays
|
||
|
@@ -0,0 +1,250 @@
|
||
|
+This document describes overlays provided in the kernel packages
|
||
|
+For generic Armbian overlays documentation please see
|
||
|
+https://docs.armbian.com/User-Guide_Allwinner_overlays/
|
||
|
+
|
||
|
+### Platform:
|
||
|
+
|
||
|
+sun8i-h3 (Allwinner H3)
|
||
|
+
|
||
|
+### Platform details:
|
||
|
+
|
||
|
+Supported pin banks: PA, PC, PD, PG
|
||
|
+
|
||
|
+Both SPI controllers have only one hardware CS pin exposed,
|
||
|
+adding fixed software (GPIO) chip selects is possible with a separate overlay
|
||
|
+
|
||
|
+### Provided overlays:
|
||
|
+
|
||
|
+- analog-codec
|
||
|
+- cir
|
||
|
+- i2c0
|
||
|
+- i2c1
|
||
|
+- i2c2
|
||
|
+- pps-gpio
|
||
|
+- pwm
|
||
|
+- spdif-out
|
||
|
+- spi-add-cs1
|
||
|
+- spi-jedec-nor
|
||
|
+- spi-spidev
|
||
|
+- uart1
|
||
|
+- uart2
|
||
|
+- uart3
|
||
|
+- usbhost0
|
||
|
+- usbhost1
|
||
|
+- usbhost2
|
||
|
+- usbhost3
|
||
|
+- w1-gpio
|
||
|
+
|
||
|
+### Overlay details:
|
||
|
+
|
||
|
+### analog-codec
|
||
|
+
|
||
|
+Activates SoC analog codec driver that provides Line Out and Mic In
|
||
|
+functionality
|
||
|
+
|
||
|
+### cir
|
||
|
+
|
||
|
+Activates CIR (Infrared remote) receiver
|
||
|
+
|
||
|
+CIR pin: PL11
|
||
|
+
|
||
|
+### i2c0
|
||
|
+
|
||
|
+Activates TWI/I2C bus 0
|
||
|
+
|
||
|
+I2C0 pins (SCL, SDA): PA11, PA12
|
||
|
+
|
||
|
+### i2c1
|
||
|
+
|
||
|
+Activates TWI/I2C bus 1
|
||
|
+
|
||
|
+I2C1 pins (SCL, SDA): PA18, PA19
|
||
|
+
|
||
|
+### i2c2
|
||
|
+
|
||
|
+Activates TWI/I2C bus 2
|
||
|
+
|
||
|
+I2C2 pins (SCL, SDA): PE12, PE13
|
||
|
+
|
||
|
+On most board this bus is wired to Camera (CSI) socket
|
||
|
+
|
||
|
+### pps-gpio
|
||
|
+
|
||
|
+Activates pulse-per-second GPIO client
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_pps_pin (pin)
|
||
|
+ Pin PPS source is connected to
|
||
|
+ Optional
|
||
|
+ Default: PD14
|
||
|
+
|
||
|
+param_pps_falling_edge (bool)
|
||
|
+ Assert by falling edge
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ When set (to 1), assert is indicated by a falling edge
|
||
|
+ (instead of by a rising edge)
|
||
|
+
|
||
|
+### pwm
|
||
|
+
|
||
|
+Activates hardware PWM controller
|
||
|
+
|
||
|
+PWM pin: PA5
|
||
|
+
|
||
|
+Pin PA5 is used as UART0 RX by default, so if this overlay is activated,
|
||
|
+UART0 and kernel console on ttyS0 will be disabled
|
||
|
+
|
||
|
+### spdif-out
|
||
|
+
|
||
|
+Activates SPDIF/Toslink audio output
|
||
|
+
|
||
|
+SPDIF pin: PA17
|
||
|
+
|
||
|
+### spi-add-cs1
|
||
|
+
|
||
|
+Adds support for using SPI chip select 1 with GPIO for both SPI controllers
|
||
|
+Respective GPIO will be claimed only if controller is enabled by another
|
||
|
+overlay
|
||
|
+This overlay is required for using chip select 1 with other SPI overlays
|
||
|
+Due to the u-boot limitations CS1 pin can't be customized by a parameter, but
|
||
|
+it can be changed by using an edited copy of this overlay
|
||
|
+A total of 4 chip selects can be used with custom overlays (1 HW + 3 GPIO)
|
||
|
+
|
||
|
+SPI 0 pins (CS1): PA21
|
||
|
+SPI 1 pins (CS1): PA10
|
||
|
+
|
||
|
+### 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
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spinor_spi_bus (int)
|
||
|
+ SPI bus to activate SPI NOR flash support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1
|
||
|
+
|
||
|
+param_spinor_spi_cs (int)
|
||
|
+ SPI chip select number
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spinor_max_freq (int)
|
||
|
+ Maximum SPI frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### spi-spidev
|
||
|
+
|
||
|
+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
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spidev_spi_bus (int)
|
||
|
+ SPI bus to activate SPIdev support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1
|
||
|
+
|
||
|
+param_spidev_spi_cs (int)
|
||
|
+ SPI chip select number
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spidev_max_freq (int)
|
||
|
+ Maximum SPIdev frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### uart1
|
||
|
+
|
||
|
+Activates serial port 1 (/dev/ttyS1)
|
||
|
+
|
||
|
+UART 1 pins (TX, RX, RTS, CTS): PG6, PG7, PG8, PG9
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart1_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable
|
||
|
+
|
||
|
+### uart2
|
||
|
+
|
||
|
+Activates serial port 2 (/dev/ttyS2)
|
||
|
+
|
||
|
+UART 2 pins (TX, RX, RTS, CTS): PA0, PA1, PA2, PA3
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart2_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart3
|
||
|
+
|
||
|
+Activates serial port 3 (/dev/ttyS3)
|
||
|
+
|
||
|
+UART 3 pins (TX, RX, RTS, CTS): PA13, PA14, PA15, PA16
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart3_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### usbhost0
|
||
|
+
|
||
|
+Activates USB host controller 0
|
||
|
+
|
||
|
+### usbhost1
|
||
|
+
|
||
|
+Activates USB host controller 1
|
||
|
+
|
||
|
+### usbhost2
|
||
|
+
|
||
|
+Activates USB host controller 2
|
||
|
+
|
||
|
+### usbhost3
|
||
|
+
|
||
|
+Activates USB host controller 3
|
||
|
+
|
||
|
+### w1-gpio
|
||
|
+
|
||
|
+Activates 1-Wire GPIO master
|
||
|
+Requires an external pull-up resistor on the data pin
|
||
|
+or enabling the internal pull-up
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_w1_pin (pin)
|
||
|
+ Data pin for 1-Wire master
|
||
|
+ Optional
|
||
|
+ Default: PD14
|
||
|
+
|
||
|
+param_w1_pin_int_pullup (bool)
|
||
|
+ Enable internal pull-up for the data pin
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable the pull-up
|
||
|
+ This option should not be used with multiple devices, parasite power setup
|
||
|
+ or long wires - please use external pull-up resistor instead
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-analog-codec.dts b/arch/arm/boot/dts/overlay/sun4i-a10-analog-codec.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..9254e22
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-analog-codec.dts
|
||
|
@@ -0,0 +1,13 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&codec>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-can.dts b/arch/arm/boot/dts/overlay/sun4i-a10-can.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..1a9511d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-can.dts
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&can0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&can0_ph_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-fixup.scr-cmd b/arch/arm/boot/dts/overlay/sun4i-a10-fixup.scr-cmd
|
||
|
new file mode 100644
|
||
|
index 0000000..d80f2fc
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-fixup.scr-cmd
|
||
|
@@ -0,0 +1,124 @@
|
||
|
+# overlays fixup script
|
||
|
+# implements (or rather substitutes) overlay arguments functionality
|
||
|
+# using u-boot scripting, environment variables and "fdt" command
|
||
|
+
|
||
|
+# setexpr test_var ${tmp_bank} - A
|
||
|
+# works only for hex numbers (A-F)
|
||
|
+
|
||
|
+setenv decompose_pin 'setexpr tmp_bank sub "P(B|C|D|E|G|H|I)\\d+" "\\1";
|
||
|
+setexpr tmp_pin sub "P\\S(\\d+)" "\\1";
|
||
|
+test "${tmp_bank}" = "B" && setenv tmp_bank 1;
|
||
|
+test "${tmp_bank}" = "C" && setenv tmp_bank 2;
|
||
|
+test "${tmp_bank}" = "D" && setenv tmp_bank 3;
|
||
|
+test "${tmp_bank}" = "E" && setenv tmp_bank 4;
|
||
|
+test "${tmp_bank}" = "G" && setenv tmp_bank 6;
|
||
|
+test "${tmp_bank}" = "H" && setenv tmp_bank 7;
|
||
|
+test "${tmp_bank}" = "I" && setenv tmp_bank 8'
|
||
|
+
|
||
|
+if test -n "${param_spinor_spi_bus}"; then
|
||
|
+ test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c05000"
|
||
|
+ test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c06000"
|
||
|
+ test "${param_spinor_spi_bus}" = "2" && setenv tmp_spi_path "spi@1c17000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash status "okay"
|
||
|
+ if test -n "${param_spinor_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash spi-max-frequency "<${param_spinor_max_freq}>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_spidev_spi_bus}"; then
|
||
|
+ test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c05000"
|
||
|
+ test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c06000"
|
||
|
+ test "${param_spidev_spi_bus}" = "2" && setenv tmp_spi_path "spi@1c17000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
||
|
+ if test -n "${param_spidev_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_spi2_bus_pins}" = "b"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/spi2@1 phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/spi2_cs0@1 phandle
|
||
|
+ fdt set /soc/spi@1c17000 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/spi@1c17000 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_pps_pin}"; then
|
||
|
+ setenv tmp_bank "${param_pps_pin}"
|
||
|
+ setenv tmp_pin "${param_pps_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/pps_pins pins "${param_pps_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pps_falling_edge}" = "1"; then
|
||
|
+ fdt set /pps@0 assert-falling-edge
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pwm_pins}" = "0"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/pwm0@0
|
||
|
+ fdt set /soc/pwm@1c20e00 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pwm_pins}" = "1"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/pwm1@0
|
||
|
+ fdt set /soc/pwm@1c20e00 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_w1_pin}"; then
|
||
|
+ setenv tmp_bank "${param_w1_pin}"
|
||
|
+ setenv tmp_pin "${param_w1_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins pins "${param_w1_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_w1_pin_int_pullup}" = "1"; then
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins bias-pull-up
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart2_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/uart2@0 phandle
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart3_pins}" = "b"; then
|
||
|
+ if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart3_pins_b phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart3_pins_b_rts_cts phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+ else
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/uart3_pins_b phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+ fi
|
||
|
+else
|
||
|
+ if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart3_pins_a phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart3_pins_a_rts_cts phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+ fi
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart4_pins}" = "b"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/uart4@1 phandle
|
||
|
+ fdt set /soc/serial@1c29000 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-i2c1.dts b/arch/arm/boot/dts/overlay/sun4i-a10-i2c1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..4c104bf
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-i2c1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c1 = "/soc@1c00000/i2c@1c2b000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-i2c2.dts b/arch/arm/boot/dts/overlay/sun4i-a10-i2c2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..1c2c3e9
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-i2c2.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c2 = "/soc@1c00000/i2c@1c2b400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c2_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-nand.dts b/arch/arm/boot/dts/overlay/sun4i-a10-nand.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..f0d4c2f
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-nand.dts
|
||
|
@@ -0,0 +1,103 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ nand_pins_a: nand_pins@0 {
|
||
|
+ pins = "PC0", "PC1", "PC2",
|
||
|
+ "PC5", "PC8", "PC9", "PC10",
|
||
|
+ "PC11", "PC12", "PC13", "PC14",
|
||
|
+ "PC15", "PC16";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs0_pins_a: nand_cs@0 {
|
||
|
+ pins = "PC4";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs1_pins_a: nand_cs@1 {
|
||
|
+ pins = "PC3";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs2_pins_a: nand_cs@2 {
|
||
|
+ pins = "PC17";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs3_pins_a: nand_cs@3 {
|
||
|
+ pins = "PC18";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_rb0_pins_a: nand_rb@0 {
|
||
|
+ pins = "PC6";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_rb1_pins_a: nand_rb@1 {
|
||
|
+ pins = "PC7";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&nfc>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&nand_pins_a>, <&nand_cs0_pins_a>, <&nand_rb0_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+
|
||
|
+ nand@0 {
|
||
|
+ reg = <0>;
|
||
|
+ allwinner,rb = <0>;
|
||
|
+ nand-ecc-mode = "hw";
|
||
|
+ nand-on-flash-bbt;
|
||
|
+
|
||
|
+ partitions {
|
||
|
+ compatible = "fixed-partitions";
|
||
|
+ #address-cells = <2>;
|
||
|
+ #size-cells = <2>;
|
||
|
+
|
||
|
+ partition@0 {
|
||
|
+ label = "SPL";
|
||
|
+ reg = <0x0 0x0 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@400000 {
|
||
|
+ label = "SPL.backup";
|
||
|
+ reg = <0x0 0x400000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@800000 {
|
||
|
+ label = "U-Boot";
|
||
|
+ reg = <0x0 0x800000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@c00000 {
|
||
|
+ label = "U-Boot.backup";
|
||
|
+ reg = <0x0 0xc00000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1000000 {
|
||
|
+ label = "env";
|
||
|
+ reg = <0x0 0x1000000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1400000 {
|
||
|
+ label = "rootfs";
|
||
|
+ reg = <0x0 0xa00000 0x01 0xff000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-pps-gpio.dts b/arch/arm/boot/dts/overlay/sun4i-a10-pps-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6031fc5
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-pps-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ pps_pins: pps_pins {
|
||
|
+ pins = "PI15";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ pps@0 {
|
||
|
+ compatible = "pps-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pps_pins>;
|
||
|
+ gpios = <&pio 8 15 0>; /* PI15 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-pwm.dts b/arch/arm/boot/dts/overlay/sun4i-a10-pwm.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..ba88500
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-pwm.dts
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pwm>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pwm0_pin>, <&pwm1_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-spdif-out.dts b/arch/arm/boot/dts/overlay/sun4i-a10-spdif-out.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..234dfc8
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-spdif-out.dts
|
||
|
@@ -0,0 +1,38 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&spdif>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spdif_tx_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ sound {
|
||
|
+ compatible = "simple-audio-card";
|
||
|
+ simple-audio-card,name = "On-board SPDIF";
|
||
|
+
|
||
|
+ simple-audio-card,cpu {
|
||
|
+ sound-dai = <&spdif>;
|
||
|
+ };
|
||
|
+
|
||
|
+ simple-audio-card,codec {
|
||
|
+ sound-dai = <&spdif_out>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ spdif_out: spdif-out {
|
||
|
+ #sound-dai-cells = <0>;
|
||
|
+ compatible = "linux,spdif-dit";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-spi-jedec-nor.dts b/arch/arm/boot/dts/overlay/sun4i-a10-spi-jedec-nor.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..ee4ff6f
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-spi-jedec-nor.dts
|
||
|
@@ -0,0 +1,57 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc@1c00000/spi@1c05000";
|
||
|
+ spi1 = "/soc@1c00000/spi@1c06000";
|
||
|
+ spi2 = "/soc@1c00000/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-spi-spidev.dts b/arch/arm/boot/dts/overlay/sun4i-a10-spi-spidev.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..5667aec
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-spi-spidev.dts
|
||
|
@@ -0,0 +1,57 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc@1c00000/spi@1c05000";
|
||
|
+ spi1 = "/soc@1c00000/spi@1c06000";
|
||
|
+ spi2 = "/soc@1c00000/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-spi0.dts b/arch/arm/boot/dts/overlay/sun4i-a10-spi0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..cad50d8
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-spi0.dts
|
||
|
@@ -0,0 +1,23 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc@1c00000/spi@1c05000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-0 = <&spi0_pi_pins>;
|
||
|
+ pinctrl-1 = <&spi0_cs0_pi_pin>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-spi1.dts b/arch/arm/boot/dts/overlay/sun4i-a10-spi1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..8c606d6
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-spi1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi1 = "/soc@1c00000/spi@1c06000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spi1_pins>, <&spi1_cs0_pin>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-spi2.dts b/arch/arm/boot/dts/overlay/sun4i-a10-spi2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..145f285
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-spi2.dts
|
||
|
@@ -0,0 +1,23 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi2 = "/soc@1c00000/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-0 = <&spi2_pins_a>;
|
||
|
+ pinctrl-1 = <&spi2_cs0_pins_a>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-uart2.dts b/arch/arm/boot/dts/overlay/sun4i-a10-uart2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..89bb44d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-uart2.dts
|
||
|
@@ -0,0 +1,37 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial2 = "/soc@1c00000/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart2_pins_a: uart2@0 {
|
||
|
+ pins = "PI16", "PI17", "PI18", "PI19";
|
||
|
+ function = "uart2";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart2_pins_a_2: uart2@1 {
|
||
|
+ pins = "PI18", "PI19";
|
||
|
+ function = "uart2";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart2_pins_a_2>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-uart3.dts b/arch/arm/boot/dts/overlay/sun4i-a10-uart3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..f599d92
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-uart3.dts
|
||
|
@@ -0,0 +1,47 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial3 = "/soc@1c00000/serial@1c28c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart3_pins_a: uart3@0 {
|
||
|
+ pins = "PG6", "PG7";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart3_pins_a_rts_cts: uart3@1 {
|
||
|
+ pins = "PG8", "PG9";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart3_pins_b: uart3@2 {
|
||
|
+ pins = "PH0", "PH1";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart3_pins_b_rts_cts: uart3@3 {
|
||
|
+ pins = "PH2", "PH3";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart3_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-uart4.dts b/arch/arm/boot/dts/overlay/sun4i-a10-uart4.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b5e562a
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-uart4.dts
|
||
|
@@ -0,0 +1,37 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial4 = "/soc@1c00000/serial@1c29000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart4_pins_a: uart4@0 {
|
||
|
+ pins = "PG10", "PG11";
|
||
|
+ function = "uart4";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart4_pins_b: uart4@1 {
|
||
|
+ pins = "PH4", "PH5";
|
||
|
+ function = "uart4";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart4>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart4_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-uart5.dts b/arch/arm/boot/dts/overlay/sun4i-a10-uart5.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..12c3f96
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-uart5.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial5 = "/soc@1c00000/serial@1c29400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart5_pins_a: uart5@0 {
|
||
|
+ pins = "PH6", "PH7";
|
||
|
+ function = "uart5";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart5>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart5_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-uart6.dts b/arch/arm/boot/dts/overlay/sun4i-a10-uart6.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6be41d5
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-uart6.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial6 = "/soc@1c00000/serial@1c29800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart6_pins_a: uart6@0 {
|
||
|
+ pins = "PI12", "PI13";
|
||
|
+ function = "uart6";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart6>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart6_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-uart7.dts b/arch/arm/boot/dts/overlay/sun4i-a10-uart7.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..967f6af
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-uart7.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial7 = "/soc@1c00000/serial@1c29c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart7_pins_a: uart7@0 {
|
||
|
+ pins = "PI20", "PI21";
|
||
|
+ function = "uart7";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart7>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart7_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun4i-a10-w1-gpio.dts b/arch/arm/boot/dts/overlay/sun4i-a10-w1-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..41da08c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun4i-a10-w1-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ w1_pins: w1_pins {
|
||
|
+ pins = "PI15";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ onewire@0 {
|
||
|
+ compatible = "w1-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&w1_pins>;
|
||
|
+ gpios = <&pio 8 15 0>; /* PI15 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-analog-codec.dts b/arch/arm/boot/dts/overlay/sun5i-a13-analog-codec.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..60e2717
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-analog-codec.dts
|
||
|
@@ -0,0 +1,13 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun4i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&codec>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-fixup.scr-cmd b/arch/arm/boot/dts/overlay/sun5i-a13-fixup.scr-cmd
|
||
|
new file mode 100644
|
||
|
index 0000000..9589767
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-fixup.scr-cmd
|
||
|
@@ -0,0 +1,48 @@
|
||
|
+# overlays fixup script
|
||
|
+# implements (or rather substitutes) overlay arguments functionality
|
||
|
+# using u-boot scripting, environment variables and "fdt" command
|
||
|
+
|
||
|
+if test -n "${param_spinor_spi_bus}"; then
|
||
|
+ test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c05000"
|
||
|
+ test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c06000"
|
||
|
+ test "${param_spinor_spi_bus}" = "2" && setenv tmp_spi_path "spi@1c17000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash status "okay"
|
||
|
+ if test -n "${param_spinor_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash spi-max-frequency "<${param_spinor_max_freq}>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_spidev_spi_bus}"; then
|
||
|
+ test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c05000"
|
||
|
+ test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c06000"
|
||
|
+ test "${param_spidev_spi_bus}" = "2" && setenv tmp_spi_path "spi@1c17000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
||
|
+ if test -n "${param_spidev_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart1_pins}" = "b"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c28400/uart1@1 phandle
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart2_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart2@0 phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart2-cts-rts@0 phandle
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-0 "<${tmp_phandle1}>, <${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart3@0 phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart3-cts-rts@0 phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle1}>, <${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-i2c1.dts b/arch/arm/boot/dts/overlay/sun5i-a13-i2c1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..444c32c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-i2c1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c1 = "/soc@1c00000/i2c@1c2b000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-i2c2.dts b/arch/arm/boot/dts/overlay/sun5i-a13-i2c2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..7a30681
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-i2c2.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c2 = "/soc@1c00000/i2c@1c2b400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c2_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-nand.dts b/arch/arm/boot/dts/overlay/sun5i-a13-nand.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..0c5fc89
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-nand.dts
|
||
|
@@ -0,0 +1,60 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&nfc>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&nand_pins>, <&nand_cs0_pin>, <&nand_rb0_pin>;
|
||
|
+ status = "okay";
|
||
|
+
|
||
|
+ nand@0 {
|
||
|
+ reg = <0>;
|
||
|
+ allwinner,rb = <0>;
|
||
|
+ nand-ecc-mode = "hw";
|
||
|
+ nand-on-flash-bbt;
|
||
|
+
|
||
|
+ partitions {
|
||
|
+ compatible = "fixed-partitions";
|
||
|
+ #address-cells = <2>;
|
||
|
+ #size-cells = <2>;
|
||
|
+
|
||
|
+ partition@0 {
|
||
|
+ label = "SPL";
|
||
|
+ reg = <0x0 0x0 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@400000 {
|
||
|
+ label = "SPL.backup";
|
||
|
+ reg = <0x0 0x400000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@800000 {
|
||
|
+ label = "U-Boot";
|
||
|
+ reg = <0x0 0x800000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@c00000 {
|
||
|
+ label = "U-Boot.backup";
|
||
|
+ reg = <0x0 0xc00000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1000000 {
|
||
|
+ label = "env";
|
||
|
+ reg = <0x0 0x1000000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1400000 {
|
||
|
+ label = "rootfs";
|
||
|
+ reg = <0x0 0xa00000 0x01 0xff000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-pwm.dts b/arch/arm/boot/dts/overlay/sun5i-a13-pwm.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..54f5d51
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-pwm.dts
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pwm>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pwm0_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-spi-jedec-nor.dts b/arch/arm/boot/dts/overlay/sun5i-a13-spi-jedec-nor.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..8cebb0b
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-spi-jedec-nor.dts
|
||
|
@@ -0,0 +1,57 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c05000";
|
||
|
+ spi1 = "/soc/spi@1c06000";
|
||
|
+ spi2 = "/soc/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-spi-spidev.dts b/arch/arm/boot/dts/overlay/sun5i-a13-spi-spidev.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..ced1a0e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-spi-spidev.dts
|
||
|
@@ -0,0 +1,57 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a10";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c05000";
|
||
|
+ spi1 = "/soc/spi@1c06000";
|
||
|
+ spi2 = "/soc/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-spi0.dts b/arch/arm/boot/dts/overlay/sun5i-a13-spi0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b23a754
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-spi0.dts
|
||
|
@@ -0,0 +1,38 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c05000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ spi0_pins_a: spi0@0 {
|
||
|
+ pins = "PC0", "PC1", "PC2";
|
||
|
+ function = "spi0";
|
||
|
+ };
|
||
|
+
|
||
|
+ spi0_cs0_pins_a: spi0-cs0@0 {
|
||
|
+ pins = "PC3";
|
||
|
+ function = "spi0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-0 = <&spi0_pins_a>;
|
||
|
+ pinctrl-1 = <&spi0_cs0_pins_a>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-spi1.dts b/arch/arm/boot/dts/overlay/sun5i-a13-spi1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..cc0af5d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-spi1.dts
|
||
|
@@ -0,0 +1,39 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi1 = "/soc/spi@1c06000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ spi1_pins_a: spi1@0 {
|
||
|
+ pins = "PG10", "PG11", "PG12";
|
||
|
+ function = "spi1";
|
||
|
+ };
|
||
|
+
|
||
|
+ spi1_cs0_pins_a: spi1-cs0@0 {
|
||
|
+ pins = "PG9";
|
||
|
+ function = "spi1";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spi1_pins_a>, <&spi1_cs0_pins_a>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-spi2.dts b/arch/arm/boot/dts/overlay/sun5i-a13-spi2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6cf5c41
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-spi2.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi2 = "/soc/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spi2_pe_pins>, <&spi2_cs0_pe_pin>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-uart0.dts b/arch/arm/boot/dts/overlay/sun5i-a13-uart0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6edad42
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-uart0.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ uart0 = "/soc@1c00000/serial@1c28000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart0_pa_pins: uart0@0 {
|
||
|
+ pins = "PF2", "PF4";
|
||
|
+ function = "uart0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart0_pa_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-uart1.dts b/arch/arm/boot/dts/overlay/sun5i-a13-uart1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..675b701
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-uart1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ uart1 = "/soc@1c00000/serial@1c28400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart1_pe_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-uart2.dts b/arch/arm/boot/dts/overlay/sun5i-a13-uart2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b3c4e3d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-uart2.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ uart2 = "/soc@1c00000/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart2_pd_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun5i-a13-uart3.dts b/arch/arm/boot/dts/overlay/sun5i-a13-uart3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..15c25d0
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun5i-a13-uart3.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun5i-a13";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ uart3 = "/soc@1c00000/serial@1c28c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart3_pg_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-analog-codec.dts b/arch/arm/boot/dts/overlay/sun7i-a20-analog-codec.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..e1a70c5
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-analog-codec.dts
|
||
|
@@ -0,0 +1,13 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&codec>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-can.dts b/arch/arm/boot/dts/overlay/sun7i-a20-can.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..65aebcd
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-can.dts
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&can0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&can0_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-fixup.scr-cmd b/arch/arm/boot/dts/overlay/sun7i-a20-fixup.scr-cmd
|
||
|
new file mode 100644
|
||
|
index 0000000..db3cec8
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-fixup.scr-cmd
|
||
|
@@ -0,0 +1,143 @@
|
||
|
+# overlays fixup script
|
||
|
+# implements (or rather substitutes) overlay arguments functionality
|
||
|
+# using u-boot scripting, environment variables and "fdt" command
|
||
|
+
|
||
|
+# setexpr test_var ${tmp_bank} - A
|
||
|
+# works only for hex numbers (A-F)
|
||
|
+
|
||
|
+setenv decompose_pin 'setexpr tmp_bank sub "P(B|C|D|E|G|H|I)\\d+" "\\1";
|
||
|
+setexpr tmp_pin sub "P\\S(\\d+)" "\\1";
|
||
|
+test "${tmp_bank}" = "B" && setenv tmp_bank 1;
|
||
|
+test "${tmp_bank}" = "C" && setenv tmp_bank 2;
|
||
|
+test "${tmp_bank}" = "D" && setenv tmp_bank 3;
|
||
|
+test "${tmp_bank}" = "E" && setenv tmp_bank 4;
|
||
|
+test "${tmp_bank}" = "G" && setenv tmp_bank 6;
|
||
|
+test "${tmp_bank}" = "H" && setenv tmp_bank 7;
|
||
|
+test "${tmp_bank}" = "I" && setenv tmp_bank 8'
|
||
|
+
|
||
|
+if test -n "${param_spinor_spi_bus}"; then
|
||
|
+ test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c05000"
|
||
|
+ test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c06000"
|
||
|
+ test "${param_spinor_spi_bus}" = "2" && setenv tmp_spi_path "spi@1c17000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash status "okay"
|
||
|
+ if test -n "${param_spinor_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash spi-max-frequency "<${param_spinor_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spinor_spi_bus}" = "0" && test "${param_spinor_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_spidev_spi_bus}"; then
|
||
|
+ test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c05000"
|
||
|
+ test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c06000"
|
||
|
+ test "${param_spidev_spi_bus}" = "2" && setenv tmp_spi_path "spi@1c17000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
||
|
+ if test -n "${param_spidev_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spidev_spi_bus}" = "0" && test "${param_spidev_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_spi2_bus_pins}" = "b"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/spi2@1 phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/spi2_cs0@1 phandle
|
||
|
+ fdt set /soc/spi@1c17000 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/spi@1c17000 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_pps_pin}"; then
|
||
|
+ setenv tmp_bank "${param_pps_pin}"
|
||
|
+ setenv tmp_pin "${param_pps_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/pps_pins pins "${param_pps_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pps_falling_edge}" = "1"; then
|
||
|
+ fdt set /pps@0 assert-falling-edge
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pwm_pins}" = "0"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/pwm0@0
|
||
|
+ fdt set /soc/pwm@1c20e00 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pwm_pins}" = "1"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/pwm1@0
|
||
|
+ fdt set /soc/pwm@1c20e00 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_w1_pin}"; then
|
||
|
+ setenv tmp_bank "${param_w1_pin}"
|
||
|
+ setenv tmp_pin "${param_w1_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins pins "${param_w1_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_mmc2_cd_pin}"; then
|
||
|
+ setenv tmp_bank "${param_mmc2_cd_pin}"
|
||
|
+ setenv tmp_pin "${param_mmc2_cd_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /soc/mmc@1c11000 cd-gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 1>"
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_mmc2_non_removable}" = "1"; then
|
||
|
+ fdt rm /soc/mmc@1c11000 cd-gpios
|
||
|
+ fdt set /soc/mmc@1c11000 non-removable
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_w1_pin_int_pullup}" = "1"; then
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins bias-pull-up
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart2_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/uart2-pi-pins phandle
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart3_pins}" = "b"; then
|
||
|
+ if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart3-ph-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart3-cts-rts-ph-pins phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+ else
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/uart3-ph-pins phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+ fi
|
||
|
+else
|
||
|
+ if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart3-pg-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart3-cts-rts-pg-pins phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+ fi
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart4_pins}" = "b"; then
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800/uart4-pg-pins phandle
|
||
|
+ fdt set /soc/serial@1c29000 pinctrl-0 "<${tmp_phandle}>"
|
||
|
+ env delete tmp_phandle
|
||
|
+fi
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-i2c1.dts b/arch/arm/boot/dts/overlay/sun7i-a20-i2c1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..c5f6e97
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-i2c1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c1 = "/soc@1c00000/i2c@1c2b000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-i2c2.dts b/arch/arm/boot/dts/overlay/sun7i-a20-i2c2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..fa93d1e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-i2c2.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c2 = "/soc@1c00000/i2c@1c2b400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c2_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-i2c3.dts b/arch/arm/boot/dts/overlay/sun7i-a20-i2c3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..945795c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-i2c3.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c3 = "/soc@1c00000/i2c@1c2b800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c3_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-i2c4.dts b/arch/arm/boot/dts/overlay/sun7i-a20-i2c4.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..4fcf08c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-i2c4.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c4 = "/soc@1c00000/i2c@1c2c000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ i2c4_pins_a: i2c4@0 {
|
||
|
+ pins = "PI2", "PI3";
|
||
|
+ function = "i2c4";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&i2c4>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c4_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-i2s0.dts b/arch/arm/boot/dts/overlay/sun7i-a20-i2s0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..1a19a24
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-i2s0.dts
|
||
|
@@ -0,0 +1,25 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ i2s0_pins: i2s0 {
|
||
|
+ pins = "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12";
|
||
|
+ function = "i2s0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2s0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2s0_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-i2s1.dts b/arch/arm/boot/dts/overlay/sun7i-a20-i2s1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..e6f0a22
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-i2s1.dts
|
||
|
@@ -0,0 +1,25 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ i2s1_pins: i2s1 {
|
||
|
+ pins = "PA9", "PA14", "PA15", "PA16", "PA17";
|
||
|
+ function = "i2s1";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2s1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2s1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-mmc2.dts b/arch/arm/boot/dts/overlay/sun7i-a20-mmc2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..ede92f2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-mmc2.dts
|
||
|
@@ -0,0 +1,18 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&mmc2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&mmc2_pins>;
|
||
|
+ vmmc-supply = <®_vcc3v3>;
|
||
|
+ bus-width = <4>;
|
||
|
+ cd-gpios = <&pio 7 0 1>; /* PH0, active low */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-nand.dts b/arch/arm/boot/dts/overlay/sun7i-a20-nand.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..ffa49cc
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-nand.dts
|
||
|
@@ -0,0 +1,103 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ nand_pins_a: nand_pins@0 {
|
||
|
+ pins = "PC0", "PC1", "PC2",
|
||
|
+ "PC5", "PC8", "PC9", "PC10",
|
||
|
+ "PC11", "PC12", "PC13", "PC14",
|
||
|
+ "PC15", "PC16";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs0_pins_a: nand_cs@0 {
|
||
|
+ pins = "PC4";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs1_pins_a: nand_cs@1 {
|
||
|
+ pins = "PC3";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs2_pins_a: nand_cs@2 {
|
||
|
+ pins = "PC17";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_cs3_pins_a: nand_cs@3 {
|
||
|
+ pins = "PC18";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_rb0_pins_a: nand_rb@0 {
|
||
|
+ pins = "PC6";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+
|
||
|
+ nand_rb1_pins_a: nand_rb@1 {
|
||
|
+ pins = "PC7";
|
||
|
+ function = "nand0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&nfc>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&nand_pins_a>, <&nand_cs0_pins_a>, <&nand_rb0_pins_a>;
|
||
|
+ status = "okay";
|
||
|
+
|
||
|
+ nand@0 {
|
||
|
+ reg = <0>;
|
||
|
+ allwinner,rb = <0>;
|
||
|
+ nand-ecc-mode = "hw";
|
||
|
+ nand-on-flash-bbt;
|
||
|
+
|
||
|
+ partitions {
|
||
|
+ compatible = "fixed-partitions";
|
||
|
+ #address-cells = <2>;
|
||
|
+ #size-cells = <2>;
|
||
|
+
|
||
|
+ partition@0 {
|
||
|
+ label = "SPL";
|
||
|
+ reg = <0x0 0x0 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@400000 {
|
||
|
+ label = "SPL.backup";
|
||
|
+ reg = <0x0 0x400000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@800000 {
|
||
|
+ label = "U-Boot";
|
||
|
+ reg = <0x0 0x800000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@c00000 {
|
||
|
+ label = "U-Boot.backup";
|
||
|
+ reg = <0x0 0xc00000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1000000 {
|
||
|
+ label = "env";
|
||
|
+ reg = <0x0 0x1000000 0x0 0x400000>;
|
||
|
+ };
|
||
|
+
|
||
|
+ partition@1400000 {
|
||
|
+ label = "rootfs";
|
||
|
+ reg = <0x0 0xa00000 0x01 0xff000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-pps-gpio.dts b/arch/arm/boot/dts/overlay/sun7i-a20-pps-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..fe3e2bd
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-pps-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ pps_pins: pps_pins {
|
||
|
+ pins = "PI15";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ pps@0 {
|
||
|
+ compatible = "pps-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pps_pins>;
|
||
|
+ gpios = <&pio 8 15 0>; /* PI15 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-pwm.dts b/arch/arm/boot/dts/overlay/sun7i-a20-pwm.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b0cfe4d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-pwm.dts
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pwm>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pwm0_pin>, <&pwm1_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-spdif-out.dts b/arch/arm/boot/dts/overlay/sun7i-a20-spdif-out.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..11a0939
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-spdif-out.dts
|
||
|
@@ -0,0 +1,38 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&spdif>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spdif_tx_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ sound {
|
||
|
+ compatible = "simple-audio-card";
|
||
|
+ simple-audio-card,name = "On-board SPDIF";
|
||
|
+
|
||
|
+ simple-audio-card,cpu {
|
||
|
+ sound-dai = <&spdif>;
|
||
|
+ };
|
||
|
+
|
||
|
+ simple-audio-card,codec {
|
||
|
+ sound-dai = <&spdif_out>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ spdif_out: spdif-out {
|
||
|
+ #sound-dai-cells = <0>;
|
||
|
+ compatible = "linux,spdif-dit";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-spi-add-cs1.dts b/arch/arm/boot/dts/overlay/sun7i-a20-spi-add-cs1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..c0a4ba2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-spi-add-cs1.dts
|
||
|
@@ -0,0 +1,16 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default", "default";
|
||
|
+ pinctrl-0 = <&spi0_pi_pins>;
|
||
|
+ pinctrl-1 = <&spi0_cs0_pi_pin>;
|
||
|
+ pinctrl-2 = <&spi0_cs1_pi_pin>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-spi-jedec-nor.dts b/arch/arm/boot/dts/overlay/sun7i-a20-spi-jedec-nor.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b91097e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-spi-jedec-nor.dts
|
||
|
@@ -0,0 +1,57 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc@1c00000/spi@1c05000";
|
||
|
+ spi1 = "/soc@1c00000/spi@1c06000";
|
||
|
+ spi2 = "/soc@1c00000/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-spi-spidev.dts b/arch/arm/boot/dts/overlay/sun7i-a20-spi-spidev.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a3073b2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-spi-spidev.dts
|
||
|
@@ -0,0 +1,57 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc@1c00000/spi@1c05000";
|
||
|
+ spi1 = "/soc@1c00000/spi@1c06000";
|
||
|
+ spi2 = "/soc@1c00000/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-spi0.dts b/arch/arm/boot/dts/overlay/sun7i-a20-spi0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..cad50d8
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-spi0.dts
|
||
|
@@ -0,0 +1,23 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc@1c00000/spi@1c05000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-0 = <&spi0_pi_pins>;
|
||
|
+ pinctrl-1 = <&spi0_cs0_pi_pin>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-spi1.dts b/arch/arm/boot/dts/overlay/sun7i-a20-spi1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..f0218eb
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-spi1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi1 = "/soc@1c00000/spi@1c06000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spi1_pi_pins>, <&spi1_cs0_pi_pin>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-spi2.dts b/arch/arm/boot/dts/overlay/sun7i-a20-spi2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..effba42
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-spi2.dts
|
||
|
@@ -0,0 +1,23 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi2 = "/soc@1c00000/spi@1c17000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-0 = <&spi2_pb_pins>;
|
||
|
+ pinctrl-1 = <&spi2_pb_cs0_pin>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-uart2.dts b/arch/arm/boot/dts/overlay/sun7i-a20-uart2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..79d1dca
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-uart2.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial2 = "/soc@1c00000/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ 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_a_2>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-uart3.dts b/arch/arm/boot/dts/overlay/sun7i-a20-uart3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..703acbc
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-uart3.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial3 = "/soc@1c00000/serial@1c28c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart3_pins_a_2: uart3@2 {
|
||
|
+ pins = "PG6", "PG7";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart3_pins_a_rts_cts: uart3@1 {
|
||
|
+ pins = "PG8", "PG9";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart3_pins_b_rts_cts: uart3@3 {
|
||
|
+ pins = "PH2", "PH3";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart3_pins_a_2>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-uart4.dts b/arch/arm/boot/dts/overlay/sun7i-a20-uart4.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..1918034
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-uart4.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial4 = "/soc@1c00000/serial@1c29000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart4>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart4_pg_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-uart5.dts b/arch/arm/boot/dts/overlay/sun7i-a20-uart5.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a1369ee
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-uart5.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial5 = "/soc@1c00000/serial@1c29400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart5>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart5_pi_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-uart6.dts b/arch/arm/boot/dts/overlay/sun7i-a20-uart6.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..fb9efe2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-uart6.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial6 = "/soc@1c00000/serial@1c29800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart6>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart6_pi_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-uart7.dts b/arch/arm/boot/dts/overlay/sun7i-a20-uart7.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..bbdca3e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-uart7.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial7 = "/soc@1c00000/serial@1c29c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart7>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart7_pi_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun7i-a20-w1-gpio.dts b/arch/arm/boot/dts/overlay/sun7i-a20-w1-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..7d77606
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun7i-a20-w1-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun7i-a20";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ w1_pins: w1_pins {
|
||
|
+ pins = "PI15";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ onewire@0 {
|
||
|
+ compatible = "w1-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&w1_pins>;
|
||
|
+ gpios = <&pio 8 15 0>; /* PI15 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-analog-codec.dts b/arch/arm/boot/dts/overlay/sun8i-h3-analog-codec.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..36dbc31
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-analog-codec.dts
|
||
|
@@ -0,0 +1,17 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&codec>;
|
||
|
+ __overlay__ {
|
||
|
+ allwinner,audio-routing =
|
||
|
+ "Line Out", "LINEOUT",
|
||
|
+ "MIC1", "Mic",
|
||
|
+ "Mic", "MBIAS";
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-cir.dts b/arch/arm/boot/dts/overlay/sun8i-h3-cir.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..bf4a0ea
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-cir.dts
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ir>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&r_ir_rx_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
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 0000000..142b7e5
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-fixup.scr-cmd
|
||
|
@@ -0,0 +1,110 @@
|
||
|
+# overlays fixup script
|
||
|
+# implements (or rather substitutes) overlay arguments functionality
|
||
|
+# using u-boot scripting, environment variables and "fdt" command
|
||
|
+
|
||
|
+# setexpr test_var ${tmp_bank} - A
|
||
|
+# works only for hex numbers (A-F)
|
||
|
+
|
||
|
+setenv decompose_pin 'setexpr tmp_bank sub "P(A|C|D|G)\\d+" "\\1";
|
||
|
+setexpr tmp_pin sub "P\\S(\\d+)" "\\1";
|
||
|
+test "${tmp_bank}" = "A" && setenv tmp_bank 0;
|
||
|
+test "${tmp_bank}" = "C" && setenv tmp_bank 2;
|
||
|
+test "${tmp_bank}" = "D" && setenv tmp_bank 3;
|
||
|
+test "${tmp_bank}" = "G" && setenv tmp_bank 6'
|
||
|
+
|
||
|
+if test -n "${param_spinor_spi_bus}"; then
|
||
|
+ test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c68000"
|
||
|
+ test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c69000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash status "okay"
|
||
|
+ if test -n "${param_spinor_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash spi-max-frequency "<${param_spinor_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spinor_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_spidev_spi_bus}"; then
|
||
|
+ test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c68000"
|
||
|
+ test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c69000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
||
|
+ if test -n "${param_spidev_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spidev_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_pps_pin}"; then
|
||
|
+ setenv tmp_bank "${param_pps_pin}"
|
||
|
+ setenv tmp_pin "${param_pps_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/pps_pins pins "${param_pps_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pps_falling_edge}" = "1"; then
|
||
|
+ fdt set /pps@0 assert-falling-edge
|
||
|
+fi
|
||
|
+
|
||
|
+for f in ${overlays}; do
|
||
|
+ if test "${f}" = "pwm"; then
|
||
|
+ setenv bootargs_new ""
|
||
|
+ for arg in ${bootargs}; do
|
||
|
+ if test "${arg}" = "console=ttyS0,115200"; then
|
||
|
+ echo "Warning: Disabling ttyS0 console due to enabled PWM overlay"
|
||
|
+ else
|
||
|
+ setenv bootargs_new "${bootargs_new} ${arg}"
|
||
|
+ fi
|
||
|
+ done
|
||
|
+ setenv bootargs "${bootargs_new}"
|
||
|
+ fi
|
||
|
+done
|
||
|
+
|
||
|
+if test -n "${param_w1_pin}"; then
|
||
|
+ setenv tmp_bank "${param_w1_pin}"
|
||
|
+ setenv tmp_pin "${param_w1_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins pins "${param_w1_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_w1_pin_int_pullup}" = "1"; then
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins bias-pull-up
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart1_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart1-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart1-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart2_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart2-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart2-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart3-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart3-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-i2c0.dts b/arch/arm/boot/dts/overlay/sun8i-h3-i2c0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a36ac86
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-i2c0.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c0 = "/soc/i2c@1c2ac00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-i2c1.dts b/arch/arm/boot/dts/overlay/sun8i-h3-i2c1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..258c86d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-i2c1.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c1 = "/soc/i2c@1c2b000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-i2c2.dts b/arch/arm/boot/dts/overlay/sun8i-h3-i2c2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a1e3284
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-i2c2.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c2 = "/soc/i2c@1c2b400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-pps-gpio.dts b/arch/arm/boot/dts/overlay/sun8i-h3-pps-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..16a737b
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-pps-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ pps_pins: pps_pins {
|
||
|
+ pins = "PD14";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ pps@0 {
|
||
|
+ compatible = "pps-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pps_pins>;
|
||
|
+ gpios = <&pio 3 14 0>; /* PD14 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-pwm.dts b/arch/arm/boot/dts/overlay/sun8i-h3-pwm.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..ed3b8e6
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-pwm.dts
|
||
|
@@ -0,0 +1,39 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/chosen";
|
||
|
+ __overlay__ {
|
||
|
+ /delete-property/ stdout-path;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ pwm0_pin: pwm0 {
|
||
|
+ pins = "PA5";
|
||
|
+ function = "pwm0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&pwm>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pwm0_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-spdif-out.dts b/arch/arm/boot/dts/overlay/sun8i-h3-spdif-out.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..35b2d56
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-spdif-out.dts
|
||
|
@@ -0,0 +1,38 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&spdif>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spdif_tx_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ sound {
|
||
|
+ compatible = "simple-audio-card";
|
||
|
+ simple-audio-card,name = "On-board SPDIF";
|
||
|
+
|
||
|
+ simple-audio-card,cpu {
|
||
|
+ sound-dai = <&spdif>;
|
||
|
+ };
|
||
|
+
|
||
|
+ simple-audio-card,codec {
|
||
|
+ sound-dai = <&spdif_out>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ spdif_out: spdif-out {
|
||
|
+ #sound-dai-cells = <0>;
|
||
|
+ compatible = "linux,spdif-dit";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-spi-add-cs1.dts b/arch/arm/boot/dts/overlay/sun8i-h3-spi-add-cs1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..bd8e256
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-spi-add-cs1.dts
|
||
|
@@ -0,0 +1,41 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ spi0_cs1: spi0_cs1 {
|
||
|
+ pins = "PA21";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+
|
||
|
+ spi1_cs1: spi1_cs1 {
|
||
|
+ pins = "PA10";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi0_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 0 21 0>; /* PA21 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi1_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 0 10 0>; /* PA10 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
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 0000000..95fa5f2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-spi-jedec-nor.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c68000";
|
||
|
+ spi1 = "/soc/spi@1c69000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
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 0000000..575c970
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-spi-spidev.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c68000";
|
||
|
+ spi1 = "/soc/spi@1c69000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-uart1.dts b/arch/arm/boot/dts/overlay/sun8i-h3-uart1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..3c10d4d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-uart1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial1 = "/soc/serial@1c28400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
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 0000000..f16e618
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-uart2.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial2 = "/soc/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart2_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-uart3.dts b/arch/arm/boot/dts/overlay/sun8i-h3-uart3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b1aef57
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-uart3.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial3 = "/soc/serial@1c28c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart3_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-usbhost0.dts b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6bd8aed
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost0.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-usbhost1.dts b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..4c7222b
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost1.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-usbhost2.dts b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..2b83ec9
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost2.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-usbhost3.dts b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..e2f28ab
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-usbhost3.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci3>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci3>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-h3-w1-gpio.dts b/arch/arm/boot/dts/overlay/sun8i-h3-w1-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..f4ccb7f
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-h3-w1-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ w1_pins: w1_pins {
|
||
|
+ pins = "PD14";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ onewire@0 {
|
||
|
+ compatible = "w1-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&w1_pins>;
|
||
|
+ gpios = <&pio 3 14 0>; /* PD14 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-i2c2.dts b/arch/arm/boot/dts/overlay/sun8i-r40-i2c2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a1e3284
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-i2c2.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c2 = "/soc/i2c@1c2b400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-i2c3.dts b/arch/arm/boot/dts/overlay/sun8i-r40-i2c3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a1e3284
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-i2c3.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h3";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c3 = "/soc/i2c@1c2b800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c3>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-spi-spidev0.dts b/arch/arm/boot/dts/overlay/sun8i-r40-spi-spidev0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..734a9a8
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-spi-spidev0.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-r40";
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c05000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ fragment@1 {
|
||
|
+ target = <0xffffffff>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <0x00000001>;
|
||
|
+ #size-cells = <0x00000000>;
|
||
|
+ status = "okay";
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "okay";
|
||
|
+ reg = <0x00000000>;
|
||
|
+ spi-max-frequency = <0x000f4240>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ __fixups__ {
|
||
|
+ spi0 = "/fragment@1:target:0";
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-spi-spidev1.dts b/arch/arm/boot/dts/overlay/sun8i-r40-spi-spidev1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..d1d637c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-spi-spidev1.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-r40";
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi1 = "/soc/spi@1c06000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ fragment@1 {
|
||
|
+ target = <0xffffffff>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <0x00000001>;
|
||
|
+ #size-cells = <0x00000000>;
|
||
|
+ status = "okay";
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "okay";
|
||
|
+ reg = <0x00000000>;
|
||
|
+ spi-max-frequency = <0x000f4240>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ __fixups__ {
|
||
|
+ spi1 = "/fragment@1:target:0";
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-uart2.dts b/arch/arm/boot/dts/overlay/sun8i-r40-uart2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..65e946d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-uart2.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-r40";
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial2 = "/soc/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ fragment@1 {
|
||
|
+ target = <0xffffffff>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <0xffffffff>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ __fixups__ {
|
||
|
+ uart2 = "/fragment@1:target:0";
|
||
|
+ uart2_pi_pins = "/fragment@1/__overlay__:pinctrl-0:0";
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-uart4.dts b/arch/arm/boot/dts/overlay/sun8i-r40-uart4.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..65e946d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-uart4.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-r40";
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial4 = "/soc/serial@1c29000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ fragment@1 {
|
||
|
+ target = <0xffffffff>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <0xffffffff>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ __fixups__ {
|
||
|
+ uart4 = "/fragment@1:target:0";
|
||
|
+ uart4_ph_pins = "/fragment@1/__overlay__:pinctrl-0:0";
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-uart5.dts b/arch/arm/boot/dts/overlay/sun8i-r40-uart5.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..65e946d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-uart5.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-r40";
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial5 = "/soc/serial@1c29400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ fragment@1 {
|
||
|
+ target = <0xffffffff>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <0xffffffff>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ __fixups__ {
|
||
|
+ uart5 = "/fragment@1:target:0";
|
||
|
+ uart5_ph_pins = "/fragment@1/__overlay__:pinctrl-0:0";
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm/boot/dts/overlay/sun8i-r40-uart7.dts b/arch/arm/boot/dts/overlay/sun8i-r40-uart7.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..65e946d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlay/sun8i-r40-uart7.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-r40";
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial7 = "/soc/serial@1c29c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ fragment@1 {
|
||
|
+ target = <0xffffffff>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <0xffffffff>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ __fixups__ {
|
||
|
+ uart7 = "/fragment@1:target:0";
|
||
|
+ uart7_pi_pins = "/fragment@1/__overlay__:pinctrl-0:0";
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
|
||
|
index fa35163..89df4ff 100644
|
||
|
--- a/arch/arm64/boot/dts/allwinner/Makefile
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/Makefile
|
||
|
@@ -31,3 +31,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-lite2.dtb
|
||
|
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb
|
||
|
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
|
||
|
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
|
||
|
+
|
||
|
+subdir-y := $(dts-dirs) overlay
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile
|
||
|
new file mode 100644
|
||
|
index 0000000..9b6528e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile
|
||
|
@@ -0,0 +1,58 @@
|
||
|
+# SPDX-License-Identifier: GPL-2.0
|
||
|
+dtbo-$(CONFIG_ARCH_SUNXI) += \
|
||
|
+ sun50i-a64-i2c0.dtbo \
|
||
|
+ sun50i-a64-i2c1.dtbo \
|
||
|
+ sun50i-a64-pps-gpio.dtbo \
|
||
|
+ sun50i-a64-spi-add-cs1.dtbo \
|
||
|
+ sun50i-a64-spi-jedec-nor.dtbo \
|
||
|
+ sun50i-a64-spi-spidev.dtbo \
|
||
|
+ sun50i-a64-uart1.dtbo \
|
||
|
+ sun50i-a64-uart2.dtbo \
|
||
|
+ sun50i-a64-uart3.dtbo \
|
||
|
+ sun50i-a64-uart4.dtbo \
|
||
|
+ sun50i-a64-w1-gpio.dtbo \
|
||
|
+ sun50i-h5-analog-codec.dtbo \
|
||
|
+ sun50i-h5-cir.dtbo \
|
||
|
+ sun50i-h5-i2c0.dtbo \
|
||
|
+ sun50i-h5-i2c1.dtbo \
|
||
|
+ sun50i-h5-i2c2.dtbo \
|
||
|
+ sun50i-h5-pps-gpio.dtbo \
|
||
|
+ sun50i-h5-pwm.dtbo \
|
||
|
+ sun50i-h5-spdif-out.dtbo \
|
||
|
+ sun50i-h5-spi-add-cs1.dtbo \
|
||
|
+ sun50i-h5-spi-jedec-nor.dtbo \
|
||
|
+ sun50i-h5-spi-spidev.dtbo \
|
||
|
+ sun50i-h5-uart1.dtbo \
|
||
|
+ sun50i-h5-uart2.dtbo \
|
||
|
+ sun50i-h5-uart3.dtbo \
|
||
|
+ sun50i-h5-usbhost0.dtbo \
|
||
|
+ sun50i-h5-usbhost1.dtbo \
|
||
|
+ sun50i-h5-usbhost2.dtbo \
|
||
|
+ sun50i-h5-usbhost3.dtbo \
|
||
|
+ sun50i-h5-w1-gpio.dtbo \
|
||
|
+ sun50i-h6-i2c0.dtbo \
|
||
|
+ sun50i-h6-i2c1.dtbo \
|
||
|
+ sun50i-h6-i2c2.dtbo \
|
||
|
+ sun50i-h6-ruart.dtbo \
|
||
|
+ sun50i-h6-spi-add-cs1.dtbo \
|
||
|
+ sun50i-h6-spi-jedec-nor.dtbo \
|
||
|
+ sun50i-h6-spi-spidev.dtbo \
|
||
|
+ sun50i-h6-spi-spidev1.dtbo \
|
||
|
+ sun50i-h6-uart1.dtbo \
|
||
|
+ sun50i-h6-uart2.dtbo \
|
||
|
+ sun50i-h6-uart3.dtbo \
|
||
|
+ sun50i-h6-w1-gpio.dtbo
|
||
|
+
|
||
|
+scr-$(CONFIG_ARCH_SUNXI) += \
|
||
|
+ sun50i-a64-fixup.scr \
|
||
|
+ sun50i-h5-fixup.scr \
|
||
|
+ sun50i-h6-fixup.scr
|
||
|
+
|
||
|
+dtbotxt-$(CONFIG_ARCH_SUNXI) += \
|
||
|
+ README.sun50i-a64-overlays \
|
||
|
+ README.sun50i-h5-overlays
|
||
|
+
|
||
|
+targets += $(dtbo-y) $(scr-y) $(dtbotxt-y)
|
||
|
+
|
||
|
+always := $(dtbo-y) $(scr-y) $(dtbotxt-y)
|
||
|
+clean-files := *.dtbo *.scr
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays
|
||
|
new file mode 100644
|
||
|
index 0000000..cd9dbc6
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays
|
||
|
@@ -0,0 +1,196 @@
|
||
|
+This document describes overlays provided in the kernel packages
|
||
|
+For generic Armbian overlays documentation please see
|
||
|
+https://docs.armbian.com/Hardware_Allwinner_overlays/
|
||
|
+
|
||
|
+### Platform:
|
||
|
+
|
||
|
+sun50i-a64 (Allwinner A64)
|
||
|
+
|
||
|
+### Platform details:
|
||
|
+
|
||
|
+Supported pin banks: PB, PC, PD, PH
|
||
|
+
|
||
|
+Both SPI controllers have only one hardware CS pin exposed,
|
||
|
+adding fixed software (GPIO) chip selects is possible with a separate overlay
|
||
|
+
|
||
|
+I2C controller 2 (PE14, PE15) pins are used for non-I2C CSI functions or are not available
|
||
|
+on supported boards, so this controller is not supported in provided overlays
|
||
|
+
|
||
|
+### Provided overlays:
|
||
|
+
|
||
|
+- i2c0
|
||
|
+- i2c1
|
||
|
+- pps-gpio
|
||
|
+- spi-add-cs1
|
||
|
+- spi-jedec-nor
|
||
|
+- spi-spidev
|
||
|
+- uart1
|
||
|
+- uart2
|
||
|
+- uart3
|
||
|
+- uart4
|
||
|
+- w1-gpio
|
||
|
+
|
||
|
+### Overlay details:
|
||
|
+
|
||
|
+### i2c0
|
||
|
+
|
||
|
+Activates TWI/I2C bus 0
|
||
|
+
|
||
|
+I2C0 pins (SCL, SDA): PH0, PH1
|
||
|
+
|
||
|
+### i2c1
|
||
|
+
|
||
|
+Activates TWI/I2C bus 1
|
||
|
+
|
||
|
+I2C1 pins (SCL, SDA): PH2, PH3
|
||
|
+
|
||
|
+### pps-gpio
|
||
|
+
|
||
|
+Activates pulse-per-second GPIO client
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_pps_pin (pin)
|
||
|
+ Pin PPS source is connected to
|
||
|
+ Optional
|
||
|
+ Default: PD4
|
||
|
+
|
||
|
+param_pps_falling_edge (bool)
|
||
|
+ Assert by falling edge
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ When set (to 1), assert is indicated by a falling edge
|
||
|
+ (instead of by a rising edge)
|
||
|
+
|
||
|
+### spi-add-cs1
|
||
|
+
|
||
|
+Adds support for using SPI chip select 1 with GPIO for both SPI controllers
|
||
|
+Respective GPIO will be claimed only if controller is enabled by another overlay
|
||
|
+This overlay is required for using chip select 1 with other SPI overlays
|
||
|
+
|
||
|
+SPI 0 pins (CS1): PB6
|
||
|
+SPI 1 pins (CS1): PD6
|
||
|
+
|
||
|
+### 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): PD2, PD3, PD1, PD0
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spinor_spi_bus (int)
|
||
|
+ SPI bus to activate SPI NOR flash support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1
|
||
|
+
|
||
|
+param_spinor_spi_cs (int)
|
||
|
+ SPI chip select number
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spinor_max_freq (int)
|
||
|
+ Maximum SPI frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### spi-spidev
|
||
|
+
|
||
|
+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): PD2, PD3, PD1, PD0
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spidev_spi_bus (int)
|
||
|
+ SPI bus to activate SPIdev support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1
|
||
|
+
|
||
|
+param_spidev_spi_cs (int)
|
||
|
+ SPI chip select number
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spidev_max_freq (int)
|
||
|
+ Maximum SPIdev frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### uart1
|
||
|
+
|
||
|
+Activates serial port 1 (/dev/ttyS1)
|
||
|
+
|
||
|
+UART 1 pins (TX, RX, RTS, CTS): PG6, PG7, PG8, PG9
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart1_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable
|
||
|
+
|
||
|
+### uart2
|
||
|
+
|
||
|
+Activates serial port 2 (/dev/ttyS2)
|
||
|
+
|
||
|
+UART 2 pins (TX, RX, RTS, CTS): PB0, PB1, PB2, PB3
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart2_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart3
|
||
|
+
|
||
|
+Activates serial port 3 (/dev/ttyS3)
|
||
|
+
|
||
|
+UART 3 pins (TX, RX): PD0, PD1
|
||
|
+
|
||
|
+### uart4
|
||
|
+
|
||
|
+Activates serial port 4 (/dev/ttyS4)
|
||
|
+
|
||
|
+UART 4 pins (TX, RX, RTS, CTS): PD2, PD3, PD4, PD5
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart2_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### w1-gpio
|
||
|
+
|
||
|
+Activates 1-Wire GPIO master
|
||
|
+Requires external pull-up resistor on data pin
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_w1_pin (pin)
|
||
|
+ Data pin for 1-Wire master
|
||
|
+ Optional
|
||
|
+ Default: PD4
|
||
|
+
|
||
|
+param_w1_pin_int_pullup (bool)
|
||
|
+ Enable internal pull-up for the data pin
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable the pull-up
|
||
|
+ This option should not be used with multiple devices, parasite power setup
|
||
|
+ or long wires - please use external pull-up resistor instead
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays
|
||
|
new file mode 100644
|
||
|
index 0000000..1ac7fbc
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays
|
||
|
@@ -0,0 +1,250 @@
|
||
|
+This document describes overlays provided in the kernel packages
|
||
|
+For generic Armbian overlays documentation please see
|
||
|
+https://docs.armbian.com/User-Guide_Allwinner_overlays/
|
||
|
+
|
||
|
+### Platform:
|
||
|
+
|
||
|
+sun50i-h5 (Allwinner H5)
|
||
|
+
|
||
|
+### Platform details:
|
||
|
+
|
||
|
+Supported pin banks: PA, PC, PD, PG
|
||
|
+
|
||
|
+Both SPI controllers have only one hardware CS pin exposed,
|
||
|
+adding fixed software (GPIO) chip selects is possible with a separate overlay
|
||
|
+
|
||
|
+### Provided overlays:
|
||
|
+
|
||
|
+- analog-codec
|
||
|
+- cir
|
||
|
+- i2c0
|
||
|
+- i2c1
|
||
|
+- i2c2
|
||
|
+- pps-gpio
|
||
|
+- pwm
|
||
|
+- spdif-out
|
||
|
+- spi-add-cs1
|
||
|
+- spi-jedec-nor
|
||
|
+- spi-spidev
|
||
|
+- uart1
|
||
|
+- uart2
|
||
|
+- uart3
|
||
|
+- usbhost0
|
||
|
+- usbhost1
|
||
|
+- usbhost2
|
||
|
+- usbhost3
|
||
|
+- w1-gpio
|
||
|
+
|
||
|
+### Overlay details:
|
||
|
+
|
||
|
+### analog-codec
|
||
|
+
|
||
|
+Activates SoC analog codec driver that provides Line Out and Mic In
|
||
|
+functionality
|
||
|
+
|
||
|
+### cir
|
||
|
+
|
||
|
+Activates CIR (Infrared remote) receiver
|
||
|
+
|
||
|
+CIR pin: PL11
|
||
|
+
|
||
|
+### i2c0
|
||
|
+
|
||
|
+Activates TWI/I2C bus 0
|
||
|
+
|
||
|
+I2C0 pins (SCL, SDA): PA11, PA12
|
||
|
+
|
||
|
+### i2c1
|
||
|
+
|
||
|
+Activates TWI/I2C bus 1
|
||
|
+
|
||
|
+I2C1 pins (SCL, SDA): PA18, PA19
|
||
|
+
|
||
|
+### i2c2
|
||
|
+
|
||
|
+Activates TWI/I2C bus 2
|
||
|
+
|
||
|
+I2C2 pins (SCL, SDA): PE12, PE13
|
||
|
+
|
||
|
+On most board this bus is wired to Camera (CSI) socket
|
||
|
+
|
||
|
+### pps-gpio
|
||
|
+
|
||
|
+Activates pulse-per-second GPIO client
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_pps_pin (pin)
|
||
|
+ Pin PPS source is connected to
|
||
|
+ Optional
|
||
|
+ Default: PD14
|
||
|
+
|
||
|
+param_pps_falling_edge (bool)
|
||
|
+ Assert by falling edge
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ When set (to 1), assert is indicated by a falling edge
|
||
|
+ (instead of by a rising edge)
|
||
|
+
|
||
|
+### pwm
|
||
|
+
|
||
|
+Activates hardware PWM controller
|
||
|
+
|
||
|
+PWM pin: PA5
|
||
|
+
|
||
|
+Pin PA5 is used as UART0 RX by default, so if this overlay is activated,
|
||
|
+UART0 and kernel console on ttyS0 will be disabled
|
||
|
+
|
||
|
+### spdif-out
|
||
|
+
|
||
|
+Activates SPDIF/Toslink audio output
|
||
|
+
|
||
|
+SPDIF pin: PA17
|
||
|
+
|
||
|
+### spi-add-cs1
|
||
|
+
|
||
|
+Adds support for using SPI chip select 1 with GPIO for both SPI controllers
|
||
|
+Respective GPIO will be claimed only if controller is enabled by another
|
||
|
+overlay
|
||
|
+This overlay is required for using chip select 1 with other SPI overlays
|
||
|
+Due to the u-boot limitations CS1 pin can't be customized by a parameter, but
|
||
|
+it can be changed by using an edited copy of this overlay
|
||
|
+A total of 4 chip selects can be used with custom overlays (1 HW + 3 GPIO)
|
||
|
+
|
||
|
+SPI 0 pins (CS1): PA21
|
||
|
+SPI 1 pins (CS1): PA10
|
||
|
+
|
||
|
+### 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
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spinor_spi_bus (int)
|
||
|
+ SPI bus to activate SPI NOR flash support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1
|
||
|
+
|
||
|
+param_spinor_spi_cs (int)
|
||
|
+ SPI chip select number
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spinor_max_freq (int)
|
||
|
+ Maximum SPI frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### spi-spidev
|
||
|
+
|
||
|
+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
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_spidev_spi_bus (int)
|
||
|
+ SPI bus to activate SPIdev support on
|
||
|
+ Required
|
||
|
+ Supported values: 0, 1
|
||
|
+
|
||
|
+param_spidev_spi_cs (int)
|
||
|
+ SPI chip select number
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Supported values: 0, 1
|
||
|
+ Using chip select 1 requires using "spi-add-cs1" overlay
|
||
|
+
|
||
|
+param_spidev_max_freq (int)
|
||
|
+ Maximum SPIdev frequency
|
||
|
+ Optional
|
||
|
+ Default: 1000000
|
||
|
+ Range: 3000 - 100000000
|
||
|
+
|
||
|
+### uart1
|
||
|
+
|
||
|
+Activates serial port 1 (/dev/ttyS1)
|
||
|
+
|
||
|
+UART 1 pins (TX, RX, RTS, CTS): PG6, PG7, PG8, PG9
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart1_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable
|
||
|
+
|
||
|
+### uart2
|
||
|
+
|
||
|
+Activates serial port 2 (/dev/ttyS2)
|
||
|
+
|
||
|
+UART 2 pins (TX, RX, RTS, CTS): PA0, PA1, PA2, PA3
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart2_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### uart3
|
||
|
+
|
||
|
+Activates serial port 3 (/dev/ttyS3)
|
||
|
+
|
||
|
+UART 3 pins (TX, RX, RTS, CTS): PA13, PA14, PA15, PA16
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_uart3_rtscts (bool)
|
||
|
+ Enable RTS and CTS pins
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable CTS and RTS pins
|
||
|
+
|
||
|
+### usbhost0
|
||
|
+
|
||
|
+Activates USB host controller 0
|
||
|
+
|
||
|
+### usbhost1
|
||
|
+
|
||
|
+Activates USB host controller 1
|
||
|
+
|
||
|
+### usbhost2
|
||
|
+
|
||
|
+Activates USB host controller 2
|
||
|
+
|
||
|
+### usbhost3
|
||
|
+
|
||
|
+Activates USB host controller 3
|
||
|
+
|
||
|
+### w1-gpio
|
||
|
+
|
||
|
+Activates 1-Wire GPIO master
|
||
|
+Requires an external pull-up resistor on the data pin
|
||
|
+or enabling the internal pull-up
|
||
|
+
|
||
|
+Parameters:
|
||
|
+
|
||
|
+param_w1_pin (pin)
|
||
|
+ Data pin for 1-Wire master
|
||
|
+ Optional
|
||
|
+ Default: PD14
|
||
|
+
|
||
|
+param_w1_pin_int_pullup (bool)
|
||
|
+ Enable internal pull-up for the data pin
|
||
|
+ Optional
|
||
|
+ Default: 0
|
||
|
+ Set to 1 to enable the pull-up
|
||
|
+ This option should not be used with multiple devices, parasite power setup
|
||
|
+ or long wires - please use external pull-up resistor instead
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd
|
||
|
new file mode 100644
|
||
|
index 0000000..36df83c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd
|
||
|
@@ -0,0 +1,95 @@
|
||
|
+# overlays fixup script
|
||
|
+# implements (or rather substitutes) overlay arguments functionality
|
||
|
+# using u-boot scripting, environment variables and "fdt" command
|
||
|
+
|
||
|
+# setexpr test_var ${tmp_bank} - A
|
||
|
+# works only for hex numbers (A-F)
|
||
|
+
|
||
|
+setenv decompose_pin 'setexpr tmp_bank sub "P(B|C|D|H)\\d+" "\\1";
|
||
|
+setexpr tmp_pin sub "P\\S(\\d+)" "\\1";
|
||
|
+test "${tmp_bank}" = "B" && setenv tmp_bank 1;
|
||
|
+test "${tmp_bank}" = "C" && setenv tmp_bank 2;
|
||
|
+test "${tmp_bank}" = "D" && setenv tmp_bank 3;
|
||
|
+test "${tmp_bank}" = "H" && setenv tmp_bank 7'
|
||
|
+
|
||
|
+if test -n "${param_spinor_spi_bus}"; then
|
||
|
+ test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c68000"
|
||
|
+ test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c69000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 status "okay"
|
||
|
+ if test -n "${param_spinor_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 spi-max-frequency "<${param_spinor_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spinor_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 reg "<1>";
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_spidev_spi_bus}"; then
|
||
|
+ test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c68000"
|
||
|
+ test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c69000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
||
|
+ if test -n "${param_spidev_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spidev_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev reg "<1>";
|
||
|
+ fi
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_pps_pin}"; then
|
||
|
+ setenv tmp_bank "${param_pps_pin}"
|
||
|
+ setenv tmp_pin "${param_pps_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/pps_pins pins "${param_pps_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pps_falling_edge}" = "1"; then
|
||
|
+ fdt set /pps@0 assert-falling-edge
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_w1_pin}"; then
|
||
|
+ setenv tmp_bank "${param_w1_pin}"
|
||
|
+ setenv tmp_pin "${param_w1_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins pins "${param_w1_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_w1_pin_int_pullup}" = "1"; then
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins bias-pull-up
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart1_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart1-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart1-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart2_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart2-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart2-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart4_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart4-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart4-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c29000 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c29000 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c29000 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..37bdb2c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c0 = "/soc/i2c@1c2ac00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ i2c0_pins: i2c0_pins {
|
||
|
+ pins = "PH0", "PH1";
|
||
|
+ function = "i2c0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&i2c0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c0_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b2483c9
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c1 = "/soc/i2c@1c2b000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&i2c1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..5fa161c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ pps_pins: pps_pins {
|
||
|
+ pins = "PD4";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ pps@0 {
|
||
|
+ compatible = "pps-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pps_pins>;
|
||
|
+ gpios = <&pio 3 4 0>; /* PD4 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..4432aac
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dts
|
||
|
@@ -0,0 +1,41 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ spi0_cs1: spi0_cs1 {
|
||
|
+ pins = "PB6";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+
|
||
|
+ spi1_cs1: spi1_cs1 {
|
||
|
+ pins = "PD6";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi0_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 1 6 0>; /* PB6 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi1_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 3 6 0>; /* PD6 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..31d73e5
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dts
|
||
|
@@ -0,0 +1,34 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..70d90a2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c68000";
|
||
|
+ spi1 = "/soc/spi@1c69000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..4d8dac1
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial1 = "/soc/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..36475fd
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dts
|
||
|
@@ -0,0 +1,37 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial2 = "/soc/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart2_pins: uart2-pins {
|
||
|
+ pins = "PB0", "PB1";
|
||
|
+ function = "uart2";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart2_rts_cts_pins: uart2-rts-cts-pins {
|
||
|
+ pins = "PB2", "PB3";
|
||
|
+ function = "uart2";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart2_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a103a75
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial3 = "/soc/serial@1c28c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart3_pins: uart3-pins {
|
||
|
+ pins = "PD0", "PD1";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart3_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6e4702b
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dts
|
||
|
@@ -0,0 +1,37 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial4 = "/soc/serial@1c29000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart4_pins: uart4-pins {
|
||
|
+ pins = "PD2", "PD3";
|
||
|
+ function = "uart4";
|
||
|
+ };
|
||
|
+
|
||
|
+ uart4_rts_cts_pins: uart4-rts-cts-pins {
|
||
|
+ pins = "PD4", "PD5";
|
||
|
+ function = "uart4";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart4>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart4_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..d230469
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-a64";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ w1_pins: w1_pins {
|
||
|
+ pins = "PD4";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ onewire@0 {
|
||
|
+ compatible = "w1-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&w1_pins>;
|
||
|
+ gpios = <&pio 3 4 0>; /* PD4 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..aaa66d5
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dts
|
||
|
@@ -0,0 +1,17 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&codec>;
|
||
|
+ __overlay__ {
|
||
|
+ allwinner,audio-routing =
|
||
|
+ "Line Out", "LINEOUT",
|
||
|
+ "MIC1", "Mic",
|
||
|
+ "Mic", "MBIAS";
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..90c264a
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dts
|
||
|
@@ -0,0 +1,15 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ir>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&r_ir_rx_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd
|
||
|
new file mode 100644
|
||
|
index 0000000..f7b89ae
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd
|
||
|
@@ -0,0 +1,110 @@
|
||
|
+# overlays fixup script
|
||
|
+# implements (or rather substitutes) overlay arguments functionality
|
||
|
+# using u-boot scripting, environment variables and "fdt" command
|
||
|
+
|
||
|
+# setexpr test_var ${tmp_bank} - A
|
||
|
+# works only for hex numbers (A-F)
|
||
|
+
|
||
|
+setenv decompose_pin 'setexpr tmp_bank sub "P(A|C|D|G)\\d+" "\\1";
|
||
|
+setexpr tmp_pin sub "P\\S(\\d+)" "\\1";
|
||
|
+test "${tmp_bank}" = "A" && setenv tmp_bank 0;
|
||
|
+test "${tmp_bank}" = "C" && setenv tmp_bank 2;
|
||
|
+test "${tmp_bank}" = "D" && setenv tmp_bank 3;
|
||
|
+test "${tmp_bank}" = "G" && setenv tmp_bank 6'
|
||
|
+
|
||
|
+if test -n "${param_spinor_spi_bus}"; then
|
||
|
+ test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c68000"
|
||
|
+ test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c69000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 status "okay"
|
||
|
+ if test -n "${param_spinor_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 spi-max-frequency "<${param_spinor_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spinor_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_spidev_spi_bus}"; then
|
||
|
+ test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@1c68000"
|
||
|
+ test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@1c69000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
||
|
+ if test -n "${param_spidev_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spidev_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_pps_pin}"; then
|
||
|
+ setenv tmp_bank "${param_pps_pin}"
|
||
|
+ setenv tmp_pin "${param_pps_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/pps_pins pins "${param_pps_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pps_falling_edge}" = "1"; then
|
||
|
+ fdt set /pps@0 assert-falling-edge
|
||
|
+fi
|
||
|
+
|
||
|
+for f in ${overlays}; do
|
||
|
+ if test "${f}" = "pwm"; then
|
||
|
+ setenv bootargs_new ""
|
||
|
+ for arg in ${bootargs}; do
|
||
|
+ if test "${arg}" = "console=ttyS0,115200"; then
|
||
|
+ echo "Warning: Disabling ttyS0 console due to enabled PWM overlay"
|
||
|
+ else
|
||
|
+ setenv bootargs_new "${bootargs_new} ${arg}"
|
||
|
+ fi
|
||
|
+ done
|
||
|
+ setenv bootargs "${bootargs_new}"
|
||
|
+ fi
|
||
|
+done
|
||
|
+
|
||
|
+if test -n "${param_w1_pin}"; then
|
||
|
+ setenv tmp_bank "${param_w1_pin}"
|
||
|
+ setenv tmp_pin "${param_w1_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins pins "${param_w1_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@1c20800 phandle
|
||
|
+ fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_w1_pin_int_pullup}" = "1"; then
|
||
|
+ fdt set /soc/pinctrl@1c20800/w1_pins bias-pull-up
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart1_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart1-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart1-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28400 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart2_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart2-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart2-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28800 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@1c20800/uart3-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@1c20800/uart3-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@1c28c00 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..87fbd7e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c0 = "/soc/i2c@1c2ac00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6008b9a
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c1 = "/soc/i2c@1c2b000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..2980dbf
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c2 = "/soc/i2c@1c2b400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..46e0675
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ pps_pins: pps_pins {
|
||
|
+ pins = "PD14";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ pps@0 {
|
||
|
+ compatible = "pps-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pps_pins>;
|
||
|
+ gpios = <&pio 3 14 0>; /* PD14 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6d12e84
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dts
|
||
|
@@ -0,0 +1,39 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/chosen";
|
||
|
+ __overlay__ {
|
||
|
+ /delete-property/ stdout-path;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ pwm0_pin: pwm0 {
|
||
|
+ pins = "PA5";
|
||
|
+ function = "pwm0";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&pwm>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&pwm0_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..65bc51b
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dts
|
||
|
@@ -0,0 +1,38 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&spdif>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spdif_tx_pin>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ sound {
|
||
|
+ compatible = "simple-audio-card";
|
||
|
+ simple-audio-card,name = "On-board SPDIF";
|
||
|
+
|
||
|
+ simple-audio-card,cpu {
|
||
|
+ sound-dai = <&spdif>;
|
||
|
+ };
|
||
|
+
|
||
|
+ simple-audio-card,codec {
|
||
|
+ sound-dai = <&spdif_out>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ spdif_out: spdif-out {
|
||
|
+ #sound-dai-cells = <0>;
|
||
|
+ compatible = "linux,spdif-dit";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..8e3eab2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dts
|
||
|
@@ -0,0 +1,41 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ spi0_cs1: spi0_cs1 {
|
||
|
+ pins = "PA21";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+
|
||
|
+ spi1_cs1: spi1_cs1 {
|
||
|
+ pins = "PA10";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi0_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 0 21 0>; /* PA21 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi1_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 0 10 0>; /* PA10 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..5a45808
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c68000";
|
||
|
+ spi1 = "/soc/spi@1c69000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..9b5b0f2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@1c68000";
|
||
|
+ spi1 = "/soc/spi@1c69000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..92e3eb4
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial1 = "/soc/serial@1c28400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..521a01d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial2 = "/soc/serial@1c28800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart2_rts_cts: uart2-rts-cts-pins {
|
||
|
+ pins = "PA2", "PA3";
|
||
|
+ function = "uart2";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart2_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..639e15d
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial3 = "/soc/serial@1c28c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart3_rts_cts: uart3-rts-cts-pins {
|
||
|
+ pins = "PA15", "PA16";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart3_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..c1d79c2
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..2b4f245
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..54800e7
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..a99524e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dts
|
||
|
@@ -0,0 +1,27 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&ehci3>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&ohci3>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&usbphy>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6e99626
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h5";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ w1_pins: w1_pins {
|
||
|
+ pins = "PD14";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ onewire@0 {
|
||
|
+ compatible = "w1-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&w1_pins>;
|
||
|
+ gpios = <&pio 3 14 0>; /* PD14 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd
|
||
|
new file mode 100644
|
||
|
index 0000000..5f00458
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd
|
||
|
@@ -0,0 +1,110 @@
|
||
|
+# overlays fixup script
|
||
|
+# implements (or rather substitutes) overlay arguments functionality
|
||
|
+# using u-boot scripting, environment variables and "fdt" command
|
||
|
+
|
||
|
+# setexpr test_var ${tmp_bank} - A
|
||
|
+# works only for hex numbers (A-F)
|
||
|
+
|
||
|
+setenv decompose_pin 'setexpr tmp_bank sub "P(A|C|D|G)\\d+" "\\1";
|
||
|
+setexpr tmp_pin sub "P\\S(\\d+)" "\\1";
|
||
|
+test "${tmp_bank}" = "A" && setenv tmp_bank 0;
|
||
|
+test "${tmp_bank}" = "C" && setenv tmp_bank 2;
|
||
|
+test "${tmp_bank}" = "D" && setenv tmp_bank 3;
|
||
|
+test "${tmp_bank}" = "G" && setenv tmp_bank 6'
|
||
|
+
|
||
|
+if test -n "${param_spinor_spi_bus}"; then
|
||
|
+ test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@5010000"
|
||
|
+ test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@5011000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 status "okay"
|
||
|
+ if test -n "${param_spinor_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 spi-max-frequency "<${param_spinor_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spinor_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spiflash@0 reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_spidev_spi_bus}"; then
|
||
|
+ test "${param_spidev_spi_bus}" = "0" && setenv tmp_spi_path "spi@5010000"
|
||
|
+ test "${param_spidev_spi_bus}" = "1" && setenv tmp_spi_path "spi@5011000"
|
||
|
+ fdt set /soc/${tmp_spi_path} status "okay"
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev status "okay"
|
||
|
+ if test -n "${param_spidev_max_freq}"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev spi-max-frequency "<${param_spidev_max_freq}>"
|
||
|
+ fi
|
||
|
+ if test "${param_spidev_spi_cs}" = "1"; then
|
||
|
+ fdt set /soc/${tmp_spi_path}/spidev reg "<1>"
|
||
|
+ fi
|
||
|
+ env delete tmp_spi_path
|
||
|
+fi
|
||
|
+
|
||
|
+if test -n "${param_pps_pin}"; then
|
||
|
+ setenv tmp_bank "${param_pps_pin}"
|
||
|
+ setenv tmp_pin "${param_pps_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@300b000/pps_pins pins "${param_pps_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@300b000 phandle
|
||
|
+ fdt set /pps@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_pps_falling_edge}" = "1"; then
|
||
|
+ fdt set /pps@0 assert-falling-edge
|
||
|
+fi
|
||
|
+
|
||
|
+for f in ${overlays}; do
|
||
|
+ if test "${f}" = "pwm"; then
|
||
|
+ setenv bootargs_new ""
|
||
|
+ for arg in ${bootargs}; do
|
||
|
+ if test "${arg}" = "console=ttyS0,115200"; then
|
||
|
+ echo "Warning: Disabling ttyS0 console due to enabled PWM overlay"
|
||
|
+ else
|
||
|
+ setenv bootargs_new "${bootargs_new} ${arg}"
|
||
|
+ fi
|
||
|
+ done
|
||
|
+ setenv bootargs "${bootargs_new}"
|
||
|
+ fi
|
||
|
+done
|
||
|
+
|
||
|
+if test -n "${param_w1_pin}"; then
|
||
|
+ setenv tmp_bank "${param_w1_pin}"
|
||
|
+ setenv tmp_pin "${param_w1_pin}"
|
||
|
+ run decompose_pin
|
||
|
+ fdt set /soc/pinctrl@300b000/w1_pins pins "${param_w1_pin}"
|
||
|
+ fdt get value tmp_phandle /soc/pinctrl@300b000 phandle
|
||
|
+ fdt set /onewire@0 gpios "<${tmp_phandle} ${tmp_bank} ${tmp_pin} 0>"
|
||
|
+ env delete tmp_pin tmp_bank tmp_phandle
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_w1_pin_int_pullup}" = "1"; then
|
||
|
+ fdt set /soc/pinctrl@300b000/w1_pins bias-pull-up
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart1_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@300b000/uart1-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@300b000/uart1-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@5000400 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@5000400 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@5000400 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart2_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@300b000/uart2-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@300b000/uart2-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@5000800 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@5000800 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@5000800 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
+
|
||
|
+if test "${param_uart3_rtscts}" = "1"; then
|
||
|
+ fdt get value tmp_phandle1 /soc/pinctrl@300b000/uart3-pins phandle
|
||
|
+ fdt get value tmp_phandle2 /soc/pinctrl@300b000/uart3-rts-cts-pins phandle
|
||
|
+ fdt set /soc/serial@5000c00 pinctrl-names "default" "default"
|
||
|
+ fdt set /soc/serial@5000c00 pinctrl-0 "<${tmp_phandle1}>"
|
||
|
+ fdt set /soc/serial@5000c00 pinctrl-1 "<${tmp_phandle2}>"
|
||
|
+ env delete tmp_phandle1 tmp_phandle2
|
||
|
+fi
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..7e7ee8c
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c0 = "/soc/i2c@5002000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c0>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..1117698
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c1 = "/soc/i2c@5002400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c1>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..b627529
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dts
|
||
|
@@ -0,0 +1,20 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ i2c2 = "/soc/i2c@5002800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&i2c2>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..6430cb0
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dts
|
||
|
@@ -0,0 +1,13 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&r_uart>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..0fa060f
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dts
|
||
|
@@ -0,0 +1,41 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ spi0_cs1: spi0_cs1 {
|
||
|
+ pins = "PA10";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+
|
||
|
+ spi1_cs1: spi1_cs1 {
|
||
|
+ pins = "PA21";
|
||
|
+ function = "gpio_out";
|
||
|
+ output-high;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi0_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 0 10 0>; /* PA10 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default", "default";
|
||
|
+ pinctrl-1 = <&spi1_cs1>;
|
||
|
+ cs-gpios = <0>, <&pio 0 21 0>; /* PA21 */
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..4f81dbb
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@5010000";
|
||
|
+ spi1 = "/soc/spi@5011000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spiflash@0 {
|
||
|
+ compatible = "jedec,spi-nor";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ status = "disabled";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..bac3adc
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dts
|
||
|
@@ -0,0 +1,42 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ spi0 = "/soc/spi@5010000";
|
||
|
+ spi1 = "/soc/spi@5011000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi0>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ status = "disabled";
|
||
|
+ reg = <0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..e194484
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dts
|
||
|
@@ -0,0 +1,30 @@
|
||
|
+// Enable the spidev interface
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun8i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ /* Path to the SPI controller nodes */
|
||
|
+ spi1 = "/soc/spi@5011000";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ fragment@1 {
|
||
|
+ target = <&spi1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&spi1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+ spidev@0 {
|
||
|
+ compatible = "spidev";
|
||
|
+ reg = <0x0>;
|
||
|
+ spi-max-frequency = <1000000>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..44aa94e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dts
|
||
|
@@ -0,0 +1,22 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial1 = "/soc/serial@5000400";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&uart1>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart1_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..7a1860e
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial2 = "/soc/serial@5000800";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart2_rts_cts: uart2-rts-cts-pins {
|
||
|
+ pins = "PD21", "PD22";
|
||
|
+ function = "uart2";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart2>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart2_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..770219a
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dts
|
||
|
@@ -0,0 +1,32 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/aliases";
|
||
|
+ __overlay__ {
|
||
|
+ serial3 = "/soc/serial@5000c00";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ uart3_rts_cts: uart3-rts-cts-pins {
|
||
|
+ pins = "PD25", "PD26";
|
||
|
+ function = "uart3";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&uart3>;
|
||
|
+ __overlay__ {
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&uart3_pins>;
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dts b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dts
|
||
|
new file mode 100644
|
||
|
index 0000000..3043c87
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dts
|
||
|
@@ -0,0 +1,29 @@
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "allwinner,sun50i-h6";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target = <&pio>;
|
||
|
+ __overlay__ {
|
||
|
+ w1_pins: w1_pins {
|
||
|
+ pins = "PC9";
|
||
|
+ function = "gpio_in";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ onewire@0 {
|
||
|
+ compatible = "w1-gpio";
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&w1_pins>;
|
||
|
+ gpios = <&pio 2 9 0>; /* PC9 */
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+};
|
||
|
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
|
||
|
index 26e6af4..65b9435 100644
|
||
|
--- a/scripts/Makefile.lib
|
||
|
+++ b/scripts/Makefile.lib
|
||
|
@@ -65,6 +65,9 @@ real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)
|
||
|
extra-y += $(dtb-y)
|
||
|
extra-$(CONFIG_OF_ALL_DTBS) += $(dtb-)
|
||
|
|
||
|
+# Overlay targets
|
||
|
+extra-y += $(dtbo-y) $(scr-y) $(dtbotxt-y)
|
||
|
+
|
||
|
# Add subdir path
|
||
|
|
||
|
extra-y := $(addprefix $(obj)/,$(extra-y))
|
||
|
|