2022-08-29 07:58:15

by Chancel Liu

[permalink] [raw]
Subject: [PATCH 1/5] ASoC: dt-bindings: fsl_rpmsg: Add a property to assign platform driver name

Add a string property to assign ASoC platform driver name. It also
represents the rpmsg channel this sound card sits on. This property
can be omitted if there is only one sound card and it sits on
"rpmsg-audio-channel".

Signed-off-by: Chancel Liu <[email protected]>
---
.../devicetree/bindings/sound/fsl,rpmsg.yaml | 34 +++++++++++++++++--
1 file changed, 32 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
index d370c98a62c7..35e3cb9f768b 100644
--- a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
+++ b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
@@ -11,8 +11,11 @@ maintainers:

description: |
fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
- are SAI, DMA controlled by Cortex M core. What we see from Linux
- side is a device which provides audio service by rpmsg channel.
+ are SAI, MICFIL, DMA controlled by Cortex M core. What we see from
+ Linux side is a device which provides audio service by rpmsg channel.
+ We can create different sound cards which access different hardwares
+ such as SAI, MICFIL, .etc through building rpmsg channels between
+ Cortex-A and Cortex-M.

properties:
compatible:
@@ -85,6 +88,14 @@ properties:
This is a boolean property. If present, the receiving function
will be enabled.

+ fsl,platform:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ A string property to assign ASoC platform driver name. It also
+ represents the rpmsg channel this sound card sits on. This property
+ can be omitted if there is only one sound card and it sits on
+ "rpmsg-audio-channel".
+
required:
- compatible
- model
@@ -107,3 +118,22 @@ examples:
<&clk IMX8MN_AUDIO_PLL2_OUT>;
clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
};
+
+ - |
+ #include <dt-bindings/clock/imx8mm-clock.h>
+
+ rpmsg_micfil: rpmsg_micfil {
+ compatible = "fsl,imx8mm-rpmsg-audio";
+ model = "micfil-audio";
+ fsl,platform = "rpmsg-micfil-channel";
+ fsl,enable-lpa;
+ fsl,rpmsg-in;
+ clocks = <&clk IMX8MM_CLK_PDM_IPG>,
+ <&clk IMX8MM_CLK_PDM_ROOT>,
+ <&clk IMX8MM_CLK_SDMA3_ROOT>,
+ <&clk IMX8MM_AUDIO_PLL1_OUT>,
+ <&clk IMX8MM_AUDIO_PLL2_OUT>;
+ clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
+ };
+
+...
--
2.25.1


2022-08-30 06:41:31

by Shengjiu Wang

[permalink] [raw]
Subject: RE: [PATCH 1/5] ASoC: dt-bindings: fsl_rpmsg: Add a property to assign platform driver name

>
> Add a string property to assign ASoC platform driver name. It also represents
> the rpmsg channel this sound card sits on. This property can be omitted if
> there is only one sound card and it sits on "rpmsg-audio-channel".
>
> Signed-off-by: Chancel Liu <[email protected]>
> ---
> .../devicetree/bindings/sound/fsl,rpmsg.yaml | 34 +++++++++++++++++--
> 1 file changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> index d370c98a62c7..35e3cb9f768b 100644
> --- a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> +++ b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> @@ -11,8 +11,11 @@ maintainers:
>
> description: |
> fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
> - are SAI, DMA controlled by Cortex M core. What we see from Linux
> - side is a device which provides audio service by rpmsg channel.
> + are SAI, MICFIL, DMA controlled by Cortex M core. What we see from
> + Linux side is a device which provides audio service by rpmsg channel.
> + We can create different sound cards which access different hardwares
> + such as SAI, MICFIL, .etc through building rpmsg channels between
> + Cortex-A and Cortex-M.
>
> properties:
> compatible:
> @@ -85,6 +88,14 @@ properties:
> This is a boolean property. If present, the receiving function
> will be enabled.
>
> + fsl,platform:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + A string property to assign ASoC platform driver name. It also
> + represents the rpmsg channel this sound card sits on. This property
> + can be omitted if there is only one sound card and it sits on
> + "rpmsg-audio-channel".

Please add enum to list supported strings.

Best regards
Wang Shengjiu
> +
> required:
> - compatible
> - model
> @@ -107,3 +118,22 @@ examples:
> <&clk IMX8MN_AUDIO_PLL2_OUT>;
> clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
> };
> +
> + - |
> + #include <dt-bindings/clock/imx8mm-clock.h>
> +
> + rpmsg_micfil: rpmsg_micfil {
> + compatible = "fsl,imx8mm-rpmsg-audio";
> + model = "micfil-audio";
> + fsl,platform = "rpmsg-micfil-channel";
> + fsl,enable-lpa;
> + fsl,rpmsg-in;
> + clocks = <&clk IMX8MM_CLK_PDM_IPG>,
> + <&clk IMX8MM_CLK_PDM_ROOT>,
> + <&clk IMX8MM_CLK_SDMA3_ROOT>,
> + <&clk IMX8MM_AUDIO_PLL1_OUT>,
> + <&clk IMX8MM_AUDIO_PLL2_OUT>;
> + clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
> + };
> +
> +...
> --
> 2.25.1

