diff mbox series

[v6,02/13] ASoC: dt-bindings: simple-card: Add additional-devs subnode

Message ID 20230623085830.749991-3-herve.codina@bootlin.com
State Accepted
Commit b5f3484117b86cb128f500ff2d730c3cfcb9ddfc
Headers show
Series Add support for IIO devices in ASoC | expand

Commit Message

Herve Codina June 23, 2023, 8:58 a.m. UTC
The additional-devs subnode allows to declared some virtual devices
as sound card children.
These virtual devices can then be used by the sound card and so be
present in the audio path.

The first virtual device supported is the audio IIO auxiliary device
in order to support an IIO device as an audio auxiliary device.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 .../bindings/sound/simple-card.yaml           | 53 +++++++++++++++++++
 1 file changed, 53 insertions(+)

Comments

Christophe Leroy June 27, 2023, 9:53 a.m. UTC | #1
Le 23/06/2023 à 10:58, Herve Codina a écrit :
> The additional-devs subnode allows to declared some virtual devices
> as sound card children.
> These virtual devices can then be used by the sound card and so be
> present in the audio path.
> 
> The first virtual device supported is the audio IIO auxiliary device
> in order to support an IIO device as an audio auxiliary device.
> 
> Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Reviewed-by: Christophe Leroy <christophe.leroy@©sgroup.eu>

> ---
>   .../bindings/sound/simple-card.yaml           | 53 +++++++++++++++++++
>   1 file changed, 53 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/sound/simple-card.yaml b/Documentation/devicetree/bindings/sound/simple-card.yaml
> index b05e05c81cc4..59ac2d1d1ccf 100644
> --- a/Documentation/devicetree/bindings/sound/simple-card.yaml
> +++ b/Documentation/devicetree/bindings/sound/simple-card.yaml
> @@ -148,6 +148,15 @@ definitions:
>       required:
>         - sound-dai
>   
> +  additional-devs:
> +    type: object
> +    description:
> +      Additional devices used by the simple audio card.
> +    patternProperties:
> +      '^iio-aux(-.+)?$':
> +        type: object
> +        $ref: audio-iio-aux.yaml#
> +
>   properties:
>     compatible:
>       contains:
> @@ -187,6 +196,8 @@ properties:
>       $ref: "#/definitions/mclk-fs"
>     simple-audio-card,aux-devs:
>       $ref: "#/definitions/aux-devs"
> +  simple-audio-card,additional-devs:
> +    $ref: "#/definitions/additional-devs"
>     simple-audio-card,convert-rate:
>       $ref: "#/definitions/convert-rate"
>     simple-audio-card,convert-channels:
> @@ -359,6 +370,48 @@ examples:
>           };
>       };
>   
> +# --------------------
> +# route audio to/from a codec through an amplifier
> +# designed with a potentiometer driven by IIO:
> +# --------------------
> +  - |
> +    sound {
> +        compatible = "simple-audio-card";
> +
> +        simple-audio-card,aux-devs = <&amp_in>, <&amp_out>;
> +        simple-audio-card,routing =
> +            "CODEC LEFTIN", "AMP_IN LEFT OUT",
> +            "CODEC RIGHTIN", "AMP_IN RIGHT OUT",
> +            "AMP_OUT LEFT IN", "CODEC LEFTOUT",
> +            "AMP_OUT RIGHT IN", "CODEC RIGHTOUT";
> +
> +        simple-audio-card,additional-devs {
> +            amp_out: iio-aux-out {
> +                compatible = "audio-iio-aux";
> +                io-channels = <&pot_out 0>, <&pot_out 1>;
> +                io-channel-names = "LEFT", "RIGHT";
> +                snd-control-invert-range = <1 1>;
> +                sound-name-prefix = "AMP_OUT";
> +            };
> +
> +            amp_in: iio_aux-in {
> +                compatible = "audio-iio-aux";
> +                io-channels = <&pot_in 0>, <&pot_in 1>;
> +                io-channel-names = "LEFT", "RIGHT";
> +                sound-name-prefix = "AMP_IN";
> +            };
> +        };
> +
> +        simple-audio-card,cpu {
> +            sound-dai = <&cpu>;
> +        };
> +
> +        simple-audio-card,codec {
> +            sound-dai = <&codec>;
> +            clocks = <&clocks>;
> +        };
> +    };
> +
>   # --------------------
>   # Sampling Rate Conversion
>   # --------------------
Christophe Leroy June 27, 2023, 9:54 a.m. UTC | #2
Le 23/06/2023 à 10:58, Herve Codina a écrit :
> The additional-devs subnode allows to declared some virtual devices
> as sound card children.
> These virtual devices can then be used by the sound card and so be
> present in the audio path.
> 
> The first virtual device supported is the audio IIO auxiliary device
> in order to support an IIO device as an audio auxiliary device.
> 
> Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>

