From be412d2ddd756e1f933c95af437b6b67d0c55bbf Mon Sep 17 00:00:00 2001 From: juanesf Date: Tue, 1 Jun 2021 13:48:04 -0400 Subject: [PATCH] Bpi-M2-Ultra enable audio on branches (#2866) * Remove unnecessary patch - this patch works when compiling and installing manually. - the dtb with the changes is taken from the kernel and not from u-boot, therefore this patch does not work. * Add enable-audio-codec-bpim2ultra-kernel.patch - Add patch to enable audio codec in bpi-m2-ultra with h3 compatible - Built and tested on Armbian Buster with Kernel 5.11.x (edge) * Bpi-M2-Ultra enable audio on branches - This finishes enabling the audio codec in the other kernels (5.4 - 5.10 - 5.11) - Remove patch from u-boot folder (my bug) - Compiled and tested in their respective kernel with debian buster * Bpi-M2-Ultra enable audio kernel 5.12 - add patch to kernel 5.12 --- ...enable-audio-codec-bpim2ultra-kernel.patch | 50 +++++++++++++++++++ ...enable-audio-codec-bpim2ultra-kernel.patch | 50 +++++++++++++++++++ ...enable-audio-codec-bpim2ultra-kernel.patch | 50 +++++++++++++++++++ ...enable-audio-codec-bpim2ultra-kernel.patch | 50 +++++++++++++++++++ 4 files changed, 200 insertions(+) create mode 100644 patch/kernel/archive/sunxi-5.10/enable-audio-codec-bpim2ultra-kernel.patch create mode 100644 patch/kernel/archive/sunxi-5.11/enable-audio-codec-bpim2ultra-kernel.patch create mode 100644 patch/kernel/archive/sunxi-5.12/enable-audio-codec-bpim2ultra-kernel.patch create mode 100644 patch/kernel/archive/sunxi-5.4/enable-audio-codec-bpim2ultra-kernel.patch diff --git a/patch/kernel/archive/sunxi-5.10/enable-audio-codec-bpim2ultra-kernel.patch b/patch/kernel/archive/sunxi-5.10/enable-audio-codec-bpim2ultra-kernel.patch new file mode 100644 index 0000000000..c4ca221535 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.10/enable-audio-codec-bpim2ultra-kernel.patch @@ -0,0 +1,50 @@ +diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +index a6a1087a0c9b..3ad67d12cb9f 100644 +--- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts ++++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +@@ -113,6 +113,16 @@ &ahci { + status = "okay"; + }; + ++&codec { ++ allwinner,audio-routing = ++ "Headphone", "HP", ++ "Headphone", "HPCOM", ++ "MIC1", "Mic", ++ "Mic", "MBIAS"; ++ allwinner,codec-analog-controls = <&codec_analog>; ++ status = "okay"; ++}; ++ + &de { + status = "okay"; + }; +diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi +index 7907569e7b5c..63d531617f59 100644 +--- a/arch/arm/boot/dts/sun8i-r40.dtsi ++++ b/arch/arm/boot/dts/sun8i-r40.dtsi +@@ -672,6 +672,24 @@ ths: thermal-sensor@1c24c00 { + #thermal-sensor-cells = <1>; + }; + ++ codec: codec@1c22c00 { ++ #sound-dai-cells = <1>; ++ compatible = "allwinner,sun8i-h3-codec"; ++ reg = <0x01c22c00 0x300>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_CODEC>; ++ clock-names = "apb", "codec"; ++ resets = <&ccu RST_BUS_CODEC>; ++ dmas = <&dma 19>, <&dma 19>; ++ dma-names = "rx", "tx"; ++ status = "disabled"; ++ }; ++ ++ codec_analog: codec-analog@1c22f00 { ++ compatible = "allwinner,sun8i-a23-codec-analog"; ++ reg = <0x01c22f00 0x4>; ++ }; ++ + uart0: serial@1c28000 { + compatible = "snps,dw-apb-uart"; + reg = <0x01c28000 0x400>; diff --git a/patch/kernel/archive/sunxi-5.11/enable-audio-codec-bpim2ultra-kernel.patch b/patch/kernel/archive/sunxi-5.11/enable-audio-codec-bpim2ultra-kernel.patch new file mode 100644 index 0000000000..c4ca221535 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.11/enable-audio-codec-bpim2ultra-kernel.patch @@ -0,0 +1,50 @@ +diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +index a6a1087a0c9b..3ad67d12cb9f 100644 +--- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts ++++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +@@ -113,6 +113,16 @@ &ahci { + status = "okay"; + }; + ++&codec { ++ allwinner,audio-routing = ++ "Headphone", "HP", ++ "Headphone", "HPCOM", ++ "MIC1", "Mic", ++ "Mic", "MBIAS"; ++ allwinner,codec-analog-controls = <&codec_analog>; ++ status = "okay"; ++}; ++ + &de { + status = "okay"; + }; +diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi +index 7907569e7b5c..63d531617f59 100644 +--- a/arch/arm/boot/dts/sun8i-r40.dtsi ++++ b/arch/arm/boot/dts/sun8i-r40.dtsi +@@ -672,6 +672,24 @@ ths: thermal-sensor@1c24c00 { + #thermal-sensor-cells = <1>; + }; + ++ codec: codec@1c22c00 { ++ #sound-dai-cells = <1>; ++ compatible = "allwinner,sun8i-h3-codec"; ++ reg = <0x01c22c00 0x300>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_CODEC>; ++ clock-names = "apb", "codec"; ++ resets = <&ccu RST_BUS_CODEC>; ++ dmas = <&dma 19>, <&dma 19>; ++ dma-names = "rx", "tx"; ++ status = "disabled"; ++ }; ++ ++ codec_analog: codec-analog@1c22f00 { ++ compatible = "allwinner,sun8i-a23-codec-analog"; ++ reg = <0x01c22f00 0x4>; ++ }; ++ + uart0: serial@1c28000 { + compatible = "snps,dw-apb-uart"; + reg = <0x01c28000 0x400>; diff --git a/patch/kernel/archive/sunxi-5.12/enable-audio-codec-bpim2ultra-kernel.patch b/patch/kernel/archive/sunxi-5.12/enable-audio-codec-bpim2ultra-kernel.patch new file mode 100644 index 0000000000..c4ca221535 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.12/enable-audio-codec-bpim2ultra-kernel.patch @@ -0,0 +1,50 @@ +diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +index a6a1087a0c9b..3ad67d12cb9f 100644 +--- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts ++++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +@@ -113,6 +113,16 @@ &ahci { + status = "okay"; + }; + ++&codec { ++ allwinner,audio-routing = ++ "Headphone", "HP", ++ "Headphone", "HPCOM", ++ "MIC1", "Mic", ++ "Mic", "MBIAS"; ++ allwinner,codec-analog-controls = <&codec_analog>; ++ status = "okay"; ++}; ++ + &de { + status = "okay"; + }; +diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi +index 7907569e7b5c..63d531617f59 100644 +--- a/arch/arm/boot/dts/sun8i-r40.dtsi ++++ b/arch/arm/boot/dts/sun8i-r40.dtsi +@@ -672,6 +672,24 @@ ths: thermal-sensor@1c24c00 { + #thermal-sensor-cells = <1>; + }; + ++ codec: codec@1c22c00 { ++ #sound-dai-cells = <1>; ++ compatible = "allwinner,sun8i-h3-codec"; ++ reg = <0x01c22c00 0x300>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_CODEC>; ++ clock-names = "apb", "codec"; ++ resets = <&ccu RST_BUS_CODEC>; ++ dmas = <&dma 19>, <&dma 19>; ++ dma-names = "rx", "tx"; ++ status = "disabled"; ++ }; ++ ++ codec_analog: codec-analog@1c22f00 { ++ compatible = "allwinner,sun8i-a23-codec-analog"; ++ reg = <0x01c22f00 0x4>; ++ }; ++ + uart0: serial@1c28000 { + compatible = "snps,dw-apb-uart"; + reg = <0x01c28000 0x400>; diff --git a/patch/kernel/archive/sunxi-5.4/enable-audio-codec-bpim2ultra-kernel.patch b/patch/kernel/archive/sunxi-5.4/enable-audio-codec-bpim2ultra-kernel.patch new file mode 100644 index 0000000000..c4ca221535 --- /dev/null +++ b/patch/kernel/archive/sunxi-5.4/enable-audio-codec-bpim2ultra-kernel.patch @@ -0,0 +1,50 @@ +diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +index a6a1087a0c9b..3ad67d12cb9f 100644 +--- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts ++++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +@@ -113,6 +113,16 @@ &ahci { + status = "okay"; + }; + ++&codec { ++ allwinner,audio-routing = ++ "Headphone", "HP", ++ "Headphone", "HPCOM", ++ "MIC1", "Mic", ++ "Mic", "MBIAS"; ++ allwinner,codec-analog-controls = <&codec_analog>; ++ status = "okay"; ++}; ++ + &de { + status = "okay"; + }; +diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi +index 7907569e7b5c..63d531617f59 100644 +--- a/arch/arm/boot/dts/sun8i-r40.dtsi ++++ b/arch/arm/boot/dts/sun8i-r40.dtsi +@@ -672,6 +672,24 @@ ths: thermal-sensor@1c24c00 { + #thermal-sensor-cells = <1>; + }; + ++ codec: codec@1c22c00 { ++ #sound-dai-cells = <1>; ++ compatible = "allwinner,sun8i-h3-codec"; ++ reg = <0x01c22c00 0x300>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_CODEC>; ++ clock-names = "apb", "codec"; ++ resets = <&ccu RST_BUS_CODEC>; ++ dmas = <&dma 19>, <&dma 19>; ++ dma-names = "rx", "tx"; ++ status = "disabled"; ++ }; ++ ++ codec_analog: codec-analog@1c22f00 { ++ compatible = "allwinner,sun8i-a23-codec-analog"; ++ reg = <0x01c22f00 0x4>; ++ }; ++ + uart0: serial@1c28000 { + compatible = "snps,dw-apb-uart"; + reg = <0x01c28000 0x400>;