2022-08-30 09:40:50

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/5] ASoC: dt-bindings: fsl_rpmsg: Add a property to assign platform driver name

On 29/08/2022 10:51, Chancel Liu wrote:
> Add a string property to assign ASoC platform driver name. It also
> represents the rpmsg channel this sound card sits on. This property
> can be omitted if there is only one sound card and it sits on
> "rpmsg-audio-channel".
>
> Signed-off-by: Chancel Liu <[email protected]>
> ---
> .../devicetree/bindings/sound/fsl,rpmsg.yaml | 34 +++++++++++++++++--
> 1 file changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> index d370c98a62c7..35e3cb9f768b 100644
> --- a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> +++ b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> @@ -11,8 +11,11 @@ maintainers:
>
> description: |
> fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
> - are SAI, DMA controlled by Cortex M core. What we see from Linux
> - side is a device which provides audio service by rpmsg channel.
> + are SAI, MICFIL, DMA controlled by Cortex M core. What we see from
> + Linux side is a device which provides audio service by rpmsg channel.
> + We can create different sound cards which access different hardwares
> + such as SAI, MICFIL, .etc through building rpmsg channels between
> + Cortex-A and Cortex-M.
>
> properties:
> compatible:
> @@ -85,6 +88,14 @@ properties:
> This is a boolean property. If present, the receiving function
> will be enabled.
>
> + fsl,platform:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + A string property to assign ASoC platform driver name.

No, this is not a property of hardware. Naming of some drivers in some
systems does not fit DTS and bindings.

> It also
> + represents the rpmsg channel this sound card sits on. This property
> + can be omitted if there is only one sound card and it sits on
> + "rpmsg-audio-channel".
> +
> required:
> - compatible
> - model
> @@ -107,3 +118,22 @@ examples:
> <&clk IMX8MN_AUDIO_PLL2_OUT>;
> clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
> };
> +
> + - |
> + #include <dt-bindings/clock/imx8mm-clock.h>
> +
> + rpmsg_micfil: rpmsg_micfil {

Node names should be generic.
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation

Also: no underscores in node names.

Best regards,
Krzysztof

2022-09-13 07:22:23

by Chancel Liu

[permalink] [raw]
Subject: RE: Re: [PATCH 1/5] ASoC: dt-bindings: fsl_rpmsg: Add a property to assign platform driver name

> > Add a string property to assign ASoC platform driver name. It also
> > represents the rpmsg channel this sound card sits on. This property
> > can be omitted if there is only one sound card and it sits on
> > "rpmsg-audio-channel".
> >
> > Signed-off-by: Chancel Liu <[email protected]>
> > ---
> > .../devicetree/bindings/sound/fsl,rpmsg.yaml | 34 +++++++++++++++++--
> > 1 file changed, 32 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> > index d370c98a62c7..35e3cb9f768b 100644
> > --- a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> > +++ b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
> > @@ -11,8 +11,11 @@ maintainers:
> >
> > description: |
> > fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
> > - are SAI, DMA controlled by Cortex M core. What we see from Linux
> > - side is a device which provides audio service by rpmsg channel.
> > + are SAI, MICFIL, DMA controlled by Cortex M core. What we see from
> > + Linux side is a device which provides audio service by rpmsg channel.
> > + We can create different sound cards which access different hardwares
> > + such as SAI, MICFIL, .etc through building rpmsg channels between
> > + Cortex-A and Cortex-M.
> >
> > properties:
> > compatible:
> > @@ -85,6 +88,14 @@ properties:
> > This is a boolean property. If present, the receiving function
> > will be enabled.
> >
> > + fsl,platform:
> > + $ref: /schemas/types.yaml#/definitions/string
> > + description: |
> > + A string property to assign ASoC platform driver name.
>
> No, this is not a property of hardware. Naming of some drivers in some
> systems does not fit DTS and bindings.
>

This property aims to tell the ASoC driver which rpmsg channel the
sound card depends on. If there are several sound cards sit on rpmsg,
we should pass correct information in dts node to specify the name of
rpmsg channel. That is why I meant to add this property. I just want to
use a string property to distinguish different names of rpmsg channel.

Actually this property is hardware-related. As we discussed before,
this kind of sound card based on rpmsg works under this mechanism
Cortex-A core tells the Cortex-M core configuration of the PCM
parameters then Cortex-M controls real hardware devices. This property
specifying rpmsg channel represents the real hardware audio controller.

That's my idea adding this property. Do you have any better suggestion?

> > It also
> > + represents the rpmsg channel this sound card sits on. This property
> > + can be omitted if there is only one sound card and it sits on
> > + "rpmsg-audio-channel".
> > +
> > required:
> > - compatible
> > - model
> > @@ -107,3 +118,22 @@ examples:
> > <&clk IMX8MN_AUDIO_PLL2_OUT>;
> > clock-names = "ipg", "mclk", "dma", "pll8k", "pll11k";
> > };
> > +
> > + - |
> > + #include <dt-bindings/clock/imx8mm-clock.h>
> > +
> > + rpmsg_micfil: rpmsg_micfil {
>
> Node names should be generic.
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdevicetre
> e-specification.readthedocs.io%2Fen%2Flatest%2Fchapter2-devicetree-basics.h
> tml%23generic-names-recommendation&amp;data=05%7C01%7Cchancel.liu%
> 40nxp.com%7C8d5f4ca9669349c597b908da8a6a0311%7C686ea1d3bc2b4c6fa
> 92cd99c5c301635%7C0%7C0%7C637974485190445475%7CUnknown%7CTWFp
> bGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6
> Mn0%3D%7C3000%7C%7C%7C&amp;sdata=SgDveDWfYyVYhBrG9gpi2aPgGV4j
> PwtqbQOtbaE%2FI2s%3D&amp;reserved=0
>
> Also: no underscores in node names.
>
> Best regards,
> Krzysztof

Thanks for your reminder. We will rename the node in patches for next
version like:

rpmsg_micfil: audio-controller {
// property;
};

Regards,
Chancel Liu

2022-09-13 08:47:01

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/5] ASoC: dt-bindings: fsl_rpmsg: Add a property to assign platform driver name

