2023-07-28 10:30:34

by Maso Huang (黃加竹)

[permalink] [raw]
Subject: [PATCH v3 0/6] ASoC: mediatek: Add support for MT7986 SoC

Changes in v3:
- merge clk api to mt7986-afe-pcm.c, remove [2/7] in v2
- refine based on reviewer's suggestions [1/6] [2/6]
- fix the comment format, move in clk api, and simplify based on reviewer's suggestions [3/6]
- remove redundant prefix in dt-binding [6/6]

Changes in v2:
- v1 title: [PATCH 0/7] ASoC: mediatek: Add support for MT79xx SoC
- add missing maintainers
- rename mt79xx to mt7986 in all files
- use clk bulk api in mt7986-afe-clk.c [2/7]
- refine mt79xx-afe-pcm.c based on reviewer's suggestions [4/7]
- refine dt-binding files based on reviewer's suggestions [6/7] [7/7]
- transpose [3/7] and [4/7] in v1 to fix test build errors

Maso Huang (6):
ASoC: mediatek: mt7986: add common header
ASoC: mediatek: mt7986: support etdm in platform driver
ASoC: mediatek: mt7986: add platform driver
ASoC: mediatek: mt7986: add machine driver with wm8960
ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document
ASoC: dt-bindings: mediatek,mt7986-afe: add audio afe document

.../bindings/sound/mediatek,mt7986-afe.yaml | 89 +++
.../sound/mediatek,mt7986-wm8960.yaml | 53 ++
sound/soc/mediatek/Kconfig | 20 +
sound/soc/mediatek/Makefile | 1 +
sound/soc/mediatek/mt7986/Makefile | 9 +
sound/soc/mediatek/mt7986/mt7986-afe-common.h | 49 ++
sound/soc/mediatek/mt7986/mt7986-afe-pcm.c | 622 ++++++++++++++++++
sound/soc/mediatek/mt7986/mt7986-dai-etdm.c | 420 ++++++++++++
sound/soc/mediatek/mt7986/mt7986-reg.h | 206 ++++++
sound/soc/mediatek/mt7986/mt7986-wm8960.c | 184 ++++++
10 files changed, 1653 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt7986-afe.yaml
create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
create mode 100644 sound/soc/mediatek/mt7986/Makefile
create mode 100644 sound/soc/mediatek/mt7986/mt7986-afe-common.h
create mode 100644 sound/soc/mediatek/mt7986/mt7986-afe-pcm.c
create mode 100644 sound/soc/mediatek/mt7986/mt7986-dai-etdm.c
create mode 100644 sound/soc/mediatek/mt7986/mt7986-reg.h
create mode 100644 sound/soc/mediatek/mt7986/mt7986-wm8960.c

--
2.18.0



2023-07-28 11:16:20

by Maso Huang (黃加竹)

[permalink] [raw]
Subject: [PATCH v3 5/6] ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document

Add document for mt7986 board with wm8960.

Signed-off-by: Maso Huang <[email protected]>
---
.../sound/mediatek,mt7986-wm8960.yaml | 53 +++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml

diff --git a/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
new file mode 100644
index 000000000000..76394f7e5502
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/mediatek,mt7986-wm8960.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT7986 sound card with WM8960 codec
+
+maintainers:
+ - Maso Huang <[email protected]>
+
+properties:
+ compatible:
+ const: mediatek,mt7986-wm8960-machine
+
+ mediatek,platform:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: The phandle of MT7986 platform.
+
+ audio-routing:
+ $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+ description:
+ A list of the connections between audio components. Each entry is a
+ sink/source pair of strings. Valid names could be the input or output
+ widgets of audio components, power supplies, MicBias of codec and the
+ software switch.
+
+ mediatek,audio-codec:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: The phandle of wm8960 codec.
+
+additionalProperties: false
+
+required:
+ - compatible
+ - mediatek,platform
+ - audio-routing
+ - mediatek,audio-codec
+
+examples:
+ - |
+ sound {
+ compatible = "mediatek,mt7986-wm8960-machine";
+ mediatek,platform = <&afe>;
+ audio-routing =
+ "Headphone", "HP_L",
+ "Headphone", "HP_R",
+ "LINPUT1", "AMIC",
+ "RINPUT1", "AMIC";
+ mediatek,audio-codec = <&wm8960>;
+ };
+
+...
--
2.18.0


