mirror of
https://github.com/armbian/build.git
synced 2025-08-09 12:46:58 +02:00
* 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-sound-pinecube-kernel.patch - Add patch to enable audio codec in pinecube with v3s compatible - Built and tested on Armbian Buster with Kernel 5.11.x (edge)
86 lines
2.5 KiB
Diff
86 lines
2.5 KiB
Diff
diff --git a/arch/arm/boot/dts/sun8i-s3-pinecube.dts b/arch/arm/boot/dts/sun8i-s3-pinecube.dts
|
|
index 4aa0ee897a0a..9416aa6f1e96 100644
|
|
--- a/arch/arm/boot/dts/sun8i-s3-pinecube.dts
|
|
+++ b/arch/arm/boot/dts/sun8i-s3-pinecube.dts
|
|
@@ -58,6 +58,15 @@ wifi_pwrseq: wifi_pwrseq {
|
|
};
|
|
};
|
|
|
|
+&codec {
|
|
+ allwinner,audio-routing =
|
|
+ "Speaker", "LINEOUT",
|
|
+ "MIC1", "Mic",
|
|
+ "Mic", "MBIAS";
|
|
+ allwinner,pa-gpios = <&pio 6 6 GPIO_ACTIVE_HIGH>; /* PG6 */
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
&csi1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&csi1_8bit_pins>;
|
|
diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
|
|
index 89abd4cc7e23..1b9278f75ae3 100644
|
|
--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
|
|
+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
|
|
@@ -163,6 +163,15 @@ syscon: system-control@1c00000 {
|
|
ranges;
|
|
};
|
|
|
|
+ dma: dma-controller@1c02000 {
|
|
+ compatible = "allwinner,sun8i-v3s-dma";
|
|
+ reg = <0x01c02000 0x1000>;
|
|
+ interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ clocks = <&ccu CLK_BUS_DMA>;
|
|
+ resets = <&ccu RST_BUS_DMA>;
|
|
+ #dma-cells = <1>;
|
|
+ };
|
|
+
|
|
tcon0: lcd-controller@1c0c000 {
|
|
compatible = "allwinner,sun8i-v3s-tcon";
|
|
reg = <0x01c0c000 0x1000>;
|
|
@@ -408,6 +417,25 @@ lradc: lradc@1c22800 {
|
|
status = "disabled";
|
|
};
|
|
|
|
+ codec: codec@1c22c00 {
|
|
+ #sound-dai-cells = <1>;
|
|
+ compatible = "allwinner,sun8i-v3s-codec";
|
|
+ reg = <0x01c22c00 0x400>;
|
|
+ interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
|
|
+ clock-names = "apb", "codec";
|
|
+ resets = <&ccu RST_BUS_CODEC>;
|
|
+ dmas = <&dma 15>, <&dma 15>;
|
|
+ dma-names = "rx", "tx";
|
|
+ allwinner,codec-analog-controls = <&codec_analog>;
|
|
+ status = "disabled";
|
|
+ };
|
|
+
|
|
+ codec_analog: codec-analog@1c23000 {
|
|
+ compatible = "allwinner,sun8i-v3s-codec-analog";
|
|
+ reg = <0x01c23000 0x4>;
|
|
+ };
|
|
+
|
|
uart0: serial@1c28000 {
|
|
compatible = "snps,dw-apb-uart";
|
|
reg = <0x01c28000 0x400>;
|
|
diff --git a/sound/soc/sunxi/sun8i-codec-analog.c b/sound/soc/sunxi/sun8i-codec-analog.c
|
|
index be872eefa61e..10387fa9f9c4 100644
|
|
--- a/sound/soc/sunxi/sun8i-codec-analog.c
|
|
+++ b/sound/soc/sunxi/sun8i-codec-analog.c
|
|
@@ -729,8 +729,12 @@ static int sun8i_codec_analog_add_mixer(struct snd_soc_component *cmpnt,
|
|
}
|
|
|
|
static const struct sun8i_codec_analog_quirks sun8i_v3s_quirks = {
|
|
- .has_headphone = true,
|
|
- .has_hmic = true,
|
|
+ .has_headphone = true,
|
|
+ .has_hmic = true,
|
|
+ .has_linein = true,
|
|
+ .has_lineout = true,
|
|
+ .has_mbias = true,
|
|
+ .has_mic2 = true,
|
|
};
|
|
|
|
static int sun8i_codec_analog_cmpnt_probe(struct snd_soc_component *cmpnt)
|