On 13/09/2022 09:14, Chancel Liu wrote:
>>> Add a string property to assign ASoC platform driver name. It also
>>> represents the rpmsg channel this sound card sits on. This property
>>> can be omitted if there is only one sound card and it sits on
>>> "rpmsg-audio-channel".
>>>
>>> Signed-off-by: Chancel Liu <[email protected]>
>>> ---
>>> .../devicetree/bindings/sound/fsl,rpmsg.yaml | 34 +++++++++++++++++--
>>> 1 file changed, 32 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
>> b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
>>> index d370c98a62c7..35e3cb9f768b 100644
>>> --- a/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
>>> +++ b/Documentation/devicetree/bindings/sound/fsl,rpmsg.yaml
>>> @@ -11,8 +11,11 @@ maintainers:
>>>
>>> description: |
>>> fsl_rpmsg is a virtual audio device. Mapping to real hardware devices
>>> - are SAI, DMA controlled by Cortex M core. What we see from Linux
>>> - side is a device which provides audio service by rpmsg channel.
>>> + are SAI, MICFIL, DMA controlled by Cortex M core. What we see from
>>> + Linux side is a device which provides audio service by rpmsg channel.
>>> + We can create different sound cards which access different hardwares
>>> + such as SAI, MICFIL, .etc through building rpmsg channels between
>>> + Cortex-A and Cortex-M.
>>>
>>> properties:
>>> compatible:
>>> @@ -85,6 +88,14 @@ properties:
>>> This is a boolean property. If present, the receiving function
>>> will be enabled.
>>>
>>> + fsl,platform:
>>> + $ref: /schemas/types.yaml#/definitions/string
>>> + description: |
>>> + A string property to assign ASoC platform driver name.
>>
>> No, this is not a property of hardware. Naming of some drivers in some
>> systems does not fit DTS and bindings.
>>
>
> This property aims to tell the ASoC driver which rpmsg channel the
> sound card depends on. If there are several sound cards sit on rpmsg,
> we should pass correct information in dts node to specify the name of
> rpmsg channel. That is why I meant to add this property. I just want to
> use a string property to distinguish different names of rpmsg channel.
>
> Actually this property is hardware-related. As we discussed before,
> this kind of sound card based on rpmsg works under this mechanism
> Cortex-A core tells the Cortex-M core configuration of the PCM
> parameters then Cortex-M controls real hardware devices. This property
> specifying rpmsg channel represents the real hardware audio controller.
>
> That's my idea adding this property. Do you have any better suggestion?

Any reason why not using phandle to sound card node? If your property is
about rpmsg channel name, use something like that, e.g.
"fsl,rpmsg-channel-name" or What you wrote in property description and
here are quite different things...

Best regards,
Krzysztof