Subject: Re: [PATCH v3 5/6] ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document

Il 28/07/23 11:08, Maso Huang ha scritto:
> Add document for mt7986 board with wm8960.
>
> Signed-off-by: Maso Huang <[email protected]>
> ---
> .../sound/mediatek,mt7986-wm8960.yaml | 53 +++++++++++++++++++
> 1 file changed, 53 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
>
> diff --git a/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
> new file mode 100644
> index 000000000000..76394f7e5502
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
> @@ -0,0 +1,53 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/mediatek,mt7986-wm8960.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MediaTek MT7986 sound card with WM8960 codec
> +
> +maintainers:
> + - Maso Huang <[email protected]>
> +
> +properties:
> + compatible:
> + const: mediatek,mt7986-wm8960-machine

mediatek,mt7986-wm8960-sound looks better.

After which,

Reviewed-by: AngeloGioacchino Del Regno <[email protected]>



2023-07-28 13:16:29

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 5/6] ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document

On 28/07/2023 11:08, Maso Huang wrote:
> Add document for mt7986 board with wm8960.
>
> Signed-off-by: Maso Huang <[email protected]>
> ---
> .../sound/mediatek,mt7986-wm8960.yaml | 53 +++++++++++++++++++
> 1 file changed, 53 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
>
> diff --git a/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
> new file mode 100644
> index 000000000000..76394f7e5502
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
> @@ -0,0 +1,53 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/mediatek,mt7986-wm8960.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MediaTek MT7986 sound card with WM8960 codec
> +
> +maintainers:
> + - Maso Huang <[email protected]>
> +
> +properties:
> + compatible:
> + const: mediatek,mt7986-wm8960-machine
> +
> + mediatek,platform:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: The phandle of MT7986 platform.
> +
> + audio-routing:
> + $ref: /schemas/types.yaml#/definitions/non-unique-string-array
> + description:
> + A list of the connections between audio components. Each entry is a
> + sink/source pair of strings. Valid names could be the input or output
> + widgets of audio components, power supplies, MicBias of codec and the
> + software switch.
> +
> + mediatek,audio-codec:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: The phandle of wm8960 codec.
> +

How did you implement Rob's comment? Or did you just ignore it?

Best regards,
Krzysztof


2023-07-31 08:07:11

by Maso Huang (黃加竹)

[permalink] [raw]
Subject: Re: [PATCH v3 5/6] ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document

On Fri, 2023-07-28 at 14:49 +0200, Krzysztof Kozlowski wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> On 28/07/2023 11:08, Maso Huang wrote:
> > Add document for mt7986 board with wm8960.
> >
> > Signed-off-by: Maso Huang <[email protected]>
> > ---
> > .../sound/mediatek,mt7986-wm8960.yaml | 53
> +++++++++++++++++++
> > 1 file changed, 53 insertions(+)
> > create mode 100644
> Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
> >
> > diff --git
> a/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
> b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
> > new file mode 100644
> > index 000000000000..76394f7e5502
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/sound/mediatek,mt7986-
> wm8960.yaml
> > @@ -0,0 +1,53 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id:
> http://devicetree.org/schemas/sound/mediatek,mt7986-wm8960.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: MediaTek MT7986 sound card with WM8960 codec
> > +
> > +maintainers:
> > + - Maso Huang <[email protected]>
> > +
> > +properties:
> > + compatible:
> > + const: mediatek,mt7986-wm8960-machine
> > +
> > + mediatek,platform:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: The phandle of MT7986 platform.
> > +
> > + audio-routing:
> > + $ref: /schemas/types.yaml#/definitions/non-unique-string-array
> > + description:
> > + A list of the connections between audio components. Each
> entry is a
> > + sink/source pair of strings. Valid names could be the input
> or output
> > + widgets of audio components, power supplies, MicBias of
> codec and the
> > + software switch.
> > +
> > + mediatek,audio-codec:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description: The phandle of wm8960 codec.
> > +
>
> How did you implement Rob's comment? Or did you just ignore it?
>
> Best regards,
> Krzysztof
>

