lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 8 Nov 2018 14:52:19 +0800
From:   Chen-Yu Tsai <wens@...e.org>
To:     Vasily Khoruzhick <anarsoul@...il.com>
Cc:     Maxime Ripard <maxime.ripard@...tlin.com>,
        Rob Herring <robh+dt@...nel.org>,
        Mark Rutland <mark.rutland@....com>,
        linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
        devicetree <devicetree@...r.kernel.org>,
        linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v6 1/3] arm64: dts: allwinner: a64: add nodes necessary
 for analog sound support

On Thu, Nov 8, 2018 at 2:42 PM Vasily Khoruzhick <anarsoul@...il.com> wrote:
>
> Add nodes for i2s, digital and analog parts of audiocodec on A64
>
> Signed-off-by: Vasily Khoruzhick <anarsoul@...il.com>
> ---
>  arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 58 +++++++++++++++++++
>  1 file changed, 58 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> index f3a66f888205..53796a3e6bf3 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
> @@ -173,6 +173,34 @@
>                 compatible = "linux,spdif-dit";
>         };
>
> +       sound: sound {
> +               compatible = "simple-audio-card";
> +               simple-audio-card,name = "sun50i-a64-audio";
> +               simple-audio-card,format = "i2s";
> +               simple-audio-card,frame-master = <&cpudai>;
> +               simple-audio-card,bitclock-master = <&cpudai>;
> +               simple-audio-card,mclk-fs = <512>;
> +               simple-audio-card,aux-devs = <&codec_analog>;
> +               simple-audio-card,routing =
> +                               "Left DAC", "AIF1 Slot 0 Left",
> +                               "Right DAC", "AIF1 Slot 0 Right",
> +                               "AIF1 Slot 0 Left ADC", "Left ADC",
> +                               "AIF1 Slot 0 Right ADC", "Right ADC",
> +                               "Left ADC", "ADC",
> +                               "Right ADC", "ADC",

The ADC widget is an overall enable control for the digital part of
the codec's ADC.
It is modeled as a supply widget in sun8i-codec. The routing should be internal
to sun8i-codec. See the following for the DAC routing:

    https://elixir.bootlin.com/linux/v4.20-rc1/source/sound/soc/sunxi/sun8i-codec.c#L474

> +                               "MIC1", "Mic",
> +                               "MIC2", "Headset Mic";

Drop the last two. These belong at the board level. And as previously mentioned,
these two widgets from the sun8i-codec driver are bogus.

> +               status = "disabled";
> +
> +               cpudai: simple-audio-card,cpu {
> +                       sound-dai = <&dai>;
> +               };
> +
> +               link_codec: simple-audio-card,codec {
> +                       sound-dai = <&codec>;
> +               };
> +       };
> +
>         timer {
>                 compatible = "arm,armv8-timer";
>                 interrupts = <GIC_PPI 13
> @@ -665,6 +693,30 @@
>                         status = "disabled";
>                 };
>
> +               dai: dai@...2c00 {
> +                       #sound-dai-cells = <0>;
> +                       compatible = "allwinner,sun50i-a64-codec-i2s";
> +                       reg = <0x01c22c00 0x200>;
> +                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> +                       clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
> +                       clock-names = "apb", "mod";
> +                       resets = <&ccu RST_BUS_CODEC>;
> +                       reset-names = "rst";
> +                       dmas = <&dma 15>, <&dma 15>;
> +                       dma-names = "rx", "tx";
> +                       status = "disabled";
> +               };
> +
> +               codec: codec@...2e00 {
> +                       #sound-dai-cells = <0>;
> +                       compatible = "allwinner,sun8i-a33-codec";
> +                       reg = <0x01c22e00 0x600>;
> +                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
> +                       clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
> +                       clock-names = "bus", "mod";
> +                       status = "disabled";
> +               };
> +
>                 uart0: serial@...8000 {
>                         compatible = "snps,dw-apb-uart";
>                         reg = <0x01c28000 0x400>;
> @@ -902,6 +954,12 @@
>                         #reset-cells = <1>;
>                 };
>
> +               codec_analog: codec-analog@...15c0 {
> +                       compatible = "allwinner,sun50i-a64-codec-analog";
> +                       reg = <0x01f015c0 0x4>;
> +                       status = "disabled";
> +               };
> +
>                 r_i2c: i2c@...2400 {
>                         compatible = "allwinner,sun50i-a64-i2c",
>                                      "allwinner,sun6i-a31-i2c";
> --
> 2.19.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