On Wed, 23 Oct 2024 20:57:03 +1300
Ryan Walklin <ryan@xxxxxxxxxxxxx> wrote:
Hi,
> Now that the H616 (and variants) audio codec is supported, enable it for
> boards with a mainline DTS. The Tanix TX1, Transpeed 8K618-T and X-96
> Mate have all been tested with the onboard 3.5mm audio jack and the
> Orange Pi Zero 3 with a 3.5mm jack connected to the audio header.
Martin, if I see this correctly, the Bigtreetech Pi also has an audio jack
(but not the Manta)?
Should we enable the codec then there, too? Can you maybe test this?
> The RG35XX (2024, -H, -Plus and -SP variants) are also tested working
> but have a separate mux and GPIO-controlled (PI5) power amplifier to
> support both a headphone jack and onboard speakers.
>
> The headphone jack has a GPIO for jack detection, but this is not
> currently supported by the driver, so audio is heard both via the
> headphone jack and speakers when the speaker amp is powered (by the
> CLDO1 regulator, defined as always-on until proper jack detection is
> implemented).
Is the support for that board then premature? Because this would introduce
a regression, wouldn't it? With kernel 6.13 and this proposed DT it would
work, courtesy of regulator-always-on, but future DTs (as provided by
up-to-date firmware like U-Boot) with kernel v6.13 would not anymore, as
the 6.13 code wouldn't know about the upcoming jack detection bits. So this
would break forward compatibility.
> Define the audio codec and routing for all supported H616 and variant
> boards, and power and speaker amp enablement where present on boards and
> known.
For TX1, OrangePi, X96 Mate, 8K618-T:
Reviewed-by: Andre Przywara <andre.przywara@xxxxxxx>
For Tanix TX1, OPi Zero3, X96 Mate, Transpeed 8K618-T:
Tested-by: Andre Przywara <andre.przywara@xxxxxxx>
Cheers,
Andre
>
> Signed-off-by: Ryan Walklin <ryan@xxxxxxxxxxxxx>
> Tested-by: Philippe Simons <simons.philippe@xxxxxxxxx>
> ---
> Changelog v1..v2:
> - Add codec enablement all supported boards.
> ---
> .../boot/dts/allwinner/sun50i-h313-tanix-tx1.dts | 5 +++++
> .../dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 5 +++++
> .../boot/dts/allwinner/sun50i-h616-x96-mate.dts | 5 +++++
> .../dts/allwinner/sun50i-h618-orangepi-zero2w.dts | 5 +++++
> .../dts/allwinner/sun50i-h618-transpeed-8k618-t.dts | 5 +++++
> .../allwinner/sun50i-h700-anbernic-rg35xx-2024.dts | 13 +++++++++++--
> 6 files changed, 36 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts
> index bb2cde59bd033..bafd3e803106b 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts
> @@ -65,6 +65,11 @@ reg_vcc5v: vcc5v {
> };
> };
>
> +&codec {
> + allwinner,audio-routing = "Line Out", "LINEOUT";
> + status = "okay";
> +};
> +
> &cpu0 {
> cpu-supply = <®_dcdc2>;
> };
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
> index fc7315b944065..19c5cf75f3f7d 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi
> @@ -59,6 +59,11 @@ reg_usb1_vbus: regulator-usb1-vbus {
> };
> };
>
> +&codec {
> + allwinner,audio-routing = "Line Out", "LINEOUT";
> + status = "okay";
> +};
> +
> &ehci1 {
> status = "okay";
> };
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> index 26d25b5b59e0f..6dfe4eab91f6a 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> @@ -33,6 +33,11 @@ reg_vcc5v: vcc5v {
> };
> };
>
> +&codec {
> + allwinner,audio-routing = "Line Out", "LINEOUT";
> + status = "okay";
> +};
> +
> &cpu0 {
> cpu-supply = <®_dcdca>;
> };
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
> index 6a4f0da972330..a0fe7a9afb77c 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
> @@ -54,6 +54,11 @@ reg_vcc3v3: vcc3v3 {
> };
> };
>
> +&codec {
> + allwinner,audio-routing = "Line Out", "LINEOUT";
> + status = "okay";
> +};
> +
> &cpu0 {
> cpu-supply = <®_dcdc2>;
> };
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> index d6631bfe629fa..59ee2b253ea4b 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
> @@ -52,6 +52,11 @@ wifi_pwrseq: pwrseq {
> };
> };
>
> +&codec {
> + allwinner,audio-routing = "Line Out", "LINEOUT";
> + status = "okay";
> +};
> +
> &cpu0 {
> cpu-supply = <®_dcdc2>;
> };
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> index 899ae3be5683c..89de86b442155 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
> @@ -237,6 +237,12 @@ panel_in_rgb: endpoint {
> };
> };
>
> +&codec {
> + allwinner,audio-routing = "Line Out", "LINEOUT";
> + allwinner,pa-gpios = <&pio 8 5 GPIO_ACTIVE_HIGH>; // PI5
> + status = "okay";
> +};
> +
> &cpu0 {
> cpu-supply = <®_dcdc1>;
> };
> @@ -352,7 +358,7 @@ reg_aldo3: aldo3 {
> reg_aldo4: aldo4 {
> regulator-min-microvolt = <1800000>;
> regulator-max-microvolt = <1800000>;
> - regulator-name = "vcc-pg";
> + regulator-name = "avcc";
> };
>
> reg_bldo1: bldo1 {
> @@ -375,7 +381,10 @@ reg_bldo4: bldo4 {
> };
>
> reg_cldo1: cldo1 {
> - /* 3.3v - audio codec - not yet implemented */
> + regulator-always-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "vcc-spkr-amp";
> };
>
> reg_cldo2: cldo2 {
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]