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>;