Hi Krzysztof,

Sorry, I did not mean to ignore Rob's comment.
I waited for some suggestion in mail below, but it seems Rob was a
little busy.

https://lore.kernel.org/lkml/[email protected]/

After gentle ping last week and receiving your advice, I thought that
means to send the v3 patch and might discuss dtbingding in v3 series.

So sorry for misunderstanding it, I'll check the details with Rob in v3
series then refine it in v4.

Best regards,
Maso



2023-07-31 08:51:36

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 5/6] ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document

On 31/07/2023 09:31, Maso Huang (黃加竹) wrote:
> On Fri, 2023-07-28 at 14:49 +0200, Krzysztof Kozlowski wrote:
>>
>> External email : Please do not click links or open attachments until
>> you have verified the sender or the content.
>> On 28/07/2023 11:08, Maso Huang wrote:
>>> Add document for mt7986 board with wm8960.
>>>
>>> Signed-off-by: Maso Huang <[email protected]>
>>> ---
>>> .../sound/mediatek,mt7986-wm8960.yaml | 53
>> +++++++++++++++++++
>>> 1 file changed, 53 insertions(+)
>>> create mode 100644
>> Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
>>>
>>> diff --git
>> a/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
>> b/Documentation/devicetree/bindings/sound/mediatek,mt7986-wm8960.yaml
>>> new file mode 100644
>>> index 000000000000..76394f7e5502
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/sound/mediatek,mt7986-
>> wm8960.yaml
>>> @@ -0,0 +1,53 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id:
>> http://devicetree.org/schemas/sound/mediatek,mt7986-wm8960.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: MediaTek MT7986 sound card with WM8960 codec
>>> +
>>> +maintainers:
>>> + - Maso Huang <[email protected]>
>>> +
>>> +properties:
>>> + compatible:
>>> + const: mediatek,mt7986-wm8960-machine
>>> +
>>> + mediatek,platform:
>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>> + description: The phandle of MT7986 platform.
>>> +
>>> + audio-routing:
>>> + $ref: /schemas/types.yaml#/definitions/non-unique-string-array
>>> + description:
>>> + A list of the connections between audio components. Each
>> entry is a
>>> + sink/source pair of strings. Valid names could be the input
>> or output
>>> + widgets of audio components, power supplies, MicBias of
>> codec and the
>>> + software switch.
>>> +
>>> + mediatek,audio-codec:
>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>> + description: The phandle of wm8960 codec.
>>> +
>>
>> How did you implement Rob's comment? Or did you just ignore it?
>>
>> Best regards,
>> Krzysztof
>>
>
> Hi Krzysztof,
>
> Sorry, I did not mean to ignore Rob's comment.
> I waited for some suggestion in mail below, but it seems Rob was a
> little busy.
>
> https://lore.kernel.org/lkml/[email protected]/
>
> After gentle ping last week and receiving your advice, I thought that
> means to send the v3 patch and might discuss dtbingding in v3 series.
>
> So sorry for misunderstanding it, I'll check the details with Rob in v3
> series then refine it in v4.

The problem is that you did not reference in this patch any ongoing
discussion and further questions, so comment looks like addressed, while
it was not.

Rob said:
"in a common schema and reference them "
You said:
"common part yaml and reference to it"
so I think you both agreed on the same.

The advice would be to create common binding which is then referenced by
other and your bindings. However if you start doing it, you will notice
that it is impossible, because you have conflicting types for
"audio-codec", so you cannot have one definition.

This leads to the point - property is probably wrong and you need
dai-link with sound-dai property, just like most cards are doing.

Best regards,
Krzysztof


2023-07-31 16:18:45

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 5/6] ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document