> ---
>   .../bindings/sound/simple-card.yaml           | 53 +++++++++++++++++++
>   1 file changed, 53 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/sound/simple-card.yaml b/Documentation/devicetree/bindings/sound/simple-card.yaml
> index b05e05c81cc4..59ac2d1d1ccf 100644
> --- a/Documentation/devicetree/bindings/sound/simple-card.yaml
> +++ b/Documentation/devicetree/bindings/sound/simple-card.yaml
> @@ -148,6 +148,15 @@ definitions:
>       required:
>         - sound-dai
>   
> +  additional-devs:
> +    type: object
> +    description:
> +      Additional devices used by the simple audio card.
> +    patternProperties:
> +      '^iio-aux(-.+)?$':
> +        type: object
> +        $ref: audio-iio-aux.yaml#
> +
>   properties:
>     compatible:
>       contains:
> @@ -187,6 +196,8 @@ properties:
>       $ref: "#/definitions/mclk-fs"
>     simple-audio-card,aux-devs:
>       $ref: "#/definitions/aux-devs"
> +  simple-audio-card,additional-devs:
> +    $ref: "#/definitions/additional-devs"
>     simple-audio-card,convert-rate:
>       $ref: "#/definitions/convert-rate"
>     simple-audio-card,convert-channels:
> @@ -359,6 +370,48 @@ examples:
>           };
>       };
>   
> +# --------------------
> +# route audio to/from a codec through an amplifier
> +# designed with a potentiometer driven by IIO:
> +# --------------------
> +  - |
> +    sound {
> +        compatible = "simple-audio-card";
> +
> +        simple-audio-card,aux-devs = <&amp_in>, <&amp_out>;
> +        simple-audio-card,routing =
> +            "CODEC LEFTIN", "AMP_IN LEFT OUT",
> +            "CODEC RIGHTIN", "AMP_IN RIGHT OUT",
> +            "AMP_OUT LEFT IN", "CODEC LEFTOUT",
> +            "AMP_OUT RIGHT IN", "CODEC RIGHTOUT";
> +
> +        simple-audio-card,additional-devs {
> +            amp_out: iio-aux-out {
> +                compatible = "audio-iio-aux";
> +                io-channels = <&pot_out 0>, <&pot_out 1>;
> +                io-channel-names = "LEFT", "RIGHT";
> +                snd-control-invert-range = <1 1>;
> +                sound-name-prefix = "AMP_OUT";
> +            };
> +
> +            amp_in: iio_aux-in {
> +                compatible = "audio-iio-aux";
> +                io-channels = <&pot_in 0>, <&pot_in 1>;
> +                io-channel-names = "LEFT", "RIGHT";
> +                sound-name-prefix = "AMP_IN";
> +            };
> +        };
> +
> +        simple-audio-card,cpu {
> +            sound-dai = <&cpu>;
> +        };
> +
> +        simple-audio-card,codec {
> +            sound-dai = <&codec>;
> +            clocks = <&clocks>;
> +        };
> +    };
> +
>   # --------------------
>   # Sampling Rate Conversion
>   # --------------------
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/sound/simple-card.yaml b/Documentation/devicetree/bindings/sound/simple-card.yaml
index b05e05c81cc4..59ac2d1d1ccf 100644
--- a/Documentation/devicetree/bindings/sound/simple-card.yaml
+++ b/Documentation/devicetree/bindings/sound/simple-card.yaml
@@ -148,6 +148,15 @@  definitions:
     required:
       - sound-dai
 
+  additional-devs:
+    type: object
+    description:
+      Additional devices used by the simple audio card.
+    patternProperties:
+      '^iio-aux(-.+)?$':
+        type: object
+        $ref: audio-iio-aux.yaml#
+
 properties:
   compatible:
     contains:
@@ -187,6 +196,8 @@  properties:
     $ref: "#/definitions/mclk-fs"
   simple-audio-card,aux-devs:
     $ref: "#/definitions/aux-devs"
+  simple-audio-card,additional-devs:
+    $ref: "#/definitions/additional-devs"
   simple-audio-card,convert-rate:
     $ref: "#/definitions/convert-rate"
   simple-audio-card,convert-channels:
@@ -359,6 +370,48 @@  examples:
         };
     };
 
+# --------------------
+# route audio to/from a codec through an amplifier
+# designed with a potentiometer driven by IIO:
+# --------------------
+  - |
+    sound {
+        compatible = "simple-audio-card";
+
+        simple-audio-card,aux-devs = <&amp_in>, <&amp_out>;
+        simple-audio-card,routing =
+            "CODEC LEFTIN", "AMP_IN LEFT OUT",
+            "CODEC RIGHTIN", "AMP_IN RIGHT OUT",
+            "AMP_OUT LEFT IN", "CODEC LEFTOUT",
+            "AMP_OUT RIGHT IN", "CODEC RIGHTOUT";
+
+        simple-audio-card,additional-devs {
+            amp_out: iio-aux-out {
+                compatible = "audio-iio-aux";
+                io-channels = <&pot_out 0>, <&pot_out 1>;
+                io-channel-names = "LEFT", "RIGHT";
+                snd-control-invert-range = <1 1>;
+                sound-name-prefix = "AMP_OUT";
+            };
+
+            amp_in: iio_aux-in {
+                compatible = "audio-iio-aux";
+                io-channels = <&pot_in 0>, <&pot_in 1>;
+                io-channel-names = "LEFT", "RIGHT";
+                sound-name-prefix = "AMP_IN";
+            };
+        };
+
+        simple-audio-card,cpu {
+            sound-dai = <&cpu>;
+        };
+
+        simple-audio-card,codec {
+            sound-dai = <&codec>;
+            clocks = <&clocks>;
+        };
+    };
+
 # --------------------
 # Sampling Rate Conversion
 # --------------------