* [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning
@ 2019-08-27 14:25 Maxime Ripard
2019-08-27 14:25 ` [PATCH 2/5] dt-bindings: sound: Convert Allwinner A10 codec to a schema Maxime Ripard
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Maxime Ripard @ 2019-08-27 14:25 UTC (permalink / raw)
To: Mark Brown, Liam Girdwood, Mark Rutland, Rob Herring, Frank Rowand
Cc: linux-arm-kernel, devicetree, alsa-devel, Chen-Yu Tsai, Maxime Ripard
From: Maxime Ripard <maxime.ripard@bootlin.com>
Even though the H6 compatible has been properly added, the exeption for the
number of DMA channels hasn't been updated, leading in a validation
warning.
Fix this.
Fixes: b20453031472 ("dt-bindings: sound: sun4i-spdif: Add Allwinner H6 compatible")
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
---
.../devicetree/bindings/sound/allwinner,sun4i-a10-spdif.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-spdif.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-spdif.yaml
index e0284d8c3b63..38d4cede0860 100644
--- a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-spdif.yaml
+++ b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-spdif.yaml
@@ -70,7 +70,9 @@ allOf:
properties:
compatible:
contains:
- const: allwinner,sun8i-h3-spdif
+ enum:
+ - allwinner,sun8i-h3-spdif
+ - allwinner,sun50i-h6-spdif
then:
properties:
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/5] dt-bindings: sound: Convert Allwinner A10 codec to a schema
2019-08-27 14:25 [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Maxime Ripard
@ 2019-08-27 14:25 ` Maxime Ripard
2019-08-27 14:25 ` [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 " Maxime Ripard
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Maxime Ripard @ 2019-08-27 14:25 UTC (permalink / raw)
To: Mark Brown, Liam Girdwood, Mark Rutland, Rob Herring, Frank Rowand
Cc: linux-arm-kernel, devicetree, alsa-devel, Chen-Yu Tsai, Maxime Ripard
From: Maxime Ripard <maxime.ripard@bootlin.com>
The Allwinner SoCs 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@bootlin.com>
---
.../sound/allwinner,sun4i-a10-codec.yaml | 162 ++++++++++++++++++
.../devicetree/bindings/sound/sun4i-codec.txt | 94 ----------
2 files changed, 162 insertions(+), 94 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/sun4i-codec.txt
diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml
new file mode 100644
index 000000000000..44feefae0ef0
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/allwinner,sun4i-a10-codec.yaml
@@ -0,0 +1,162 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/allwinner,sun4i-a10-codec.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner A10 Codec Device Tree Bindings
+
+maintainers:
+ - Chen-Yu Tsai <wens@csie.org>
+ - Maxime Ripard <maxime.ripard@bootlin.com>
+
+properties:
+ "#sound-dai-cells":
+ const: 0
+
+ compatible:
+ enum:
+ - allwinner,sun4i-a10-codec
+ - allwinner,sun6i-a31-codec
+ - allwinner,sun7i-a20-codec
+ - allwinner,sun8i-a23-codec
+ - allwinner,sun8i-h3-codec
+ - allwinner,sun8i-v3s-codec
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: Bus Clock
+ - description: Module Clock
+
+ clock-names:
+ items:
+ - const: apb
+ - const: codec
+
+ dmas:
+ items:
+ - description: RX DMA Channel
+ - description: TX DMA Channel
+
+ dma-names:
+ items:
+ - const: rx
+ - const: tx
+
+ resets:
+ maxItems: 1
+
+ allwinner,audio-routing:
+ $ref: /schemas/types.yaml#definitions/non-unique-string-array
+ description: |-
+ A list of the connections between audio components. Each entry
+ is a pair of strings, the first being the connection\'s sink, the
+ second being the connection\'s source. Valid names include
+
+ Audio pins on the SoC
+ HP
+ HPCOM
+ LINEIN (not on sun8i-v3s)
+ LINEOUT (not on sun8i-a23 or sun8i-v3s)
+ MIC1
+ MIC2 (not on sun8i-v3s)
+ MIC3 (only on sun6i-a31)
+
+ Microphone biases from the SoC
+ HBIAS
+ MBIAS (not on sun8i-v3s)
+
+ Board connectors
+ Headphone
+ Headset Mic
+ Line In
+ Line Out
+ Mic
+ Speaker
+
+ allwinner,codec-analog-controls:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Phandle to the codec analog controls in the PRCM
+
+ allwinner,pa-gpios:
+ description: GPIO to enable the external amplifier
+
+required:
+ - "#sound-dai-cells"
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+ - dmas
+ - dma-names
+
+if:
+ properties:
+ compatible:
+ enum:
+ - allwinner,sun6i-a31-codec
+ - allwinner,sun8i-a23-codec
+ - allwinner,sun8i-h3-codec
+ - allwinner,sun8i-v3s-codec
+
+then:
+ if:
+ properties:
+ compatible:
+ const: allwinner,sun6i-a31-codec
+
+ then:
+ required:
+ - resets
+ - allwinner,audio-routing
+
+ else:
+ required:
+ - resets
+ - allwinner,audio-routing
+ - allwinner,codec-analog-controls
+
+additionalProperties: false
+
+examples:
+ - |
+ codec@1c22c00 {
+ #sound-dai-cells = <0>;
+ compatible = "allwinner,sun7i-a20-codec";
+ reg = <0x01c22c00 0x40>;
+ interrupts = <0 30 4>;
+ clocks = <&apb0_gates 0>, <&codec_clk>;
+ clock-names = "apb", "codec";
+ dmas = <&dma 0 19>, <&dma 0 19>;
+ dma-names = "rx", "tx";
+ };
+
+ - |
+ codec@1c22c00 {
+ #sound-dai-cells = <0>;
+ compatible = "allwinner,sun6i-a31-codec";
+ reg = <0x01c22c00 0x98>;
+ interrupts = <0 29 4>;
+ clocks = <&ccu 61>, <&ccu 135>;
+ clock-names = "apb", "codec";
+ resets = <&ccu 42>;
+ dmas = <&dma 15>, <&dma 15>;
+ dma-names = "rx", "tx";
+ allwinner,audio-routing =
+ "Headphone", "HP",
+ "Speaker", "LINEOUT",
+ "LINEIN", "Line In",
+ "MIC1", "MBIAS",
+ "MIC1", "Mic",
+ "MIC2", "HBIAS",
+ "MIC2", "Headset Mic";
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/sound/sun4i-codec.txt b/Documentation/devicetree/bindings/sound/sun4i-codec.txt
deleted file mode 100644
index 66579bbd3294..000000000000
--- a/Documentation/devicetree/bindings/sound/sun4i-codec.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-* Allwinner A10 Codec
-
-Required properties:
-- compatible: must be one of the following compatibles:
- - "allwinner,sun4i-a10-codec"
- - "allwinner,sun6i-a31-codec"
- - "allwinner,sun7i-a20-codec"
- - "allwinner,sun8i-a23-codec"
- - "allwinner,sun8i-h3-codec"
- - "allwinner,sun8i-v3s-codec"
-- reg: must contain the registers location and length
-- interrupts: must contain the codec interrupt
-- dmas: DMA channels for tx and rx dma. See the DMA client binding,
- Documentation/devicetree/bindings/dma/dma.txt
-- dma-names: should include "tx" and "rx".
-- clocks: a list of phandle + clock-specifer pairs, one for each entry
- in clock-names.
-- clock-names: should contain the following:
- - "apb": the parent APB clock for this controller
- - "codec": the parent module clock
-
-Optional properties:
-- allwinner,pa-gpios: gpio to enable external amplifier
-
-Required properties for the following compatibles:
- - "allwinner,sun6i-a31-codec"
- - "allwinner,sun8i-a23-codec"
- - "allwinner,sun8i-h3-codec"
- - "allwinner,sun8i-v3s-codec"
-- resets: phandle to the reset control for this device
-- allwinner,audio-routing: A list of the connections between audio components.
- Each entry is a pair of strings, the first being the
- connection's sink, the second being the connection's
- source. Valid names include:
-
- Audio pins on the SoC:
- "HP"
- "HPCOM"
- "LINEIN" (not on sun8i-v3s)
- "LINEOUT" (not on sun8i-a23 or sun8i-v3s)
- "MIC1"
- "MIC2" (not on sun8i-v3s)
- "MIC3" (sun6i-a31 only)
-
- Microphone biases from the SoC:
- "HBIAS"
- "MBIAS" (not on sun8i-v3s)
-
- Board connectors:
- "Headphone"
- "Headset Mic"
- "Line In"
- "Line Out"
- "Mic"
- "Speaker"
-
-Required properties for the following compatibles:
- - "allwinner,sun8i-a23-codec"
- - "allwinner,sun8i-h3-codec"
- - "allwinner,sun8i-v3s-codec"
-- allwinner,codec-analog-controls: A phandle to the codec analog controls
- block in the PRCM.
-
-Example:
-codec: codec@1c22c00 {
- #sound-dai-cells = <0>;
- compatible = "allwinner,sun7i-a20-codec";
- reg = <0x01c22c00 0x40>;
- interrupts = <0 30 4>;
- clocks = <&apb0_gates 0>, <&codec_clk>;
- clock-names = "apb", "codec";
- dmas = <&dma 0 19>, <&dma 0 19>;
- dma-names = "rx", "tx";
-};
-
-codec: codec@1c22c00 {
- #sound-dai-cells = <0>;
- compatible = "allwinner,sun6i-a31-codec";
- reg = <0x01c22c00 0x98>;
- interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&ccu CLK_APB1_CODEC>, <&ccu CLK_CODEC>;
- clock-names = "apb", "codec";
- resets = <&ccu RST_APB1_CODEC>;
- dmas = <&dma 15>, <&dma 15>;
- dma-names = "rx", "tx";
- allwinner,audio-routing =
- "Headphone", "HP",
- "Speaker", "LINEOUT",
- "LINEIN", "Line In",
- "MIC1", "MBIAS",
- "MIC1", "Mic",
- "MIC2", "HBIAS",
- "MIC2", "Headset Mic";
-};
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 codec to a schema
2019-08-27 14:25 [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Maxime Ripard
2019-08-27 14:25 ` [PATCH 2/5] dt-bindings: sound: Convert Allwinner A10 codec to a schema Maxime Ripard
@ 2019-08-27 14:25 ` Maxime Ripard
2019-08-27 14:29 ` Chen-Yu Tsai
2019-08-27 14:25 ` [PATCH 4/5] dt-bindings: sound: Convert Allwinner A23 analog " Maxime Ripard
` (2 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Maxime Ripard @ 2019-08-27 14:25 UTC (permalink / raw)
To: Mark Brown, Liam Girdwood, Mark Rutland, Rob Herring, Frank Rowand
Cc: linux-arm-kernel, devicetree, alsa-devel, Chen-Yu Tsai, Maxime Ripard
From: Maxime Ripard <maxime.ripard@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@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@csie.org>
+ - Maxime Ripard <maxime.ripard@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@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";
-
- simple-audio-card,cpu {
- sound-dai = <&dai>;
- };
-
- link_codec: simple-audio-card,codec {
- sound-dai = <&codec>;
- };
-
- soc@1c00000 {
- [...]
-
- audio-codec@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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/5] dt-bindings: sound: Convert Allwinner A23 analog codec to a schema
2019-08-27 14:25 [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Maxime Ripard
2019-08-27 14:25 ` [PATCH 2/5] dt-bindings: sound: Convert Allwinner A10 codec to a schema Maxime Ripard
2019-08-27 14:25 ` [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 " Maxime Ripard
@ 2019-08-27 14:25 ` Maxime Ripard
2019-08-27 14:25 ` [PATCH 5/5] dt-bindings: sound: Convert Allwinner A64 " Maxime Ripard
2019-08-27 18:14 ` [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Mark Brown
4 siblings, 0 replies; 8+ messages in thread
From: Maxime Ripard @ 2019-08-27 14:25 UTC (permalink / raw)
To: Mark Brown, Liam Girdwood, Mark Rutland, Rob Herring, Frank Rowand
Cc: linux-arm-kernel, devicetree, alsa-devel, Chen-Yu Tsai, Maxime Ripard
From: Maxime Ripard <maxime.ripard@bootlin.com>
The Allwinner A23 SoC and later have an embedded audio codec that uses a
separate controller to drive its analog part, which 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@bootlin.com>
---
.../allwinner,sun8i-a23-codec-analog.yaml | 38 +++++++++++++++++++
.../bindings/sound/sun8i-codec-analog.txt | 17 ---------
2 files changed, 38 insertions(+), 17 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/allwinner,sun8i-a23-codec-analog.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt
diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun8i-a23-codec-analog.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun8i-a23-codec-analog.yaml
new file mode 100644
index 000000000000..832779389cbd
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/allwinner,sun8i-a23-codec-analog.yaml
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/allwinner,sun8i-a23-codec-analog.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner A23 Analog Codec Device Tree Bindings
+
+maintainers:
+ - Chen-Yu Tsai <wens@csie.org>
+ - Maxime Ripard <maxime.ripard@bootlin.com>
+
+properties:
+ compatible:
+ oneOf:
+ # FIXME: This is documented in the PRCM binding, but needs to be
+ # migrated here at some point
+ # - const: allwinner,sun8i-a23-codec-analog
+ - const: allwinner,sun8i-h3-codec-analog
+ - const: allwinner,sun8i-v3s-codec-analog
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ codec_analog: codec-analog@1f015c0 {
+ compatible = "allwinner,sun8i-h3-codec-analog";
+ reg = <0x01f015c0 0x4>;
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt b/Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt
deleted file mode 100644
index 07356758bd91..000000000000
--- a/Documentation/devicetree/bindings/sound/sun8i-codec-analog.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-* Allwinner Codec Analog Controls
-
-Required properties:
-- compatible: must be one of the following compatibles:
- - "allwinner,sun8i-a23-codec-analog"
- - "allwinner,sun8i-h3-codec-analog"
- - "allwinner,sun8i-v3s-codec-analog"
-
-Required properties if not a sub-node of the PRCM node:
-- reg: must contain the registers location and length
-
-Example:
-prcm: prcm@1f01400 {
- codec_analog: codec-analog {
- compatible = "allwinner,sun8i-a23-codec-analog";
- };
-};
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/5] dt-bindings: sound: Convert Allwinner A64 analog codec to a schema
2019-08-27 14:25 [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Maxime Ripard
` (2 preceding siblings ...)
2019-08-27 14:25 ` [PATCH 4/5] dt-bindings: sound: Convert Allwinner A23 analog " Maxime Ripard
@ 2019-08-27 14:25 ` Maxime Ripard
2019-08-27 18:14 ` [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Mark Brown
4 siblings, 0 replies; 8+ messages in thread
From: Maxime Ripard @ 2019-08-27 14:25 UTC (permalink / raw)
To: Mark Brown, Liam Girdwood, Mark Rutland, Rob Herring, Frank Rowand
Cc: linux-arm-kernel, devicetree, alsa-devel, Chen-Yu Tsai, Maxime Ripard
From: Maxime Ripard <maxime.ripard@bootlin.com>
The Allwinner A64 SoC has an embedded audio codec that uses a separate
controller to drive its analog part, which 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@bootlin.com>
---
.../allwinner,sun50i-a64-codec-analog.yaml | 39 +++++++++++++++++++
.../bindings/sound/sun50i-codec-analog.txt | 14 -------
2 files changed, 39 insertions(+), 14 deletions(-)
create mode 100644 Documentation/devicetree/bindings/sound/allwinner,sun50i-a64-codec-analog.yaml
delete mode 100644 Documentation/devicetree/bindings/sound/sun50i-codec-analog.txt
diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun50i-a64-codec-analog.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun50i-a64-codec-analog.yaml
new file mode 100644
index 000000000000..f290eb72a878
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/allwinner,sun50i-a64-codec-analog.yaml
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/allwinner,sun50i-a64-codec-analog.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner A64 Analog Codec Device Tree Bindings
+
+maintainers:
+ - Chen-Yu Tsai <wens@csie.org>
+ - Maxime Ripard <maxime.ripard@bootlin.com>
+
+properties:
+ compatible:
+ const: allwinner,sun50i-a64-codec-analog
+
+ reg:
+ maxItems: 1
+
+ cpvdd-supply:
+ description:
+ Regulator for the headphone amplifier
+
+required:
+ - compatible
+ - reg
+ - cpvdd-supply
+
+additionalProperties: false
+
+examples:
+ - |
+ codec_analog: codec-analog@1f015c0 {
+ compatible = "allwinner,sun50i-a64-codec-analog";
+ reg = <0x01f015c0 0x4>;
+ cpvdd-supply = <®_eldo1>;
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/sound/sun50i-codec-analog.txt b/Documentation/devicetree/bindings/sound/sun50i-codec-analog.txt
deleted file mode 100644
index 056a098495cc..000000000000
--- a/Documentation/devicetree/bindings/sound/sun50i-codec-analog.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-* Allwinner A64 Codec Analog Controls
-
-Required properties:
-- compatible: must be one of the following compatibles:
- - "allwinner,sun50i-a64-codec-analog"
-- reg: must contain the registers location and length
-- cpvdd-supply: Regulator supply for the headphone amplifier
-
-Example:
- codec_analog: codec-analog@1f015c0 {
- compatible = "allwinner,sun50i-a64-codec-analog";
- reg = <0x01f015c0 0x4>;
- cpvdd-supply = <®_eldo1>;
- };
--
2.21.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 codec to a schema
2019-08-27 14:25 ` [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 " Maxime Ripard
@ 2019-08-27 14:29 ` Chen-Yu Tsai
2019-08-28 12:52 ` Maxime Ripard
0 siblings, 1 reply; 8+ messages in thread
From: Chen-Yu Tsai @ 2019-08-27 14:29 UTC (permalink / raw)
To: Maxime Ripard
Cc: Mark Rutland, devicetree, Linux-ALSA, Liam Girdwood, Rob Herring,
Mark Brown, Frank Rowand, linux-arm-kernel
On Tue, Aug 27, 2019 at 10:25 PM Maxime Ripard <mripard@kernel.org> wrote:
>
> From: Maxime Ripard <maxime.ripard@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@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@csie.org>
> + - Maxime Ripard <maxime.ripard@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@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@1c00000 {
> - [...]
> -
> - audio-codec@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
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning
2019-08-27 14:25 [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Maxime Ripard
` (3 preceding siblings ...)
2019-08-27 14:25 ` [PATCH 5/5] dt-bindings: sound: Convert Allwinner A64 " Maxime Ripard
@ 2019-08-27 18:14 ` Mark Brown
4 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2019-08-27 18:14 UTC (permalink / raw)
To: Maxime Ripard
Cc: Mark Rutland, devicetree, alsa-devel, Liam Girdwood,
Chen-Yu Tsai, Rob Herring, Frank Rowand, linux-arm-kernel
[-- Attachment #1.1: Type: text/plain, Size: 450 bytes --]
On Tue, Aug 27, 2019 at 04:25:43PM +0200, Maxime Ripard wrote:
> From: Maxime Ripard <maxime.ripard@bootlin.com>
>
> Even though the H6 compatible has been properly added, the exeption for the
> number of DMA channels hasn't been updated, leading in a validation
> warning.
Please use subject lines matching the style for the subsystem. This
makes it easier for people to identify relevant patches. This
doesn't even have ASoC in it...
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 codec to a schema
2019-08-27 14:29 ` Chen-Yu Tsai
@ 2019-08-28 12:52 ` Maxime Ripard
0 siblings, 0 replies; 8+ messages in thread
From: Maxime Ripard @ 2019-08-28 12:52 UTC (permalink / raw)
To: Chen-Yu Tsai
Cc: Mark Rutland, devicetree, Linux-ALSA, Liam Girdwood, Rob Herring,
Mark Brown, Frank Rowand, linux-arm-kernel
[-- Attachment #1.1: Type: text/plain, Size: 5261 bytes --]
Hi,
On Tue, Aug 27, 2019 at 10:29:33PM +0800, Chen-Yu Tsai wrote:
> On Tue, Aug 27, 2019 at 10:25 PM Maxime Ripard <mripard@kernel.org> wrote:
> >
> > From: Maxime Ripard <maxime.ripard@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@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@csie.org>
> > + - Maxime Ripard <maxime.ripard@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@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?
Yeah, we should do that. I'm not sure how easy it would be using the
schemas though.
Maxime
--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-08-28 12:53 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-27 14:25 [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Maxime Ripard
2019-08-27 14:25 ` [PATCH 2/5] dt-bindings: sound: Convert Allwinner A10 codec to a schema Maxime Ripard
2019-08-27 14:25 ` [PATCH 3/5] dt-bindings: sound: Convert Allwinner A33 " Maxime Ripard
2019-08-27 14:29 ` Chen-Yu Tsai
2019-08-28 12:52 ` Maxime Ripard
2019-08-27 14:25 ` [PATCH 4/5] dt-bindings: sound: Convert Allwinner A23 analog " Maxime Ripard
2019-08-27 14:25 ` [PATCH 5/5] dt-bindings: sound: Convert Allwinner A64 " Maxime Ripard
2019-08-27 18:14 ` [PATCH 1/5] dt-bindings: sound: sun4i-spdif: Fix dma-names warning Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).