On 31/07/2023 10:14, Krzysztof Kozlowski wrote:
>>>> + mediatek,audio-codec:
>>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>>> + description: The phandle of wm8960 codec.
>>>> +
>>>
>>> How did you implement Rob's comment? Or did you just ignore it?
>>>
>>> Best regards,
>>> Krzysztof
>>>
>>
>> Hi Krzysztof,
>>
>> Sorry, I did not mean to ignore Rob's comment.
>> I waited for some suggestion in mail below, but it seems Rob was a
>> little busy.
>>
>> https://lore.kernel.org/lkml/[email protected]/
>>
>> After gentle ping last week and receiving your advice, I thought that
>> means to send the v3 patch and might discuss dtbingding in v3 series.
>>
>> So sorry for misunderstanding it, I'll check the details with Rob in v3
>> series then refine it in v4.
>
> The problem is that you did not reference in this patch any ongoing
> discussion and further questions, so comment looks like addressed, while
> it was not.
>
> Rob said:
> "in a common schema and reference them "
> You said:
> "common part yaml and reference to it"
> so I think you both agreed on the same.
>
> The advice would be to create common binding which is then referenced by
> other and your bindings. However if you start doing it, you will notice
> that it is impossible, because you have conflicting types for
> "audio-codec", so you cannot have one definition.
>
> This leads to the point - property is probably wrong and you need
> dai-link with sound-dai property, just like most cards are doing.

BTW, might be useful for you, just sent:
https://lore.kernel.org/linux-devicetree/[email protected]/T/#t

Anyway you need dai-links, I think.

Best regards,
Krzysztof


2023-08-04 07:30:50

by Maso Huang (黃加竹)

[permalink] [raw]
Subject: Re: [PATCH v3 5/6] ASoC: dt-bindings: mediatek,mt7986-wm8960: add mt7986-wm8960 document

On Mon, 2023-07-31 at 16:56 +0200, Krzysztof Kozlowski wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> On 31/07/2023 10:14, Krzysztof Kozlowski wrote:
> >>>> + mediatek,audio-codec:
> >>>> + $ref: /schemas/types.yaml#/definitions/phandle
> >>>> + description: The phandle of wm8960 codec.
> >>>> +
> >>>
> >>> How did you implement Rob's comment? Or did you just ignore it?
> >>>
> >>> Best regards,
> >>> Krzysztof
> >>>
> >>
> >> Hi Krzysztof,
> >>
> >> Sorry, I did not mean to ignore Rob's comment.
> >> I waited for some suggestion in mail below, but it seems Rob was a
> >> little busy.
> >>
> >>
> https://lore.kernel.org/lkml/[email protected]/
> >>
> >> After gentle ping last week and receiving your advice, I thought
> that
> >> means to send the v3 patch and might discuss dtbingding in v3
> series.
> >>
> >> So sorry for misunderstanding it, I'll check the details with Rob
> in v3
> >> series then refine it in v4.
> >
> > The problem is that you did not reference in this patch any ongoing
> > discussion and further questions, so comment looks like addressed,
> while
> > it was not.
> >
> > Rob said:
> > "in a common schema and reference them "
> > You said:
> > "common part yaml and reference to it"
> > so I think you both agreed on the same.
> >
> > The advice would be to create common binding which is then
> referenced by
> > other and your bindings. However if you start doing it, you will
> notice
> > that it is impossible, because you have conflicting types for
> > "audio-codec", so you cannot have one definition.
> >
> > This leads to the point - property is probably wrong and you need
> > dai-link with sound-dai property, just like most cards are doing.
>
> BTW, might be useful for you, just sent:
>
https://lore.kernel.org/linux-devicetree/[email protected]/T/#t
>
> Anyway you need dai-links, I think.
>
> Best regards,
> Krzysztof
>

Hi Krzysztof,

Thanks for your useful info!
I'll reference to sound-card-common.yaml for audio-routing.

For mediatek,platform and mediatek,audio-codec, I would like to replace
them with cpu and codec as properties directly like below.

cpu {
sound-dai <&ate>;
};

codec {
sound-dai <&wm8960>;
};

Is that OK?

Best regards,
Maso