From 38ec662a66495d979406003c1fafd75f1668cf0e Mon Sep 17 00:00:00 2001 From: August <2819763+Dangku@users.noreply.github.com> Date: Tue, 11 Jun 2024 20:49:27 +0800 Subject: [PATCH] update for dtbo for m4berry and m4zero --- arch/arm64/Kconfig.platforms | 26 ++++++++ arch/arm64/boot/dts/sunxi/Makefile | 11 ++-- arch/arm64/boot/dts/sunxi/overlay/Makefile | 11 ---- .../dts/sunxi/overlay/bpi-m4berry/Makefile | 20 ++++++ .../overlay/bpi-m4berry/bpi-m4berry-i2c3.dts | 12 ++++ .../overlay/bpi-m4berry/bpi-m4berry-i2c4.dts | 12 ++++ .../bpi-m4berry/bpi-m4berry-i2smic-mems.dts | 20 ++++++ .../bpi-m4berry-nxez-pcm512x-hifi.dts | 0 .../bpi-m4berry/bpi-m4berry-pg-uart2.dts | 15 +++++ .../bpi-m4berry/bpi-m4berry-ph-uart2.dts | 15 +++++ .../overlay/bpi-m4berry/bpi-m4berry-pwm1.dts | 20 ++++++ .../bpi-m4berry/bpi-m4berry-spdifout.dts | 37 +++++++++++ .../overlay/bpi-m4berry/bpi-m4berry-spi1.dts | 30 +++++++++ .../overlay/bpi-m4berry/bpi-m4berry-uart1.dts | 12 ++++ .../overlay/bpi-m4berry/bpi-m4berry-uart5.dts | 12 ++++ .../bpi-m4berry-waveshare-wm8960-hifi.dts | 0 .../dts/sunxi/overlay/bpi-m4zero/Makefile | 17 +++++ .../overlay/bpi-m4zero/bpi-m4zero-i2c0.dts | 12 ++++ .../overlay/bpi-m4zero/bpi-m4zero-i2c1.dts | 12 ++++ .../bpi-m4zero/bpi-m4zero-i2smic-mems.dts | 20 ++++++ .../bpi-m4zero-nxez-pcm512x-hifi.dts | 37 +++++++++++ .../overlay/bpi-m4zero/bpi-m4zero-pwm2.dts | 20 ++++++ .../bpi-m4zero/bpi-m4zero-spdifout.dts | 37 +++++++++++ .../overlay/bpi-m4zero/bpi-m4zero-spi1.dts | 30 +++++++++ .../overlay/bpi-m4zero/bpi-m4zero-uart4.dts | 12 ++++ .../overlay/bpi-m4zero/bpi-m4zero-uart5.dts | 12 ++++ .../bpi-m4zero-waveshare-wm8960-hifi.dts | 66 +++++++++++++++++++ .../boot/dts/sunxi/overlay/bpi-zero3/Makefile | 34 ++++++++++ .../sunxi/sun50i-h616-bananapi-m4berry.dts | 40 +++++++---- .../dts/sunxi/sun50i-h616-bananapi-m4zero.dts | 2 +- arch/arm64/configs/bananapi_m4berry_defconfig | 3 + arch/arm64/configs/bananapi_m4zero_defconfig | 8 ++- arch/arm64/configs/orangepi_zero3_defconfig | 3 + drivers/spi/spidev.c | 1 + 34 files changed, 587 insertions(+), 32 deletions(-) delete mode 100755 arch/arm64/boot/dts/sunxi/overlay/Makefile create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/Makefile create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c3.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c4.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2smic-mems.dts rename arch/arm64/boot/dts/sunxi/overlay/{ => bpi-m4berry}/bpi-m4berry-nxez-pcm512x-hifi.dts (100%) create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pg-uart2.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-ph-uart2.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pwm1.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spdifout.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spi1.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart1.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart5.dts rename arch/arm64/boot/dts/sunxi/overlay/{ => bpi-m4berry}/bpi-m4berry-waveshare-wm8960-hifi.dts (100%) create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/Makefile create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c0.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c1.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2smic-mems.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-nxez-pcm512x-hifi.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-pwm2.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spdifout.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spi1.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart4.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart5.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-waveshare-wm8960-hifi.dts create mode 100755 arch/arm64/boot/dts/sunxi/overlay/bpi-zero3/Makefile diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index 7036af31e..4e7c08ff0 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -65,6 +65,32 @@ endif # Select the SoC with specific arch and wafer +if ARCH_SUN50IW9 +choice + prompt "Select the Board with wafer ARCH_SUN50IW9" + help + Select the SoC with wafer ARCH_SUN50IW9 + +config BOARD_BANANAPI_M4BERRY + bool "Bananapi M4 Berry Single Board Computer" + help + This enables support for the board Bananapi M4 Berry of Sinovoip + which is based on Allwinner SUN50IW9(H618) SoC. + +config BOARD_BANANAPI_M4ZERO + bool "Bananapi M4 Zero Single Board Computer" + help + This enables support for the board Bananapi M4 Zero of Sinovoip + which is based on Allwinner SUN50IW9(H618) SoC. + +config BOARD_ORANGEPI_ZERO3 + bool "OrangePi Zero3 Single Board Computer" + help + This enables support for the OrangePi Zero3 of Xunlong + which is based on Allwinner SUN50IW9(H618) SoC. + +endchoice +endif if ARCH_SUN50IW10 choice diff --git a/arch/arm64/boot/dts/sunxi/Makefile b/arch/arm64/boot/dts/sunxi/Makefile index a0ecdd1a1..f2a6ab5bc 100644 --- a/arch/arm64/boot/dts/sunxi/Makefile +++ b/arch/arm64/boot/dts/sunxi/Makefile @@ -1,11 +1,14 @@ -dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero3.dtb -dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bananapi-m4berry.dtb -dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bananapi-m4zero.dtb +dtb-$(CONFIG_BOARD_BANANAPI_M4BERRY) += sun50i-h616-bananapi-m4berry.dtb +dtb-$(CONFIG_BOARD_BANANAPI_M4ZERO) += sun50i-h616-bananapi-m4zero.dtb +dtb-$(CONFIG_BOARD_ORANGEPI_ZERO3) += sun50i-h616-orangepi-zero3.dtb always := $(dtb-y) subdir-y := $(dts-dirs) clean-files := *.dtb + DTC_FLAGS_board += -@ DTC_FLAGS ?= -a 262144 -subdir-y := $(dts-dirs) overlay +subdir-$(CONFIG_BOARD_BANANAPI_M4BERRY) += overlay/bpi-m4berry +subdir-$(CONFIG_BOARD_BANANAPI_M4ZERO) += overlay/bpi-m4zero +subdir-$(CONFIG_BOARD_ORANGEPI_ZERO3) += overlay/bpi-zero3 diff --git a/arch/arm64/boot/dts/sunxi/overlay/Makefile b/arch/arm64/boot/dts/sunxi/overlay/Makefile deleted file mode 100755 index 392f47e5b..000000000 --- a/arch/arm64/boot/dts/sunxi/overlay/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 - -dtbo-$(CONFIG_ARCH_SUNXI) += \ - bpi-m4berry-i2c4.dtbo \ - bpi-m4berry-nxez-pcm512x-hifi.dtbo \ - bpi-m4berry-waveshare-wm8960-hifi.dtbo - -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/sunxi/overlay/bpi-m4berry/Makefile b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/Makefile new file mode 100755 index 000000000..e4296a97e --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/Makefile @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0 + +dtbo-$(CONFIG_BOARD_BANANAPI_M4BERRY) += \ + bpi-m4berry-i2c3.dtbo \ + bpi-m4berry-i2c4.dtbo \ + bpi-m4berry-uart1.dtbo \ + bpi-m4berry-pg-uart2.dtbo \ + bpi-m4berry-ph-uart2.dtbo \ + bpi-m4berry-uart5.dtbo \ + bpi-m4berry-pwm1.dtbo \ + bpi-m4berry-spi1.dtbo \ + bpi-m4berry-spdifout.dtbo \ + bpi-m4berry-i2smic-mems.dtbo \ + bpi-m4berry-nxez-pcm512x-hifi.dtbo \ + bpi-m4berry-waveshare-wm8960-hifi.dtbo + +targets += $(dtbo-y) + +always := $(dtbo-y) +clean-files := *.dtbo diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c3.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c3.dts new file mode 100755 index 000000000..6ce579000 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c3.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&twi3>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c4.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c4.dts new file mode 100755 index 000000000..301d68c19 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2c4.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&twi4>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2smic-mems.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2smic-mems.dts new file mode 100755 index 000000000..2ff2cc0a0 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-i2smic-mems.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@2 { + target = <&ahub2_plat>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@3 { + target = <&ahub2_mach>; + __overlay__ { + status = "okay"; + + soundcard-mach,capture-only; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry-nxez-pcm512x-hifi.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-nxez-pcm512x-hifi.dts similarity index 100% rename from arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry-nxez-pcm512x-hifi.dts rename to arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-nxez-pcm512x-hifi.dts diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pg-uart2.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pg-uart2.dts new file mode 100755 index 000000000..eb27e4255 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pg-uart2.dts @@ -0,0 +1,15 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart2>; + + __overlay__ { + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&uart2_pg_pin>; + pinctrl-1 = <&uart2_pg_sleep>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-ph-uart2.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-ph-uart2.dts new file mode 100755 index 000000000..5a1350da8 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-ph-uart2.dts @@ -0,0 +1,15 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart2>; + + __overlay__ { + status = "okay"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&uart2_ph_pin>; + pinctrl-1 = <&uart2_ph_sleep>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pwm1.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pwm1.dts new file mode 100755 index 000000000..e69392a54 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-pwm1.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&pwm>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&pwm1>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spdifout.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spdifout.dts new file mode 100755 index 000000000..3268c23b7 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spdifout.dts @@ -0,0 +1,37 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&twi4>; + __overlay__ { + status = "okay"; + + pcm5122: pcm5122@4d { + compatible = "ti,pcm5122"; + reg = <0x4d>; + #sound-dai-cells = <0>; + status = "okay"; + }; + }; + }; + + fragment@1 { + target = <&ahub2_plat>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&ahub2_mach>; + __overlay__ { + status = "okay"; + + soundcard-mach,playback-only; + soundcard-mach,codec { + sound-dai = <&pcm5122>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spi1.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spi1.dts new file mode 100755 index 000000000..96c01985f --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-spi1.dts @@ -0,0 +1,30 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spi1>; + __overlay__ { + status = "okay"; + + spi1_cs_number = <0x2>; + spi1_cs_bitmap = <0x3>; + + spi_board0@0 { + device_type = "spi_board0"; + compatible = "linux,spidev"; + spi-max-frequency = <10000000>; + reg = <0x0>; + status = "okay"; + }; + + spi_board1@1 { + device_type = "spi_board1"; + compatible = "linux,spidev"; + spi-max-frequency = <10000000>; + reg = <0x1>; + status = "okay"; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart1.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart1.dts new file mode 100755 index 000000000..13fc1798e --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart1.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart1>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart5.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart5.dts new file mode 100755 index 000000000..548e74ff8 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-uart5.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart5>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry-waveshare-wm8960-hifi.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-waveshare-wm8960-hifi.dts similarity index 100% rename from arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry-waveshare-wm8960-hifi.dts rename to arch/arm64/boot/dts/sunxi/overlay/bpi-m4berry/bpi-m4berry-waveshare-wm8960-hifi.dts diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/Makefile b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/Makefile new file mode 100755 index 000000000..98a1764c4 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/Makefile @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0 + +dtbo-$(CONFIG_BOARD_BANANAPI_M4ZERO) += \ + bpi-m4zero-i2c0.dtbo \ + bpi-m4zero-i2c1.dtbo \ + bpi-m4zero-uart4.dtbo \ + bpi-m4zero-uart5.dtbo \ + bpi-m4zero-pwm2.dtbo \ + bpi-m4zero-spi1.dtbo \ + bpi-m4zero-spdifout.dtbo \ + bpi-m4zero-i2smic-mems.dtbo \ + bpi-m4zero-nxez-pcm512x-hifi.dtbo \ + bpi-m4zero-waveshare-wm8960-hifi.dtbo + +targets += $(dtbo-y) +always := $(dtbo-y) +clean-files := *.dtbo diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c0.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c0.dts new file mode 100755 index 000000000..25df15a36 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c0.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&twi0>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c1.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c1.dts new file mode 100755 index 000000000..2b56a4def --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2c1.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&twi1>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2smic-mems.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2smic-mems.dts new file mode 100755 index 000000000..0689ea4ff --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-i2smic-mems.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@2 { + target = <&ahub0_plat>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@3 { + target = <&ahub0_mach>; + __overlay__ { + status = "okay"; + + soundcard-mach,capture-only; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-nxez-pcm512x-hifi.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-nxez-pcm512x-hifi.dts new file mode 100755 index 000000000..cc0499ede --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-nxez-pcm512x-hifi.dts @@ -0,0 +1,37 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&twi0>; + __overlay__ { + status = "okay"; + + pcm5122: pcm5122@4d { + compatible = "ti,pcm5122"; + reg = <0x4d>; + #sound-dai-cells = <0>; + status = "okay"; + }; + }; + }; + + fragment@1 { + target = <&ahub0_plat>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&ahub0_mach>; + __overlay__ { + status = "okay"; + + soundcard-mach,playback-only; + soundcard-mach,codec { + sound-dai = <&pcm5122>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-pwm2.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-pwm2.dts new file mode 100755 index 000000000..e69392a54 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-pwm2.dts @@ -0,0 +1,20 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&pwm>; + + __overlay__ { + status = "okay"; + }; + }; + + fragment@1 { + target = <&pwm1>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spdifout.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spdifout.dts new file mode 100755 index 000000000..3268c23b7 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spdifout.dts @@ -0,0 +1,37 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&twi4>; + __overlay__ { + status = "okay"; + + pcm5122: pcm5122@4d { + compatible = "ti,pcm5122"; + reg = <0x4d>; + #sound-dai-cells = <0>; + status = "okay"; + }; + }; + }; + + fragment@1 { + target = <&ahub2_plat>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&ahub2_mach>; + __overlay__ { + status = "okay"; + + soundcard-mach,playback-only; + soundcard-mach,codec { + sound-dai = <&pcm5122>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spi1.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spi1.dts new file mode 100755 index 000000000..96c01985f --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-spi1.dts @@ -0,0 +1,30 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spi1>; + __overlay__ { + status = "okay"; + + spi1_cs_number = <0x2>; + spi1_cs_bitmap = <0x3>; + + spi_board0@0 { + device_type = "spi_board0"; + compatible = "linux,spidev"; + spi-max-frequency = <10000000>; + reg = <0x0>; + status = "okay"; + }; + + spi_board1@1 { + device_type = "spi_board1"; + compatible = "linux,spidev"; + spi-max-frequency = <10000000>; + reg = <0x1>; + status = "okay"; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart4.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart4.dts new file mode 100755 index 000000000..19e6d0114 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart4.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart4>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart5.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart5.dts new file mode 100755 index 000000000..548e74ff8 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-uart5.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&uart5>; + + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-waveshare-wm8960-hifi.dts b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-waveshare-wm8960-hifi.dts new file mode 100755 index 000000000..e7222c68e --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-m4zero/bpi-m4zero-waveshare-wm8960-hifi.dts @@ -0,0 +1,66 @@ +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target-path = "/"; + + __overlay__ { + wm8960_mclk: wm8960_mclk { + compatible = "fixed-clock"; + status = "okay"; + #clock-cells = <0x0>; + clock-frequency = <0xbb8000>; + }; + }; + }; + + fragment@1 { + target = <&twi0>; + __overlay__ { + status = "okay"; + + wm8960: wm8960@1a { + #sound-dai-cells = <0>; + compatible = "wlf,wm8960"; + reg = <0x1a>; + status = "okay"; + clocks = <&wm8960_mclk>; + clock-names = "mclk"; + }; + }; + }; + + fragment@2 { + target = <&ahub0_plat>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@3 { + target = <&ahub0_mach>; + __overlay__ { + status = "okay"; + + soundcard-mach,widgets = + "Microphone", "Mic Jack", + "Line", "Line In", + "Line", "Line Out", + "Speaker", "Speaker", + "Headphone", "Headphone Jack"; + soundcard-mach,routing = + "Headphone Jack", "HP_L", + "Headphone Jack", "HP_R", + "Speaker", "SPK_LP", + "Speaker", "SPK_LN", + "LINPUT1", "Mic Jack", + "LINPUT3", "Mic Jack", + "RINPUT1", "Mic Jack", + "RINPUT2", "Mic Jack"; + soundcard-mach,codec { + sound-dai = <&wm8960>; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/sunxi/overlay/bpi-zero3/Makefile b/arch/arm64/boot/dts/sunxi/overlay/bpi-zero3/Makefile new file mode 100755 index 000000000..88255c143 --- /dev/null +++ b/arch/arm64/boot/dts/sunxi/overlay/bpi-zero3/Makefile @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: GPL-2.0 +dtbo-$(CONFIG_BOARD_ORANGEPI_ZERO3) += \ + sun50i-h616-ph-i2c1.dtbo \ + sun50i-h616-ph-i2c2.dtbo \ + sun50i-h616-ph-i2c3.dtbo \ + sun50i-h616-ph-i2c4.dtbo \ + sun50i-h616-pi-i2c0.dtbo \ + sun50i-h616-pi-i2c1.dtbo \ + sun50i-h616-pi-i2c2.dtbo \ + sun50i-h616-ph-pwm12.dtbo \ + sun50i-h616-ph-pwm34.dtbo \ + sun50i-h616-pi-pwm1.dtbo \ + sun50i-h616-pi-pwm2.dtbo \ + sun50i-h616-pi-pwm3.dtbo \ + sun50i-h616-pi-pwm4.dtbo \ + sun50i-h616-ph-uart2.dtbo \ + sun50i-h616-pi-uart2.dtbo \ + sun50i-h616-pi-uart3.dtbo \ + sun50i-h616-pi-uart4.dtbo \ + sun50i-h616-ph-uart5.dtbo \ + sun50i-h616-powerkey.dtbo \ + sun50i-h616-usb0-host.dtbo \ + sun50i-h616-spi0-spidev.dtbo \ + sun50i-h616-spi1-cs0-spidev.dtbo \ + sun50i-h616-spi1-cs1-spidev.dtbo \ + sun50i-h616-spi1-cs0-cs1-spidev.dtbo \ + sun50i-h616-disable-leds.dtbo \ + sun50i-h616-disable-uart0.dtbo \ + sun50i-h616-zero2w-disable-led.dtbo + +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/sunxi/sun50i-h616-bananapi-m4berry.dts b/arch/arm64/boot/dts/sunxi/sun50i-h616-bananapi-m4berry.dts index a7aa303da..0c91395e8 100644 --- a/arch/arm64/boot/dts/sunxi/sun50i-h616-bananapi-m4berry.dts +++ b/arch/arm64/boot/dts/sunxi/sun50i-h616-bananapi-m4berry.dts @@ -915,37 +915,47 @@ }; uart2-ph-pins { - pins = "PH5", "PH6"; + pins = "PH5", "PH6", "PH7", "PH8"; function = "uart2"; phandle = <0x2d>; }; uart2-ph-sleep { - pins = "PH5", "PH6"; + pins = "PH5", "PH6", "PH7", "PH8"; function = "gpio_in"; phandle = <0x2e>; }; - uart3-ph-pins { - pins = "PI9", "PI10"; + uart2-pg-pins { + pins = "PG15", "PG16", "PG17", "PG18"; + function = "uart2"; + }; + + uart2-pg-sleep { + pins = "PG15", "PG16", "PG17", "PG18"; + function = "gpio_in"; + }; + + uart3-pi-pins { + pins = "PI9", "PI10", "PI11", "PI12"; function = "uart3"; phandle = <0x2f>; }; - uart3-ph-sleep { - pins = "PI9", "PI10"; + uart3-pi-sleep { + pins = "PI9", "PI10", "PI11", "PI12"; function = "gpio_in"; phandle = <0x30>; }; - uart4-ph-pins { - pins = "PI13", "PI14"; + uart4-pi-pins { + pins = "PI13", "PI14", "PI15", "PI16"; function = "uart4"; phandle = <0x31>; }; - uart4-ph-sleep { - pins = "PI13", "PI14"; + uart4-pi-sleep { + pins = "PI13", "PI14", "PI15", "PI16"; function = "gpio_in"; phandle = <0x32>; }; @@ -2952,10 +2962,12 @@ uart1_ph_sleep = "/soc@3000000/pinctrl@300b000/uart1-ph-sleep"; uart2_ph_pins = "/soc@3000000/pinctrl@300b000/uart2-ph-pins"; uart2_ph_sleep = "/soc@3000000/pinctrl@300b000/uart2-ph-sleep"; - uart3_ph_pins = "/soc@3000000/pinctrl@300b000/uart3-ph-pins"; - uart3_ph_sleep = "/soc@3000000/pinctrl@300b000/uart3-ph-sleep"; - uart4_ph_pins = "/soc@3000000/pinctrl@300b000/uart4-ph-pins"; - uart4_ph_sleep = "/soc@3000000/pinctrl@300b000/uart4-ph-sleep"; + uart2_pg_pins = "/soc@3000000/pinctrl@300b000/uart2-pg-pins"; + uart2_pg_sleep = "/soc@3000000/pinctrl@300b000/uart2-pg-sleep"; + uart3_pi_pins = "/soc@3000000/pinctrl@300b000/uart3-pi-pins"; + uart3_pi_sleep = "/soc@3000000/pinctrl@300b000/uart3-pi-sleep"; + uart4_pi_pins = "/soc@3000000/pinctrl@300b000/uart4-pi-pins"; + uart4_pi_sleep = "/soc@3000000/pinctrl@300b000/uart4-pi-sleep"; uart5_ph_pins = "/soc@3000000/pinctrl@300b000/uart5-ph-pins"; uart5_ph_sleep = "/soc@3000000/pinctrl@300b000/uart5-ph-sleep"; s_cir0_pins_a = "/soc@3000000/pinctrl@300b000/s_cir0@0"; diff --git a/arch/arm64/boot/dts/sunxi/sun50i-h616-bananapi-m4zero.dts b/arch/arm64/boot/dts/sunxi/sun50i-h616-bananapi-m4zero.dts index 27cff182d..8e9d7e256 100644 --- a/arch/arm64/boot/dts/sunxi/sun50i-h616-bananapi-m4zero.dts +++ b/arch/arm64/boot/dts/sunxi/sun50i-h616-bananapi-m4zero.dts @@ -2890,7 +2890,7 @@ gpio-keys { compatible = "gpio-keys"; - status = "okay"; + status = "disabled"; autorepeat; power { diff --git a/arch/arm64/configs/bananapi_m4berry_defconfig b/arch/arm64/configs/bananapi_m4berry_defconfig index 8f54040b2..caf90cc19 100644 --- a/arch/arm64/configs/bananapi_m4berry_defconfig +++ b/arch/arm64/configs/bananapi_m4berry_defconfig @@ -274,6 +274,9 @@ CONFIG_ARCH_SUN50I=y CONFIG_ARCH_SUN50IW9=y # CONFIG_ARCH_SUN50IW10 is not set # CONFIG_ARCH_SUN50IW12 is not set +CONFIG_BOARD_BANANAPI_M4BERRY=y +# CONFIG_BOARD_BANANAPI_M4ZERO is not set +# CONFIG_BOARD_ORANGEPI_ZERO3 is not set # CONFIG_FPGA_V4_PLATFORM is not set # CONFIG_FPGA_V7_PLATFORM is not set CONFIG_EVB_PLATFORM=y diff --git a/arch/arm64/configs/bananapi_m4zero_defconfig b/arch/arm64/configs/bananapi_m4zero_defconfig index 00a2337a6..862a9fe77 100644 --- a/arch/arm64/configs/bananapi_m4zero_defconfig +++ b/arch/arm64/configs/bananapi_m4zero_defconfig @@ -274,6 +274,9 @@ CONFIG_ARCH_SUN50I=y CONFIG_ARCH_SUN50IW9=y # CONFIG_ARCH_SUN50IW10 is not set # CONFIG_ARCH_SUN50IW12 is not set +# CONFIG_BOARD_BANANAPI_M4BERRY is not set +CONFIG_BOARD_BANANAPI_M4ZERO=y +# CONFIG_BOARD_ORANGEPI_ZERO3 is not set # CONFIG_FPGA_V4_PLATFORM is not set # CONFIG_FPGA_V7_PLATFORM is not set CONFIG_EVB_PLATFORM=y @@ -4347,7 +4350,8 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_PCM3060_SPI is not set # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set +CONFIG_SND_SOC_PCM512x=m +CONFIG_SND_SOC_PCM512x_I2C=m # CONFIG_SND_SOC_PCM512x_SPI is not set # CONFIG_SND_SOC_RK3328 is not set # CONFIG_SND_SOC_RT5616 is not set @@ -4398,7 +4402,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y # CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set # CONFIG_SND_SOC_WM8904 is not set -# CONFIG_SND_SOC_WM8960 is not set +CONFIG_SND_SOC_WM8960=m # CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_WM8974 is not set # CONFIG_SND_SOC_WM8978 is not set diff --git a/arch/arm64/configs/orangepi_zero3_defconfig b/arch/arm64/configs/orangepi_zero3_defconfig index cf6c966a6..c775943b7 100644 --- a/arch/arm64/configs/orangepi_zero3_defconfig +++ b/arch/arm64/configs/orangepi_zero3_defconfig @@ -275,6 +275,9 @@ CONFIG_ARCH_SUN50I=y CONFIG_ARCH_SUN50IW9=y # CONFIG_ARCH_SUN50IW10 is not set # CONFIG_ARCH_SUN50IW12 is not set +# CONFIG_BOARD_BANANAPI_M4BERRY is not set +# CONFIG_BOARD_BANANAPI_M4ZERO is not set +CONFIG_BOARD_ORANGEPI_ZERO3=y # CONFIG_FPGA_V4_PLATFORM is not set # CONFIG_FPGA_V7_PLATFORM is not set CONFIG_EVB_PLATFORM=y diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index be503a0e6..84936a8cf 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -671,6 +671,7 @@ static struct class *spidev_class; #ifdef CONFIG_OF static const struct of_device_id spidev_dt_ids[] = { + { .compatible = "linux,spidev" }, { .compatible = "rohm,dh2228fv" }, { .compatible = "lineartechnology,ltc2488" }, { .compatible = "ge,achc" },