[alsa-devel] [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 codec to a schema
Chen-Yu Tsai
wens at csie.org
Tue Aug 27 16:29:33 CEST 2019
On Tue, Aug 27, 2019 at 10:25 PM Maxime Ripard <mripard at kernel.org> wrote:
>
> From: Maxime Ripard <maxime.ripard at bootlin.com>
>
> The Allwinner A33 SoC have an embedded audio codec that is supported in Linux,
> with a matching Device Tree binding.
>
> Now that we have the DT validation in place, let's convert the device tree
> bindings for that controller over to a YAML schemas.
>
> Signed-off-by: Maxime Ripard <maxime.ripard at bootlin.com>
> ---
> .../sound/allwinner,sun8i-a33-codec.yaml | 57 +++++++++++++++++
> .../bindings/sound/sun8i-a33-codec.txt | 63 -------------------
> 2 files changed, 57 insertions(+), 63 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml
> delete mode 100644 Documentation/devicetree/bindings/sound/sun8i-a33-codec.txt
>
> diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml
> new file mode 100644
> index 000000000000..5e7cc05bbff1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml
> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/allwinner,sun8i-a33-codec.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Allwinner A33 Codec Device Tree Bindings
> +
> +maintainers:
> + - Chen-Yu Tsai <wens at csie.org>
> + - Maxime Ripard <maxime.ripard at bootlin.com>
> +
> +properties:
> + "#sound-dai-cells":
> + const: 0
> +
> + compatible:
> + const: allwinner,sun8i-a33-codec
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: Bus Clock
> + - description: Module Clock
> +
> + clock-names:
> + items:
> + - const: bus
> + - const: mod
> +
> +required:
> + - "#sound-dai-cells"
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> + - clock-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + audio-codec at 1c22e00 {
> + #sound-dai-cells = <0>;
> + compatible = "allwinner,sun8i-a33-codec";
> + reg = <0x01c22e00 0x400>;
> + interrupts = <0 29 4>;
> + clocks = <&ccu 47>, <&ccu 92>;
> + clock-names = "bus", "mod";
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/sound/sun8i-a33-codec.txt b/Documentation/devicetree/bindings/sound/sun8i-a33-codec.txt
> deleted file mode 100644
> index 7ecf6bd60d27..000000000000
> --- a/Documentation/devicetree/bindings/sound/sun8i-a33-codec.txt
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -Allwinner SUN8I audio codec
> -------------------------------------
> -
> -On Sun8i-A33 SoCs, the audio is separated in different parts:
> - - A DAI driver. It uses the "sun4i-i2s" driver which is
> - documented here:
> - Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-i2s.yaml
> - - An analog part of the codec which is handled as PRCM registers.
> - See Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt
> - - An digital part of the codec which is documented in this current
> - binding documentation.
> - - And finally, an audio card which links all the above components.
> - The simple-audio card will be used.
> - See Documentation/devicetree/bindings/sound/simple-card.txt
> -
> -This bindings documentation exposes Sun8i codec (digital part).
> -
> -Required properties:
> -- compatible: must be "allwinner,sun8i-a33-codec"
> -- reg: must contain the registers location and length
> -- interrupts: must contain the codec interrupt
> -- clocks: a list of phandle + clock-specifer pairs, one for each entry
> - in clock-names.
> -- clock-names: should contain followings:
> - - "bus": the parent APB clock for this controller
> - - "mod": the parent module clock
> -
> -Here is an example to add a sound card and the codec binding on sun8i SoCs that
> -are similar to A33 using simple-card:
> -
> - sound {
> - compatible = "simple-audio-card";
> - simple-audio-card,name = "sun8i-a33-audio";
> - simple-audio-card,format = "i2s";
> - simple-audio-card,frame-master = <&link_codec>;
> - simple-audio-card,bitclock-master = <&link_codec>;
> - simple-audio-card,mclk-fs = <512>;
> - simple-audio-card,aux-devs = <&codec_analog>;
> - simple-audio-card,routing =
> - "Left DAC", "Digital Left DAC",
> - "Right DAC", "Digital Right DAC";
At some point we should start listing the endpoints available for routing?
ChenYu
> -
> - simple-audio-card,cpu {
> - sound-dai = <&dai>;
> - };
> -
> - link_codec: simple-audio-card,codec {
> - sound-dai = <&codec>;
> - };
> -
> - soc at 1c00000 {
> - [...]
> -
> - audio-codec at 1c22e00 {
> - #sound-dai-cells = <0>;
> - compatible = "allwinner,sun8i-a33-codec";
> - reg = <0x01c22e00 0x400>;
> - interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> - clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
> - clock-names = "bus", "mod";
> - };
> - };
> -
> --
> 2.21.0
>
More information about the Alsa-devel
mailing list