* [v5 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s
@ 2022-03-19 11:41 ` Jiaxin Yu
0 siblings, 0 replies; 68+ messages in thread
From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw)
To: broonie, robh+dt, tzungbi
Cc: devicetree, linmq006, alsa-devel, Jiaxin Yu, linux-kernel,
Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu,
matthias.bgg, aaronyu, linux-arm-kernel,
angelogioacchino.delregno
The series reuses mt8192-mt6359-rt10150rt5682.c for supporting machine
driver with rt1015p speaker amplifier and rt5682s headset codec.
Changes form v4:
- split a large patch into three small patches for easy reviewing
- correct coding style
Changes from v3:
- fix build error: too many arguments for format
[-Werror-format-extra-args]
Changes from v2:
- fix build warnings such as "data argument not used by format string"
Changes from v1:
- uses the snd_soc_of_get_dai_link_codecs to complete the
configuration of dai_link's codecs
- uses definitions to simplifies card name and compatible name
Jiaxin Yu (4):
ASoC: dt-bindings: mt8192-mt6359: add new compatible and new
properties
ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker
ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset
ASoC: mediatek: mt8192: support rt1015p_rt5682s
.../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++
sound/soc/mediatek/Kconfig | 1 +
.../mt8192/mt8192-mt6359-rt1015-rt5682.c | 201 +++++++++++-------
3 files changed, 153 insertions(+), 78 deletions(-)
--
2.18.0
^ permalink raw reply [flat|nested] 68+ messages in thread* [v5 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu The series reuses mt8192-mt6359-rt10150rt5682.c for supporting machine driver with rt1015p speaker amplifier and rt5682s headset codec. Changes form v4: - split a large patch into three small patches for easy reviewing - correct coding style Changes from v3: - fix build error: too many arguments for format [-Werror-format-extra-args] Changes from v2: - fix build warnings such as "data argument not used by format string" Changes from v1: - uses the snd_soc_of_get_dai_link_codecs to complete the configuration of dai_link's codecs - uses definitions to simplifies card name and compatible name Jiaxin Yu (4): ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset ASoC: mediatek: mt8192: support rt1015p_rt5682s .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++ sound/soc/mediatek/Kconfig | 1 + .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 201 +++++++++++------- 3 files changed, 153 insertions(+), 78 deletions(-) -- 2.18.0 ^ permalink raw reply [flat|nested] 68+ messages in thread
* [v5 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu The series reuses mt8192-mt6359-rt10150rt5682.c for supporting machine driver with rt1015p speaker amplifier and rt5682s headset codec. Changes form v4: - split a large patch into three small patches for easy reviewing - correct coding style Changes from v3: - fix build error: too many arguments for format [-Werror-format-extra-args] Changes from v2: - fix build warnings such as "data argument not used by format string" Changes from v1: - uses the snd_soc_of_get_dai_link_codecs to complete the configuration of dai_link's codecs - uses definitions to simplifies card name and compatible name Jiaxin Yu (4): ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset ASoC: mediatek: mt8192: support rt1015p_rt5682s .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++ sound/soc/mediatek/Kconfig | 1 + .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 201 +++++++++++------- 3 files changed, 153 insertions(+), 78 deletions(-) -- 2.18.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] 68+ messages in thread
* [v5 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu The series reuses mt8192-mt6359-rt10150rt5682.c for supporting machine driver with rt1015p speaker amplifier and rt5682s headset codec. Changes form v4: - split a large patch into three small patches for easy reviewing - correct coding style Changes from v3: - fix build error: too many arguments for format [-Werror-format-extra-args] Changes from v2: - fix build warnings such as "data argument not used by format string" Changes from v1: - uses the snd_soc_of_get_dai_link_codecs to complete the configuration of dai_link's codecs - uses definitions to simplifies card name and compatible name Jiaxin Yu (4): ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset ASoC: mediatek: mt8192: support rt1015p_rt5682s .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++ sound/soc/mediatek/Kconfig | 1 + .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 201 +++++++++++------- 3 files changed, 153 insertions(+), 78 deletions(-) -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-19 11:41 ` Jiaxin Yu -1 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: devicetree, linmq006, alsa-devel, Jiaxin Yu, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines with rt1015p and rt5682s. 2. Adds new property "mediatek,headset-codec" for getting headset codecs. 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml index a781e7aaaa38..aa0476eedd38 100644 --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml @@ -18,6 +18,7 @@ properties: enum: - mediatek,mt8192_mt6359_rt1015_rt5682 - mediatek,mt8192_mt6359_rt1015p_rt5682 + - mediatek,mt8192_mt6359_rt1015p_rt5682s mediatek,platform: $ref: "/schemas/types.yaml#/definitions/phandle" @@ -27,6 +28,25 @@ properties: $ref: "/schemas/types.yaml#/definitions/phandle" description: The phandle of HDMI codec. +patternProperties: + "^mediatek,headset-codec$": + description: Holds subnode which indicates headset dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the headset codec nodes. + additionalProperties: false + + "^mediatek,speaker-codec$": + description: Holds subnode which indicates speaker dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the speaker codec nodes. + additionalProperties: false + additionalProperties: false required: @@ -44,6 +64,15 @@ examples: "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; + + mediatek,headset-codec { + sound-dai = <&rt5682>; + }; + + mediatek,speaker-codec { + sound-dai = <&rt1015_l>, + <&rt1015_r>; + }; }; ... -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines with rt1015p and rt5682s. 2. Adds new property "mediatek,headset-codec" for getting headset codecs. 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml index a781e7aaaa38..aa0476eedd38 100644 --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml @@ -18,6 +18,7 @@ properties: enum: - mediatek,mt8192_mt6359_rt1015_rt5682 - mediatek,mt8192_mt6359_rt1015p_rt5682 + - mediatek,mt8192_mt6359_rt1015p_rt5682s mediatek,platform: $ref: "/schemas/types.yaml#/definitions/phandle" @@ -27,6 +28,25 @@ properties: $ref: "/schemas/types.yaml#/definitions/phandle" description: The phandle of HDMI codec. +patternProperties: + "^mediatek,headset-codec$": + description: Holds subnode which indicates headset dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the headset codec nodes. + additionalProperties: false + + "^mediatek,speaker-codec$": + description: Holds subnode which indicates speaker dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the speaker codec nodes. + additionalProperties: false + additionalProperties: false required: @@ -44,6 +64,15 @@ examples: "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; + + mediatek,headset-codec { + sound-dai = <&rt5682>; + }; + + mediatek,speaker-codec { + sound-dai = <&rt1015_l>, + <&rt1015_r>; + }; }; ... -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines with rt1015p and rt5682s. 2. Adds new property "mediatek,headset-codec" for getting headset codecs. 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml index a781e7aaaa38..aa0476eedd38 100644 --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml @@ -18,6 +18,7 @@ properties: enum: - mediatek,mt8192_mt6359_rt1015_rt5682 - mediatek,mt8192_mt6359_rt1015p_rt5682 + - mediatek,mt8192_mt6359_rt1015p_rt5682s mediatek,platform: $ref: "/schemas/types.yaml#/definitions/phandle" @@ -27,6 +28,25 @@ properties: $ref: "/schemas/types.yaml#/definitions/phandle" description: The phandle of HDMI codec. +patternProperties: + "^mediatek,headset-codec$": + description: Holds subnode which indicates headset dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the headset codec nodes. + additionalProperties: false + + "^mediatek,speaker-codec$": + description: Holds subnode which indicates speaker dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the speaker codec nodes. + additionalProperties: false + additionalProperties: false required: @@ -44,6 +64,15 @@ examples: "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; + + mediatek,headset-codec { + sound-dai = <&rt5682>; + }; + + mediatek,speaker-codec { + sound-dai = <&rt1015_l>, + <&rt1015_r>; + }; }; ... -- 2.18.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] 68+ messages in thread
* [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines with rt1015p and rt5682s. 2. Adds new property "mediatek,headset-codec" for getting headset codecs. 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml index a781e7aaaa38..aa0476eedd38 100644 --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml @@ -18,6 +18,7 @@ properties: enum: - mediatek,mt8192_mt6359_rt1015_rt5682 - mediatek,mt8192_mt6359_rt1015p_rt5682 + - mediatek,mt8192_mt6359_rt1015p_rt5682s mediatek,platform: $ref: "/schemas/types.yaml#/definitions/phandle" @@ -27,6 +28,25 @@ properties: $ref: "/schemas/types.yaml#/definitions/phandle" description: The phandle of HDMI codec. +patternProperties: + "^mediatek,headset-codec$": + description: Holds subnode which indicates headset dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the headset codec nodes. + additionalProperties: false + + "^mediatek,speaker-codec$": + description: Holds subnode which indicates speaker dai. + type: object + properties: + sound-dai: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: List of phandles to the speaker codec nodes. + additionalProperties: false + additionalProperties: false required: @@ -44,6 +64,15 @@ examples: "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; + + mediatek,headset-codec { + sound-dai = <&rt5682>; + }; + + mediatek,speaker-codec { + sound-dai = <&rt1015_l>, + <&rt1015_r>; + }; }; ... -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-21 23:33 ` Rob Herring -1 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-21 23:33 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, tzungbi, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines > with rt1015p and rt5682s. > 2. Adds new property "mediatek,headset-codec" for getting headset codecs. > 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > --- > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > index a781e7aaaa38..aa0476eedd38 100644 > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > @@ -18,6 +18,7 @@ properties: > enum: > - mediatek,mt8192_mt6359_rt1015_rt5682 > - mediatek,mt8192_mt6359_rt1015p_rt5682 > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > mediatek,platform: > $ref: "/schemas/types.yaml#/definitions/phandle" > @@ -27,6 +28,25 @@ properties: > $ref: "/schemas/types.yaml#/definitions/phandle" > description: The phandle of HDMI codec. > > +patternProperties: > + "^mediatek,headset-codec$": Fixed string, not a pattern. Move to 'properties'. Drop the vendor prefix too. > + description: Holds subnode which indicates headset dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array Standard property, don't need a type or description. Just how many and what each one is if more than 1. > + description: List of phandles to the headset codec nodes. More than 1? > + additionalProperties: false > + > + "^mediatek,speaker-codec$": > + description: Holds subnode which indicates speaker dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: List of phandles to the speaker codec nodes. Same here. > + additionalProperties: false > + > additionalProperties: false > > required: > @@ -44,6 +64,15 @@ examples: > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > + > + mediatek,headset-codec { > + sound-dai = <&rt5682>; > + }; > + > + mediatek,speaker-codec { > + sound-dai = <&rt1015_l>, > + <&rt1015_r>; > + }; > }; > > ... > -- > 2.18.0 > > ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-21 23:33 ` Rob Herring 0 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-21 23:33 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines > with rt1015p and rt5682s. > 2. Adds new property "mediatek,headset-codec" for getting headset codecs. > 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > --- > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > index a781e7aaaa38..aa0476eedd38 100644 > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > @@ -18,6 +18,7 @@ properties: > enum: > - mediatek,mt8192_mt6359_rt1015_rt5682 > - mediatek,mt8192_mt6359_rt1015p_rt5682 > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > mediatek,platform: > $ref: "/schemas/types.yaml#/definitions/phandle" > @@ -27,6 +28,25 @@ properties: > $ref: "/schemas/types.yaml#/definitions/phandle" > description: The phandle of HDMI codec. > > +patternProperties: > + "^mediatek,headset-codec$": Fixed string, not a pattern. Move to 'properties'. Drop the vendor prefix too. > + description: Holds subnode which indicates headset dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array Standard property, don't need a type or description. Just how many and what each one is if more than 1. > + description: List of phandles to the headset codec nodes. More than 1? > + additionalProperties: false > + > + "^mediatek,speaker-codec$": > + description: Holds subnode which indicates speaker dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: List of phandles to the speaker codec nodes. Same here. > + additionalProperties: false > + > additionalProperties: false > > required: > @@ -44,6 +64,15 @@ examples: > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > + > + mediatek,headset-codec { > + sound-dai = <&rt5682>; > + }; > + > + mediatek,speaker-codec { > + sound-dai = <&rt1015_l>, > + <&rt1015_r>; > + }; > }; > > ... > -- > 2.18.0 > > ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-21 23:33 ` Rob Herring 0 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-21 23:33 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines > with rt1015p and rt5682s. > 2. Adds new property "mediatek,headset-codec" for getting headset codecs. > 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > --- > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > index a781e7aaaa38..aa0476eedd38 100644 > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > @@ -18,6 +18,7 @@ properties: > enum: > - mediatek,mt8192_mt6359_rt1015_rt5682 > - mediatek,mt8192_mt6359_rt1015p_rt5682 > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > mediatek,platform: > $ref: "/schemas/types.yaml#/definitions/phandle" > @@ -27,6 +28,25 @@ properties: > $ref: "/schemas/types.yaml#/definitions/phandle" > description: The phandle of HDMI codec. > > +patternProperties: > + "^mediatek,headset-codec$": Fixed string, not a pattern. Move to 'properties'. Drop the vendor prefix too. > + description: Holds subnode which indicates headset dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array Standard property, don't need a type or description. Just how many and what each one is if more than 1. > + description: List of phandles to the headset codec nodes. More than 1? > + additionalProperties: false > + > + "^mediatek,speaker-codec$": > + description: Holds subnode which indicates speaker dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: List of phandles to the speaker codec nodes. Same here. > + additionalProperties: false > + > additionalProperties: false > > required: > @@ -44,6 +64,15 @@ examples: > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > + > + mediatek,headset-codec { > + sound-dai = <&rt5682>; > + }; > + > + mediatek,speaker-codec { > + sound-dai = <&rt1015_l>, > + <&rt1015_r>; > + }; > }; > > ... > -- > 2.18.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] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-21 23:33 ` Rob Herring 0 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-21 23:33 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines > with rt1015p and rt5682s. > 2. Adds new property "mediatek,headset-codec" for getting headset codecs. > 3. Adds new property "mediatek,speaker-codec" for getting speaker codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > --- > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 +++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > index a781e7aaaa38..aa0476eedd38 100644 > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > @@ -18,6 +18,7 @@ properties: > enum: > - mediatek,mt8192_mt6359_rt1015_rt5682 > - mediatek,mt8192_mt6359_rt1015p_rt5682 > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > mediatek,platform: > $ref: "/schemas/types.yaml#/definitions/phandle" > @@ -27,6 +28,25 @@ properties: > $ref: "/schemas/types.yaml#/definitions/phandle" > description: The phandle of HDMI codec. > > +patternProperties: > + "^mediatek,headset-codec$": Fixed string, not a pattern. Move to 'properties'. Drop the vendor prefix too. > + description: Holds subnode which indicates headset dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array Standard property, don't need a type or description. Just how many and what each one is if more than 1. > + description: List of phandles to the headset codec nodes. More than 1? > + additionalProperties: false > + > + "^mediatek,speaker-codec$": > + description: Holds subnode which indicates speaker dai. > + type: object > + properties: > + sound-dai: > + $ref: /schemas/types.yaml#/definitions/phandle-array > + description: List of phandles to the speaker codec nodes. Same here. > + additionalProperties: false > + > additionalProperties: false > > required: > @@ -44,6 +64,15 @@ examples: > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > + > + mediatek,headset-codec { > + sound-dai = <&rt5682>; > + }; > + > + mediatek,speaker-codec { > + sound-dai = <&rt1015_l>, > + <&rt1015_r>; > + }; > }; > > ... > -- > 2.18.0 > > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties 2022-03-21 23:33 ` Rob Herring (?) (?) @ 2022-03-22 3:45 ` Jiaxin Yu -1 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-22 3:45 UTC (permalink / raw) To: Rob Herring Cc: devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, tzungbi, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > machines > > with rt1015p and rt5682s. > > 2. Adds new property "mediatek,headset-codec" for getting headset > > codecs. > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > codecs. > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > --- > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > +++++++++++++++++++ > > 1 file changed, 29 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > rt1015-rt5682.yaml > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > index a781e7aaaa38..aa0476eedd38 100644 > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > @@ -18,6 +18,7 @@ properties: > > enum: > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > mediatek,platform: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > @@ -27,6 +28,25 @@ properties: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > description: The phandle of HDMI codec. > > > > +patternProperties: > > + "^mediatek,headset-codec$": > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > prefix too. > Hi Rob, I originally referred to simple-card.yaml and move "xxx.yyy" to the patternProperties. Such as: # use patternProperties to avoid naming "xxx,yyy" issue patternProperties: "^simple-audio-card,widgets$": $ref: "#/definitions/widgets" But your comment is more reasonable. I will move them to 'properties' and drop the vendor prefix. Thanks for your review. > > + description: Holds subnode which indicates headset dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > Standard property, don't need a type or description. Just how many > and > what each one is if more than 1. Should I describe them as below? properties: ... speaker-codec: type: object properties: sound-dai: maxItems: 1 ... > > > + description: List of phandles to the headset codec nodes. > > More than 1? > Sorry, the description here is incorrect, there is only one phandle. > > + additionalProperties: false > > + > > + "^mediatek,speaker-codec$": > > + description: Holds subnode which indicates speaker dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + description: List of phandles to the speaker codec nodes. > > Same here. > > > + additionalProperties: false > > + > > additionalProperties: false > > > > required: > > @@ -44,6 +64,15 @@ examples: > > "aud_clk_mosi_on"; > > pinctrl-0 = <&aud_clk_mosi_off>; > > pinctrl-1 = <&aud_clk_mosi_on>; > > + > > + mediatek,headset-codec { > > + sound-dai = <&rt5682>; > > + }; > > + > > + mediatek,speaker-codec { > > + sound-dai = <&rt1015_l>, > > + <&rt1015_r>; > > + }; > > }; > > > > ... > > -- > > 2.18.0 > > > > ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-22 3:45 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-22 3:45 UTC (permalink / raw) To: Rob Herring Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > machines > > with rt1015p and rt5682s. > > 2. Adds new property "mediatek,headset-codec" for getting headset > > codecs. > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > codecs. > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > --- > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > +++++++++++++++++++ > > 1 file changed, 29 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > rt1015-rt5682.yaml > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > index a781e7aaaa38..aa0476eedd38 100644 > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > @@ -18,6 +18,7 @@ properties: > > enum: > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > mediatek,platform: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > @@ -27,6 +28,25 @@ properties: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > description: The phandle of HDMI codec. > > > > +patternProperties: > > + "^mediatek,headset-codec$": > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > prefix too. > Hi Rob, I originally referred to simple-card.yaml and move "xxx.yyy" to the patternProperties. Such as: # use patternProperties to avoid naming "xxx,yyy" issue patternProperties: "^simple-audio-card,widgets$": $ref: "#/definitions/widgets" But your comment is more reasonable. I will move them to 'properties' and drop the vendor prefix. Thanks for your review. > > + description: Holds subnode which indicates headset dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > Standard property, don't need a type or description. Just how many > and > what each one is if more than 1. Should I describe them as below? properties: ... speaker-codec: type: object properties: sound-dai: maxItems: 1 ... > > > + description: List of phandles to the headset codec nodes. > > More than 1? > Sorry, the description here is incorrect, there is only one phandle. > > + additionalProperties: false > > + > > + "^mediatek,speaker-codec$": > > + description: Holds subnode which indicates speaker dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + description: List of phandles to the speaker codec nodes. > > Same here. > > > + additionalProperties: false > > + > > additionalProperties: false > > > > required: > > @@ -44,6 +64,15 @@ examples: > > "aud_clk_mosi_on"; > > pinctrl-0 = <&aud_clk_mosi_off>; > > pinctrl-1 = <&aud_clk_mosi_on>; > > + > > + mediatek,headset-codec { > > + sound-dai = <&rt5682>; > > + }; > > + > > + mediatek,speaker-codec { > > + sound-dai = <&rt1015_l>, > > + <&rt1015_r>; > > + }; > > }; > > > > ... > > -- > > 2.18.0 > > > > ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-22 3:45 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-22 3:45 UTC (permalink / raw) To: Rob Herring Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > machines > > with rt1015p and rt5682s. > > 2. Adds new property "mediatek,headset-codec" for getting headset > > codecs. > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > codecs. > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > --- > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > +++++++++++++++++++ > > 1 file changed, 29 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > rt1015-rt5682.yaml > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > index a781e7aaaa38..aa0476eedd38 100644 > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > @@ -18,6 +18,7 @@ properties: > > enum: > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > mediatek,platform: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > @@ -27,6 +28,25 @@ properties: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > description: The phandle of HDMI codec. > > > > +patternProperties: > > + "^mediatek,headset-codec$": > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > prefix too. > Hi Rob, I originally referred to simple-card.yaml and move "xxx.yyy" to the patternProperties. Such as: # use patternProperties to avoid naming "xxx,yyy" issue patternProperties: "^simple-audio-card,widgets$": $ref: "#/definitions/widgets" But your comment is more reasonable. I will move them to 'properties' and drop the vendor prefix. Thanks for your review. > > + description: Holds subnode which indicates headset dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > Standard property, don't need a type or description. Just how many > and > what each one is if more than 1. Should I describe them as below? properties: ... speaker-codec: type: object properties: sound-dai: maxItems: 1 ... > > > + description: List of phandles to the headset codec nodes. > > More than 1? > Sorry, the description here is incorrect, there is only one phandle. > > + additionalProperties: false > > + > > + "^mediatek,speaker-codec$": > > + description: Holds subnode which indicates speaker dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + description: List of phandles to the speaker codec nodes. > > Same here. > > > + additionalProperties: false > > + > > additionalProperties: false > > > > required: > > @@ -44,6 +64,15 @@ examples: > > "aud_clk_mosi_on"; > > pinctrl-0 = <&aud_clk_mosi_off>; > > pinctrl-1 = <&aud_clk_mosi_on>; > > + > > + mediatek,headset-codec { > > + sound-dai = <&rt5682>; > > + }; > > + > > + mediatek,speaker-codec { > > + sound-dai = <&rt1015_l>, > > + <&rt1015_r>; > > + }; > > }; > > > > ... > > -- > > 2.18.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] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-22 3:45 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-22 3:45 UTC (permalink / raw) To: Rob Herring Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > machines > > with rt1015p and rt5682s. > > 2. Adds new property "mediatek,headset-codec" for getting headset > > codecs. > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > codecs. > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > --- > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > +++++++++++++++++++ > > 1 file changed, 29 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > rt1015-rt5682.yaml > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > index a781e7aaaa38..aa0476eedd38 100644 > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > rt5682.yaml > > @@ -18,6 +18,7 @@ properties: > > enum: > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > mediatek,platform: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > @@ -27,6 +28,25 @@ properties: > > $ref: "/schemas/types.yaml#/definitions/phandle" > > description: The phandle of HDMI codec. > > > > +patternProperties: > > + "^mediatek,headset-codec$": > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > prefix too. > Hi Rob, I originally referred to simple-card.yaml and move "xxx.yyy" to the patternProperties. Such as: # use patternProperties to avoid naming "xxx,yyy" issue patternProperties: "^simple-audio-card,widgets$": $ref: "#/definitions/widgets" But your comment is more reasonable. I will move them to 'properties' and drop the vendor prefix. Thanks for your review. > > + description: Holds subnode which indicates headset dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > Standard property, don't need a type or description. Just how many > and > what each one is if more than 1. Should I describe them as below? properties: ... speaker-codec: type: object properties: sound-dai: maxItems: 1 ... > > > + description: List of phandles to the headset codec nodes. > > More than 1? > Sorry, the description here is incorrect, there is only one phandle. > > + additionalProperties: false > > + > > + "^mediatek,speaker-codec$": > > + description: Holds subnode which indicates speaker dai. > > + type: object > > + properties: > > + sound-dai: > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > + description: List of phandles to the speaker codec nodes. > > Same here. > > > + additionalProperties: false > > + > > additionalProperties: false > > > > required: > > @@ -44,6 +64,15 @@ examples: > > "aud_clk_mosi_on"; > > pinctrl-0 = <&aud_clk_mosi_off>; > > pinctrl-1 = <&aud_clk_mosi_on>; > > + > > + mediatek,headset-codec { > > + sound-dai = <&rt5682>; > > + }; > > + > > + mediatek,speaker-codec { > > + sound-dai = <&rt1015_l>, > > + <&rt1015_r>; > > + }; > > }; > > > > ... > > -- > > 2.18.0 > > > > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties 2022-03-22 3:45 ` Jiaxin Yu (?) (?) @ 2022-03-22 15:02 ` Rob Herring -1 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-22 15:02 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, tzungbi, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Tue, Mar 22, 2022 at 11:45:24AM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > > machines > > > with rt1015p and rt5682s. > > > 2. Adds new property "mediatek,headset-codec" for getting headset > > > codecs. > > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > > codecs. > > > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > > --- > > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > > +++++++++++++++++++ > > > 1 file changed, 29 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > > rt1015-rt5682.yaml > > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > index a781e7aaaa38..aa0476eedd38 100644 > > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > @@ -18,6 +18,7 @@ properties: > > > enum: > > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > > > mediatek,platform: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > @@ -27,6 +28,25 @@ properties: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > description: The phandle of HDMI codec. > > > > > > +patternProperties: > > > + "^mediatek,headset-codec$": > > > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > > prefix too. > > > Hi Rob, > > I originally referred to simple-card.yaml and move "xxx.yyy" to the > patternProperties. > > Such as: > # use patternProperties to avoid naming "xxx,yyy" issue > patternProperties: > "^simple-audio-card,widgets$": > $ref: "#/definitions/widgets" That was working around an issue and I've now fixed this. > > But your comment is more reasonable. I will move them to 'properties' > and drop the vendor prefix. Thanks for your review. > > > > > + description: Holds subnode which indicates headset dai. > > > + type: object > > > + properties: > > > + sound-dai: > > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > > > Standard property, don't need a type or description. Just how many > > and > > what each one is if more than 1. > > Should I describe them as below? > > properties: > ... > speaker-codec: > type: object > properties: > sound-dai: > maxItems: 1 > ... Yes. Rob ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-22 15:02 ` Rob Herring 0 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-22 15:02 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Tue, Mar 22, 2022 at 11:45:24AM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > > machines > > > with rt1015p and rt5682s. > > > 2. Adds new property "mediatek,headset-codec" for getting headset > > > codecs. > > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > > codecs. > > > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > > --- > > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > > +++++++++++++++++++ > > > 1 file changed, 29 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > > rt1015-rt5682.yaml > > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > index a781e7aaaa38..aa0476eedd38 100644 > > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > @@ -18,6 +18,7 @@ properties: > > > enum: > > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > > > mediatek,platform: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > @@ -27,6 +28,25 @@ properties: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > description: The phandle of HDMI codec. > > > > > > +patternProperties: > > > + "^mediatek,headset-codec$": > > > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > > prefix too. > > > Hi Rob, > > I originally referred to simple-card.yaml and move "xxx.yyy" to the > patternProperties. > > Such as: > # use patternProperties to avoid naming "xxx,yyy" issue > patternProperties: > "^simple-audio-card,widgets$": > $ref: "#/definitions/widgets" That was working around an issue and I've now fixed this. > > But your comment is more reasonable. I will move them to 'properties' > and drop the vendor prefix. Thanks for your review. > > > > > + description: Holds subnode which indicates headset dai. > > > + type: object > > > + properties: > > > + sound-dai: > > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > > > Standard property, don't need a type or description. Just how many > > and > > what each one is if more than 1. > > Should I describe them as below? > > properties: > ... > speaker-codec: > type: object > properties: > sound-dai: > maxItems: 1 > ... Yes. Rob ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-22 15:02 ` Rob Herring 0 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-22 15:02 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Tue, Mar 22, 2022 at 11:45:24AM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > > machines > > > with rt1015p and rt5682s. > > > 2. Adds new property "mediatek,headset-codec" for getting headset > > > codecs. > > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > > codecs. > > > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > > --- > > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > > +++++++++++++++++++ > > > 1 file changed, 29 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > > rt1015-rt5682.yaml > > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > index a781e7aaaa38..aa0476eedd38 100644 > > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > @@ -18,6 +18,7 @@ properties: > > > enum: > > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > > > mediatek,platform: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > @@ -27,6 +28,25 @@ properties: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > description: The phandle of HDMI codec. > > > > > > +patternProperties: > > > + "^mediatek,headset-codec$": > > > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > > prefix too. > > > Hi Rob, > > I originally referred to simple-card.yaml and move "xxx.yyy" to the > patternProperties. > > Such as: > # use patternProperties to avoid naming "xxx,yyy" issue > patternProperties: > "^simple-audio-card,widgets$": > $ref: "#/definitions/widgets" That was working around an issue and I've now fixed this. > > But your comment is more reasonable. I will move them to 'properties' > and drop the vendor prefix. Thanks for your review. > > > > > + description: Holds subnode which indicates headset dai. > > > + type: object > > > + properties: > > > + sound-dai: > > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > > > Standard property, don't need a type or description. Just how many > > and > > what each one is if more than 1. > > Should I describe them as below? > > properties: > ... > speaker-codec: > type: object > properties: > sound-dai: > maxItems: 1 > ... Yes. Rob _______________________________________________ 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] 68+ messages in thread
* Re: [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties @ 2022-03-22 15:02 ` Rob Herring 0 siblings, 0 replies; 68+ messages in thread From: Rob Herring @ 2022-03-22 15:02 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, tzungbi, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Tue, Mar 22, 2022 at 11:45:24AM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 18:33 -0500, Rob Herring wrote: > > On Sat, Mar 19, 2022 at 07:41:08PM +0800, Jiaxin Yu wrote: > > > 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for > > > machines > > > with rt1015p and rt5682s. > > > 2. Adds new property "mediatek,headset-codec" for getting headset > > > codecs. > > > 3. Adds new property "mediatek,speaker-codec" for getting speaker > > > codecs. > > > > > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> > > > --- > > > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 29 > > > +++++++++++++++++++ > > > 1 file changed, 29 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359- > > > rt1015-rt5682.yaml > > > b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > index a781e7aaaa38..aa0476eedd38 100644 > > > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015- > > > rt5682.yaml > > > @@ -18,6 +18,7 @@ properties: > > > enum: > > > - mediatek,mt8192_mt6359_rt1015_rt5682 > > > - mediatek,mt8192_mt6359_rt1015p_rt5682 > > > + - mediatek,mt8192_mt6359_rt1015p_rt5682s > > > > > > mediatek,platform: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > @@ -27,6 +28,25 @@ properties: > > > $ref: "/schemas/types.yaml#/definitions/phandle" > > > description: The phandle of HDMI codec. > > > > > > +patternProperties: > > > + "^mediatek,headset-codec$": > > > > Fixed string, not a pattern. Move to 'properties'. Drop the vendor > > prefix too. > > > Hi Rob, > > I originally referred to simple-card.yaml and move "xxx.yyy" to the > patternProperties. > > Such as: > # use patternProperties to avoid naming "xxx,yyy" issue > patternProperties: > "^simple-audio-card,widgets$": > $ref: "#/definitions/widgets" That was working around an issue and I've now fixed this. > > But your comment is more reasonable. I will move them to 'properties' > and drop the vendor prefix. Thanks for your review. > > > > > + description: Holds subnode which indicates headset dai. > > > + type: object > > > + properties: > > > + sound-dai: > > > + $ref: /schemas/types.yaml#/definitions/phandle-array > > > > Standard property, don't need a type or description. Just how many > > and > > what each one is if more than 1. > > Should I describe them as below? > > properties: > ... > speaker-codec: > type: object > properties: > sound-dai: > maxItems: 1 > ... Yes. Rob _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-19 11:41 ` Jiaxin Yu -1 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: devicetree, linmq006, alsa-devel, Jiaxin Yu, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno MT8192 platform will use rt1015 or rt105p codec, so through the snd_soc_of_get_dai_link_codecs() to complete the configuration of dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 108 ++++++++++-------- 1 file changed, 59 insertions(+), 49 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index ee91569c0911..e42bbb5d7c35 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -604,17 +604,9 @@ SND_SOC_DAILINK_DEFS(i2s2, DAILINK_COMP_ARRAY(COMP_DUMMY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); -SND_SOC_DAILINK_DEFS(i2s3_rt1015, +SND_SOC_DAILINK_DEFS(i2s3, DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT1015_DEV0_NAME, - RT1015_CODEC_DAI), - COMP_CODEC(RT1015_DEV1_NAME, - RT1015_CODEC_DAI)), - DAILINK_COMP_ARRAY(COMP_EMPTY())); - -SND_SOC_DAILINK_DEFS(i2s3_rt1015p, - DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC("rt1015p", "HiFi")), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s5, @@ -929,6 +921,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .dpcm_playback = 1, .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, + SND_SOC_DAILINK_REG(i2s3), }, { .name = "I2S5", @@ -1100,55 +1093,64 @@ static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), }; +static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, + struct snd_soc_dai_link *link, + struct device_node *node, + char *link_name) +{ + int ret; + + if (node && strcmp(link->name, link_name) == 0) { + ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link); + if (ret < 0) { + dev_err_probe(card->dev, ret, "get dai link codecs fail\n"); + return ret; + } + } + + return 0; +} + static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec; + struct device_node *platform_node, *hdmi_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; - platform_node = of_parse_phandle(pdev->dev.of_node, - "mediatek,platform", 0); - if (!platform_node) { - dev_err(&pdev->dev, "Property 'platform' missing or invalid\n"); + card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); + if (!card) return -EINVAL; + card->dev = &pdev->dev; + + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); + if (!platform_node) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'platform' missing or invalid\n"); + goto err_platform_node; } - card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); - if (!card) { + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); + if (!hdmi_codec) { ret = -EINVAL; - goto put_platform_node; + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); + goto err_hdmi_codec; } - card->dev = &pdev->dev; - hdmi_codec = of_parse_phandle(pdev->dev.of_node, - "mediatek,hdmi-codec", 0); + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); + if (!speaker_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); + goto err_speaker_codec; + } for_each_card_prelinks(card, i, dai_link) { - if (strcmp(dai_link->name, "I2S3") == 0) { - if (card == &mt8192_mt6359_rt1015_rt5682_card) { - dai_link->ops = &mt8192_rt1015_i2s_ops; - dai_link->cpus = i2s3_rt1015_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015_cpus); - dai_link->codecs = i2s3_rt1015_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015_codecs); - dai_link->platforms = i2s3_rt1015_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015_platforms); - } else if (card == &mt8192_mt6359_rt1015p_rt5682_card) { - dai_link->cpus = i2s3_rt1015p_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015p_cpus); - dai_link->codecs = i2s3_rt1015p_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015p_codecs); - dai_link->platforms = i2s3_rt1015p_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015p_platforms); - } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set speaker_codec fail\n", + dai_link->name); + goto err_probe; } if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { @@ -1156,6 +1158,9 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dai_link->ignore = 0; } + if (strcmp(dai_link->codecs[0].dai_name, RT1015_CODEC_DAI) == 0) + dai_link->ops = &mt8192_rt1015_i2s_ops; + if (!dai_link->platforms->name) dai_link->platforms->of_node = platform_node; } @@ -1163,22 +1168,27 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) { ret = -ENOMEM; - goto put_hdmi_codec; + goto err_probe; } snd_soc_card_set_drvdata(card, priv); ret = mt8192_afe_gpio_init(&pdev->dev); if (ret) { - dev_err(&pdev->dev, "init gpio error %d\n", ret); - goto put_hdmi_codec; + dev_err_probe(&pdev->dev, ret, "%s init gpio error\n", __func__); + goto err_probe; } ret = devm_snd_soc_register_card(&pdev->dev, card); + if (ret) + dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); -put_hdmi_codec: +err_probe: + of_node_put(speaker_codec); +err_speaker_codec: of_node_put(hdmi_codec); -put_platform_node: +err_hdmi_codec: of_node_put(platform_node); +err_platform_node: return ret; } -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu MT8192 platform will use rt1015 or rt105p codec, so through the snd_soc_of_get_dai_link_codecs() to complete the configuration of dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 108 ++++++++++-------- 1 file changed, 59 insertions(+), 49 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index ee91569c0911..e42bbb5d7c35 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -604,17 +604,9 @@ SND_SOC_DAILINK_DEFS(i2s2, DAILINK_COMP_ARRAY(COMP_DUMMY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); -SND_SOC_DAILINK_DEFS(i2s3_rt1015, +SND_SOC_DAILINK_DEFS(i2s3, DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT1015_DEV0_NAME, - RT1015_CODEC_DAI), - COMP_CODEC(RT1015_DEV1_NAME, - RT1015_CODEC_DAI)), - DAILINK_COMP_ARRAY(COMP_EMPTY())); - -SND_SOC_DAILINK_DEFS(i2s3_rt1015p, - DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC("rt1015p", "HiFi")), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s5, @@ -929,6 +921,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .dpcm_playback = 1, .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, + SND_SOC_DAILINK_REG(i2s3), }, { .name = "I2S5", @@ -1100,55 +1093,64 @@ static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), }; +static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, + struct snd_soc_dai_link *link, + struct device_node *node, + char *link_name) +{ + int ret; + + if (node && strcmp(link->name, link_name) == 0) { + ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link); + if (ret < 0) { + dev_err_probe(card->dev, ret, "get dai link codecs fail\n"); + return ret; + } + } + + return 0; +} + static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec; + struct device_node *platform_node, *hdmi_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; - platform_node = of_parse_phandle(pdev->dev.of_node, - "mediatek,platform", 0); - if (!platform_node) { - dev_err(&pdev->dev, "Property 'platform' missing or invalid\n"); + card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); + if (!card) return -EINVAL; + card->dev = &pdev->dev; + + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); + if (!platform_node) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'platform' missing or invalid\n"); + goto err_platform_node; } - card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); - if (!card) { + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); + if (!hdmi_codec) { ret = -EINVAL; - goto put_platform_node; + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); + goto err_hdmi_codec; } - card->dev = &pdev->dev; - hdmi_codec = of_parse_phandle(pdev->dev.of_node, - "mediatek,hdmi-codec", 0); + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); + if (!speaker_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); + goto err_speaker_codec; + } for_each_card_prelinks(card, i, dai_link) { - if (strcmp(dai_link->name, "I2S3") == 0) { - if (card == &mt8192_mt6359_rt1015_rt5682_card) { - dai_link->ops = &mt8192_rt1015_i2s_ops; - dai_link->cpus = i2s3_rt1015_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015_cpus); - dai_link->codecs = i2s3_rt1015_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015_codecs); - dai_link->platforms = i2s3_rt1015_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015_platforms); - } else if (card == &mt8192_mt6359_rt1015p_rt5682_card) { - dai_link->cpus = i2s3_rt1015p_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015p_cpus); - dai_link->codecs = i2s3_rt1015p_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015p_codecs); - dai_link->platforms = i2s3_rt1015p_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015p_platforms); - } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set speaker_codec fail\n", + dai_link->name); + goto err_probe; } if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { @@ -1156,6 +1158,9 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dai_link->ignore = 0; } + if (strcmp(dai_link->codecs[0].dai_name, RT1015_CODEC_DAI) == 0) + dai_link->ops = &mt8192_rt1015_i2s_ops; + if (!dai_link->platforms->name) dai_link->platforms->of_node = platform_node; } @@ -1163,22 +1168,27 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) { ret = -ENOMEM; - goto put_hdmi_codec; + goto err_probe; } snd_soc_card_set_drvdata(card, priv); ret = mt8192_afe_gpio_init(&pdev->dev); if (ret) { - dev_err(&pdev->dev, "init gpio error %d\n", ret); - goto put_hdmi_codec; + dev_err_probe(&pdev->dev, ret, "%s init gpio error\n", __func__); + goto err_probe; } ret = devm_snd_soc_register_card(&pdev->dev, card); + if (ret) + dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); -put_hdmi_codec: +err_probe: + of_node_put(speaker_codec); +err_speaker_codec: of_node_put(hdmi_codec); -put_platform_node: +err_hdmi_codec: of_node_put(platform_node); +err_platform_node: return ret; } -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu MT8192 platform will use rt1015 or rt105p codec, so through the snd_soc_of_get_dai_link_codecs() to complete the configuration of dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 108 ++++++++++-------- 1 file changed, 59 insertions(+), 49 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index ee91569c0911..e42bbb5d7c35 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -604,17 +604,9 @@ SND_SOC_DAILINK_DEFS(i2s2, DAILINK_COMP_ARRAY(COMP_DUMMY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); -SND_SOC_DAILINK_DEFS(i2s3_rt1015, +SND_SOC_DAILINK_DEFS(i2s3, DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT1015_DEV0_NAME, - RT1015_CODEC_DAI), - COMP_CODEC(RT1015_DEV1_NAME, - RT1015_CODEC_DAI)), - DAILINK_COMP_ARRAY(COMP_EMPTY())); - -SND_SOC_DAILINK_DEFS(i2s3_rt1015p, - DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC("rt1015p", "HiFi")), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s5, @@ -929,6 +921,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .dpcm_playback = 1, .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, + SND_SOC_DAILINK_REG(i2s3), }, { .name = "I2S5", @@ -1100,55 +1093,64 @@ static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), }; +static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, + struct snd_soc_dai_link *link, + struct device_node *node, + char *link_name) +{ + int ret; + + if (node && strcmp(link->name, link_name) == 0) { + ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link); + if (ret < 0) { + dev_err_probe(card->dev, ret, "get dai link codecs fail\n"); + return ret; + } + } + + return 0; +} + static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec; + struct device_node *platform_node, *hdmi_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; - platform_node = of_parse_phandle(pdev->dev.of_node, - "mediatek,platform", 0); - if (!platform_node) { - dev_err(&pdev->dev, "Property 'platform' missing or invalid\n"); + card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); + if (!card) return -EINVAL; + card->dev = &pdev->dev; + + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); + if (!platform_node) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'platform' missing or invalid\n"); + goto err_platform_node; } - card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); - if (!card) { + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); + if (!hdmi_codec) { ret = -EINVAL; - goto put_platform_node; + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); + goto err_hdmi_codec; } - card->dev = &pdev->dev; - hdmi_codec = of_parse_phandle(pdev->dev.of_node, - "mediatek,hdmi-codec", 0); + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); + if (!speaker_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); + goto err_speaker_codec; + } for_each_card_prelinks(card, i, dai_link) { - if (strcmp(dai_link->name, "I2S3") == 0) { - if (card == &mt8192_mt6359_rt1015_rt5682_card) { - dai_link->ops = &mt8192_rt1015_i2s_ops; - dai_link->cpus = i2s3_rt1015_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015_cpus); - dai_link->codecs = i2s3_rt1015_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015_codecs); - dai_link->platforms = i2s3_rt1015_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015_platforms); - } else if (card == &mt8192_mt6359_rt1015p_rt5682_card) { - dai_link->cpus = i2s3_rt1015p_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015p_cpus); - dai_link->codecs = i2s3_rt1015p_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015p_codecs); - dai_link->platforms = i2s3_rt1015p_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015p_platforms); - } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set speaker_codec fail\n", + dai_link->name); + goto err_probe; } if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { @@ -1156,6 +1158,9 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dai_link->ignore = 0; } + if (strcmp(dai_link->codecs[0].dai_name, RT1015_CODEC_DAI) == 0) + dai_link->ops = &mt8192_rt1015_i2s_ops; + if (!dai_link->platforms->name) dai_link->platforms->of_node = platform_node; } @@ -1163,22 +1168,27 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) { ret = -ENOMEM; - goto put_hdmi_codec; + goto err_probe; } snd_soc_card_set_drvdata(card, priv); ret = mt8192_afe_gpio_init(&pdev->dev); if (ret) { - dev_err(&pdev->dev, "init gpio error %d\n", ret); - goto put_hdmi_codec; + dev_err_probe(&pdev->dev, ret, "%s init gpio error\n", __func__); + goto err_probe; } ret = devm_snd_soc_register_card(&pdev->dev, card); + if (ret) + dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); -put_hdmi_codec: +err_probe: + of_node_put(speaker_codec); +err_speaker_codec: of_node_put(hdmi_codec); -put_platform_node: +err_hdmi_codec: of_node_put(platform_node); +err_platform_node: return ret; } -- 2.18.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] 68+ messages in thread
* [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu MT8192 platform will use rt1015 or rt105p codec, so through the snd_soc_of_get_dai_link_codecs() to complete the configuration of dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 108 ++++++++++-------- 1 file changed, 59 insertions(+), 49 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index ee91569c0911..e42bbb5d7c35 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -604,17 +604,9 @@ SND_SOC_DAILINK_DEFS(i2s2, DAILINK_COMP_ARRAY(COMP_DUMMY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); -SND_SOC_DAILINK_DEFS(i2s3_rt1015, +SND_SOC_DAILINK_DEFS(i2s3, DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT1015_DEV0_NAME, - RT1015_CODEC_DAI), - COMP_CODEC(RT1015_DEV1_NAME, - RT1015_CODEC_DAI)), - DAILINK_COMP_ARRAY(COMP_EMPTY())); - -SND_SOC_DAILINK_DEFS(i2s3_rt1015p, - DAILINK_COMP_ARRAY(COMP_CPU("I2S3")), - DAILINK_COMP_ARRAY(COMP_CODEC("rt1015p", "HiFi")), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s5, @@ -929,6 +921,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .dpcm_playback = 1, .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, + SND_SOC_DAILINK_REG(i2s3), }, { .name = "I2S5", @@ -1100,55 +1093,64 @@ static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), }; +static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, + struct snd_soc_dai_link *link, + struct device_node *node, + char *link_name) +{ + int ret; + + if (node && strcmp(link->name, link_name) == 0) { + ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link); + if (ret < 0) { + dev_err_probe(card->dev, ret, "get dai link codecs fail\n"); + return ret; + } + } + + return 0; +} + static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec; + struct device_node *platform_node, *hdmi_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; - platform_node = of_parse_phandle(pdev->dev.of_node, - "mediatek,platform", 0); - if (!platform_node) { - dev_err(&pdev->dev, "Property 'platform' missing or invalid\n"); + card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); + if (!card) return -EINVAL; + card->dev = &pdev->dev; + + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); + if (!platform_node) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'platform' missing or invalid\n"); + goto err_platform_node; } - card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); - if (!card) { + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); + if (!hdmi_codec) { ret = -EINVAL; - goto put_platform_node; + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); + goto err_hdmi_codec; } - card->dev = &pdev->dev; - hdmi_codec = of_parse_phandle(pdev->dev.of_node, - "mediatek,hdmi-codec", 0); + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); + if (!speaker_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); + goto err_speaker_codec; + } for_each_card_prelinks(card, i, dai_link) { - if (strcmp(dai_link->name, "I2S3") == 0) { - if (card == &mt8192_mt6359_rt1015_rt5682_card) { - dai_link->ops = &mt8192_rt1015_i2s_ops; - dai_link->cpus = i2s3_rt1015_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015_cpus); - dai_link->codecs = i2s3_rt1015_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015_codecs); - dai_link->platforms = i2s3_rt1015_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015_platforms); - } else if (card == &mt8192_mt6359_rt1015p_rt5682_card) { - dai_link->cpus = i2s3_rt1015p_cpus; - dai_link->num_cpus = - ARRAY_SIZE(i2s3_rt1015p_cpus); - dai_link->codecs = i2s3_rt1015p_codecs; - dai_link->num_codecs = - ARRAY_SIZE(i2s3_rt1015p_codecs); - dai_link->platforms = i2s3_rt1015p_platforms; - dai_link->num_platforms = - ARRAY_SIZE(i2s3_rt1015p_platforms); - } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set speaker_codec fail\n", + dai_link->name); + goto err_probe; } if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { @@ -1156,6 +1158,9 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dai_link->ignore = 0; } + if (strcmp(dai_link->codecs[0].dai_name, RT1015_CODEC_DAI) == 0) + dai_link->ops = &mt8192_rt1015_i2s_ops; + if (!dai_link->platforms->name) dai_link->platforms->of_node = platform_node; } @@ -1163,22 +1168,27 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) { ret = -ENOMEM; - goto put_hdmi_codec; + goto err_probe; } snd_soc_card_set_drvdata(card, priv); ret = mt8192_afe_gpio_init(&pdev->dev); if (ret) { - dev_err(&pdev->dev, "init gpio error %d\n", ret); - goto put_hdmi_codec; + dev_err_probe(&pdev->dev, ret, "%s init gpio error\n", __func__); + goto err_probe; } ret = devm_snd_soc_register_card(&pdev->dev, card); + if (ret) + dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); -put_hdmi_codec: +err_probe: + of_node_put(speaker_codec); +err_speaker_codec: of_node_put(hdmi_codec); -put_platform_node: +err_hdmi_codec: of_node_put(platform_node); +err_platform_node: return ret; } -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-21 3:59 ` Tzung-Bi Shih -1 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > static int mt8192_mt6359_dev_probe(struct platform_device *pdev) [...] > + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); > + if (!hdmi_codec) { > ret = -EINVAL; > - goto put_platform_node; > + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); > + goto err_hdmi_codec; > } > - card->dev = &pdev->dev; > > - hdmi_codec = of_parse_phandle(pdev->dev.of_node, > - "mediatek,hdmi-codec", 0); > + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); > + if (!speaker_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); > + goto err_speaker_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > static int mt8192_mt6359_dev_probe(struct platform_device *pdev) [...] > + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); > + if (!hdmi_codec) { > ret = -EINVAL; > - goto put_platform_node; > + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); > + goto err_hdmi_codec; > } > - card->dev = &pdev->dev; > > - hdmi_codec = of_parse_phandle(pdev->dev.of_node, > - "mediatek,hdmi-codec", 0); > + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); > + if (!speaker_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); > + goto err_speaker_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > static int mt8192_mt6359_dev_probe(struct platform_device *pdev) [...] > + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); > + if (!hdmi_codec) { > ret = -EINVAL; > - goto put_platform_node; > + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); > + goto err_hdmi_codec; > } > - card->dev = &pdev->dev; > > - hdmi_codec = of_parse_phandle(pdev->dev.of_node, > - "mediatek,hdmi-codec", 0); > + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); > + if (!speaker_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); > + goto err_speaker_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? _______________________________________________ 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] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > static int mt8192_mt6359_dev_probe(struct platform_device *pdev) [...] > + hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0); > + if (!hdmi_codec) { > ret = -EINVAL; > - goto put_platform_node; > + dev_err_probe(&pdev->dev, ret, "Property 'hdmi-codec' missing or invalid\n"); > + goto err_hdmi_codec; > } > - card->dev = &pdev->dev; > > - hdmi_codec = of_parse_phandle(pdev->dev.of_node, > - "mediatek,hdmi-codec", 0); > + speaker_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,speaker-codec"); > + if (!speaker_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'speaker_codec' missing or invalid\n"); > + goto err_speaker_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-21 15:24 ` Tzung-Bi Shih -1 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > MT8192 platform will use rt1015 or rt105p codec, so through the > snd_soc_of_get_dai_link_codecs() to complete the configuration > of dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-21 15:24 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > MT8192 platform will use rt1015 or rt105p codec, so through the > snd_soc_of_get_dai_link_codecs() to complete the configuration > of dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-21 15:24 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > MT8192 platform will use rt1015 or rt105p codec, so through the > snd_soc_of_get_dai_link_codecs() to complete the configuration > of dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> _______________________________________________ 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] 68+ messages in thread
* Re: [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker @ 2022-03-21 15:24 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:09PM +0800, Jiaxin Yu wrote: > MT8192 platform will use rt1015 or rt105p codec, so through the > snd_soc_of_get_dai_link_codecs() to complete the configuration > of dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-19 11:41 ` Jiaxin Yu -1 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: devicetree, linmq006, alsa-devel, Jiaxin Yu, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() to complete the configuration of I2S8/I2S9 dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index e42bbb5d7c35..d77f7c701513 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,9 +28,6 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" -#define RT5682_CODEC_DAI "rt5682-aif1" -#define RT5682_DEV0_NAME "rt5682.1-001a" - struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -626,14 +623,12 @@ SND_SOC_DAILINK_DEFS(i2s7, SND_SOC_DAILINK_DEFS(i2s8, DAILINK_COMP_ARRAY(COMP_CPU("I2S8")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s9, DAILINK_COMP_ARRAY(COMP_CPU("I2S9")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(connsys_i2s, @@ -1114,7 +1109,7 @@ static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec, *speaker_codec; + struct device_node *platform_node, *hdmi_codec, *headset_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_speaker_codec; } + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); + if (!headset_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); + goto err_headset_codec; + } + for_each_card_prelinks(card, i, dai_link) { ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); if (ret) { @@ -1153,6 +1155,20 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_probe; } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S8"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S9"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { dai_link->codecs->of_node = hdmi_codec; dai_link->ignore = 0; @@ -1183,6 +1199,8 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); err_probe: + of_node_put(headset_codec); +err_headset_codec: of_node_put(speaker_codec); err_speaker_codec: of_node_put(hdmi_codec); -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() to complete the configuration of I2S8/I2S9 dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index e42bbb5d7c35..d77f7c701513 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,9 +28,6 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" -#define RT5682_CODEC_DAI "rt5682-aif1" -#define RT5682_DEV0_NAME "rt5682.1-001a" - struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -626,14 +623,12 @@ SND_SOC_DAILINK_DEFS(i2s7, SND_SOC_DAILINK_DEFS(i2s8, DAILINK_COMP_ARRAY(COMP_CPU("I2S8")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s9, DAILINK_COMP_ARRAY(COMP_CPU("I2S9")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(connsys_i2s, @@ -1114,7 +1109,7 @@ static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec, *speaker_codec; + struct device_node *platform_node, *hdmi_codec, *headset_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_speaker_codec; } + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); + if (!headset_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); + goto err_headset_codec; + } + for_each_card_prelinks(card, i, dai_link) { ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); if (ret) { @@ -1153,6 +1155,20 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_probe; } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S8"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S9"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { dai_link->codecs->of_node = hdmi_codec; dai_link->ignore = 0; @@ -1183,6 +1199,8 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); err_probe: + of_node_put(headset_codec); +err_headset_codec: of_node_put(speaker_codec); err_speaker_codec: of_node_put(hdmi_codec); -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() to complete the configuration of I2S8/I2S9 dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index e42bbb5d7c35..d77f7c701513 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,9 +28,6 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" -#define RT5682_CODEC_DAI "rt5682-aif1" -#define RT5682_DEV0_NAME "rt5682.1-001a" - struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -626,14 +623,12 @@ SND_SOC_DAILINK_DEFS(i2s7, SND_SOC_DAILINK_DEFS(i2s8, DAILINK_COMP_ARRAY(COMP_CPU("I2S8")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s9, DAILINK_COMP_ARRAY(COMP_CPU("I2S9")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(connsys_i2s, @@ -1114,7 +1109,7 @@ static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec, *speaker_codec; + struct device_node *platform_node, *hdmi_codec, *headset_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_speaker_codec; } + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); + if (!headset_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); + goto err_headset_codec; + } + for_each_card_prelinks(card, i, dai_link) { ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); if (ret) { @@ -1153,6 +1155,20 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_probe; } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S8"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S9"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { dai_link->codecs->of_node = hdmi_codec; dai_link->ignore = 0; @@ -1183,6 +1199,8 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); err_probe: + of_node_put(headset_codec); +err_headset_codec: of_node_put(speaker_codec); err_speaker_codec: of_node_put(hdmi_codec); -- 2.18.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] 68+ messages in thread
* [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() to complete the configuration of I2S8/I2S9 dai_link's codecs. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index e42bbb5d7c35..d77f7c701513 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,9 +28,6 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" -#define RT5682_CODEC_DAI "rt5682-aif1" -#define RT5682_DEV0_NAME "rt5682.1-001a" - struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -626,14 +623,12 @@ SND_SOC_DAILINK_DEFS(i2s7, SND_SOC_DAILINK_DEFS(i2s8, DAILINK_COMP_ARRAY(COMP_CPU("I2S8")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(i2s9, DAILINK_COMP_ARRAY(COMP_CPU("I2S9")), - DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME, - RT5682_CODEC_DAI)), + DAILINK_COMP_ARRAY(COMP_EMPTY()), DAILINK_COMP_ARRAY(COMP_EMPTY())); SND_SOC_DAILINK_DEFS(connsys_i2s, @@ -1114,7 +1109,7 @@ static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, static int mt8192_mt6359_dev_probe(struct platform_device *pdev) { struct snd_soc_card *card; - struct device_node *platform_node, *hdmi_codec, *speaker_codec; + struct device_node *platform_node, *hdmi_codec, *headset_codec, *speaker_codec; int ret, i; struct snd_soc_dai_link *dai_link; struct mt8192_mt6359_priv *priv; @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_speaker_codec; } + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); + if (!headset_codec) { + ret = -EINVAL; + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); + goto err_headset_codec; + } + for_each_card_prelinks(card, i, dai_link) { ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3"); if (ret) { @@ -1153,6 +1155,20 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) goto err_probe; } + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S8"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + + ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S9"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n", + dai_link->name); + goto err_probe; + } + if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) { dai_link->codecs->of_node = hdmi_codec; dai_link->ignore = 0; @@ -1183,6 +1199,8 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__); err_probe: + of_node_put(headset_codec); +err_headset_codec: of_node_put(speaker_codec); err_speaker_codec: of_node_put(hdmi_codec); -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-21 3:59 ` Tzung-Bi Shih -1 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) > goto err_speaker_codec; > } > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); > + if (!headset_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); > + goto err_headset_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) > goto err_speaker_codec; > } > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); > + if (!headset_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); > + goto err_headset_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) > goto err_speaker_codec; > } > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); > + if (!headset_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); > + goto err_headset_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? _______________________________________________ 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] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) > goto err_speaker_codec; > } > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, "mediatek,headset-codec"); > + if (!headset_codec) { > + ret = -EINVAL; > + dev_err_probe(&pdev->dev, ret, "Property 'headset_codec' missing or invalid\n"); > + goto err_headset_codec; > + } (to be neat) Does it have any reason to prevent from using of_parse_phandle() but of_get_child_by_name()? _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset 2022-03-21 3:59 ` Tzung-Bi Shih (?) (?) @ 2022-03-21 9:14 ` Jiaxin Yu -1 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 9:14 UTC (permalink / raw) To: Tzung-Bi Shih Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > platform_device *pdev) > > goto err_speaker_codec; > > } > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > "mediatek,headset-codec"); > > + if (!headset_codec) { > > + ret = -EINVAL; > > + dev_err_probe(&pdev->dev, ret, "Property > > 'headset_codec' missing or invalid\n"); > > + goto err_headset_codec; > > + } > > (to be neat) Does it have any reason to prevent from using > of_parse_phandle() > but of_get_child_by_name()? Hi Tzung-Bi, "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use of_get_child_by_name() to get and pass it to snd_soc_of_get_dai_link_codecs(). Jiaxin.Yu Thanks ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 9:14 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 9:14 UTC (permalink / raw) To: Tzung-Bi Shih Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > platform_device *pdev) > > goto err_speaker_codec; > > } > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > "mediatek,headset-codec"); > > + if (!headset_codec) { > > + ret = -EINVAL; > > + dev_err_probe(&pdev->dev, ret, "Property > > 'headset_codec' missing or invalid\n"); > > + goto err_headset_codec; > > + } > > (to be neat) Does it have any reason to prevent from using > of_parse_phandle() > but of_get_child_by_name()? Hi Tzung-Bi, "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use of_get_child_by_name() to get and pass it to snd_soc_of_get_dai_link_codecs(). Jiaxin.Yu Thanks ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 9:14 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 9:14 UTC (permalink / raw) To: Tzung-Bi Shih Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > platform_device *pdev) > > goto err_speaker_codec; > > } > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > "mediatek,headset-codec"); > > + if (!headset_codec) { > > + ret = -EINVAL; > > + dev_err_probe(&pdev->dev, ret, "Property > > 'headset_codec' missing or invalid\n"); > > + goto err_headset_codec; > > + } > > (to be neat) Does it have any reason to prevent from using > of_parse_phandle() > but of_get_child_by_name()? Hi Tzung-Bi, "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use of_get_child_by_name() to get and pass it to snd_soc_of_get_dai_link_codecs(). Jiaxin.Yu Thanks _______________________________________________ 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] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 9:14 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 9:14 UTC (permalink / raw) To: Tzung-Bi Shih Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > platform_device *pdev) > > goto err_speaker_codec; > > } > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > "mediatek,headset-codec"); > > + if (!headset_codec) { > > + ret = -EINVAL; > > + dev_err_probe(&pdev->dev, ret, "Property > > 'headset_codec' missing or invalid\n"); > > + goto err_headset_codec; > > + } > > (to be neat) Does it have any reason to prevent from using > of_parse_phandle() > but of_get_child_by_name()? Hi Tzung-Bi, "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use of_get_child_by_name() to get and pass it to snd_soc_of_get_dai_link_codecs(). Jiaxin.Yu Thanks _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset 2022-03-21 9:14 ` Jiaxin Yu (?) (?) @ 2022-03-21 9:21 ` Tzung-Bi Shih -1 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 9:21 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > > platform_device *pdev) > > > goto err_speaker_codec; > > > } > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > "mediatek,headset-codec"); > > > + if (!headset_codec) { > > > + ret = -EINVAL; > > > + dev_err_probe(&pdev->dev, ret, "Property > > > 'headset_codec' missing or invalid\n"); > > > + goto err_headset_codec; > > > + } > > > > (to be neat) Does it have any reason to prevent from using > > of_parse_phandle() > > but of_get_child_by_name()? > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use > of_get_child_by_name() to get and pass it to > snd_soc_of_get_dai_link_codecs(). "mediatek,platform" and "mediatek,hdmi-codec" are also children of pdev->dev.of_node. I guess my question is: why doesn't it also use of_parse_phandle() for "mediatek,headset-codec"? Did I misunderstand? ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 9:21 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 9:21 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > > platform_device *pdev) > > > goto err_speaker_codec; > > > } > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > "mediatek,headset-codec"); > > > + if (!headset_codec) { > > > + ret = -EINVAL; > > > + dev_err_probe(&pdev->dev, ret, "Property > > > 'headset_codec' missing or invalid\n"); > > > + goto err_headset_codec; > > > + } > > > > (to be neat) Does it have any reason to prevent from using > > of_parse_phandle() > > but of_get_child_by_name()? > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use > of_get_child_by_name() to get and pass it to > snd_soc_of_get_dai_link_codecs(). "mediatek,platform" and "mediatek,hdmi-codec" are also children of pdev->dev.of_node. I guess my question is: why doesn't it also use of_parse_phandle() for "mediatek,headset-codec"? Did I misunderstand? ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 9:21 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 9:21 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > > platform_device *pdev) > > > goto err_speaker_codec; > > > } > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > "mediatek,headset-codec"); > > > + if (!headset_codec) { > > > + ret = -EINVAL; > > > + dev_err_probe(&pdev->dev, ret, "Property > > > 'headset_codec' missing or invalid\n"); > > > + goto err_headset_codec; > > > + } > > > > (to be neat) Does it have any reason to prevent from using > > of_parse_phandle() > > but of_get_child_by_name()? > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use > of_get_child_by_name() to get and pass it to > snd_soc_of_get_dai_link_codecs(). "mediatek,platform" and "mediatek,hdmi-codec" are also children of pdev->dev.of_node. I guess my question is: why doesn't it also use of_parse_phandle() for "mediatek,headset-codec"? Did I misunderstand? _______________________________________________ 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] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 9:21 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 9:21 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > @@ -1145,6 +1140,13 @@ static int mt8192_mt6359_dev_probe(struct > > > platform_device *pdev) > > > goto err_speaker_codec; > > > } > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > "mediatek,headset-codec"); > > > + if (!headset_codec) { > > > + ret = -EINVAL; > > > + dev_err_probe(&pdev->dev, ret, "Property > > > 'headset_codec' missing or invalid\n"); > > > + goto err_headset_codec; > > > + } > > > > (to be neat) Does it have any reason to prevent from using > > of_parse_phandle() > > but of_get_child_by_name()? > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I use > of_get_child_by_name() to get and pass it to > snd_soc_of_get_dai_link_codecs(). "mediatek,platform" and "mediatek,hdmi-codec" are also children of pdev->dev.of_node. I guess my question is: why doesn't it also use of_parse_phandle() for "mediatek,headset-codec"? Did I misunderstand? _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset 2022-03-21 9:21 ` Tzung-Bi Shih (?) (?) @ 2022-03-21 14:38 ` Jiaxin Yu -1 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 14:38 UTC (permalink / raw) To: Tzung-Bi Shih Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > @@ -1145,6 +1140,13 @@ static int > > > > mt8192_mt6359_dev_probe(struct > > > > platform_device *pdev) > > > > goto err_speaker_codec; > > > > } > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > "mediatek,headset-codec"); > > > > + if (!headset_codec) { > > > > + ret = -EINVAL; > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > 'headset_codec' missing or invalid\n"); > > > > + goto err_headset_codec; > > > > + } > > > > > > (to be neat) Does it have any reason to prevent from using > > > of_parse_phandle() > > > but of_get_child_by_name()? > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > use > > of_get_child_by_name() to get and pass it to > > snd_soc_of_get_dai_link_codecs(). > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > pdev->dev.of_node. I guess my question is: why doesn't it also use > of_parse_phandle() for "mediatek,headset-codec"? Did I > misunderstand? Hi Tzung-Bi, The following is from bindings, "mediatek,speaker-codec" and "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" and "mediatek,hdmi-codec" are the name of properties. So we can't get the sub node pointer through of_parse_phandle(). sound: mt8192-sound { compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; mediatek,platform = <&afe>; mediatek,hdmi-codec = <&anx_bridge_dp>; pinctrl-names = "aud_clk_mosi_off", "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; mediatek,headset-codec { sound-dai = <&rt5682>; }; mediatek,speaker-codec { sound-dai = <&rt1015_l>, <&rt1015_r>; }; }; ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 14:38 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 14:38 UTC (permalink / raw) To: Tzung-Bi Shih Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > @@ -1145,6 +1140,13 @@ static int > > > > mt8192_mt6359_dev_probe(struct > > > > platform_device *pdev) > > > > goto err_speaker_codec; > > > > } > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > "mediatek,headset-codec"); > > > > + if (!headset_codec) { > > > > + ret = -EINVAL; > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > 'headset_codec' missing or invalid\n"); > > > > + goto err_headset_codec; > > > > + } > > > > > > (to be neat) Does it have any reason to prevent from using > > > of_parse_phandle() > > > but of_get_child_by_name()? > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > use > > of_get_child_by_name() to get and pass it to > > snd_soc_of_get_dai_link_codecs(). > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > pdev->dev.of_node. I guess my question is: why doesn't it also use > of_parse_phandle() for "mediatek,headset-codec"? Did I > misunderstand? Hi Tzung-Bi, The following is from bindings, "mediatek,speaker-codec" and "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" and "mediatek,hdmi-codec" are the name of properties. So we can't get the sub node pointer through of_parse_phandle(). sound: mt8192-sound { compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; mediatek,platform = <&afe>; mediatek,hdmi-codec = <&anx_bridge_dp>; pinctrl-names = "aud_clk_mosi_off", "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; mediatek,headset-codec { sound-dai = <&rt5682>; }; mediatek,speaker-codec { sound-dai = <&rt1015_l>, <&rt1015_r>; }; }; ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 14:38 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 14:38 UTC (permalink / raw) To: Tzung-Bi Shih Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > @@ -1145,6 +1140,13 @@ static int > > > > mt8192_mt6359_dev_probe(struct > > > > platform_device *pdev) > > > > goto err_speaker_codec; > > > > } > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > "mediatek,headset-codec"); > > > > + if (!headset_codec) { > > > > + ret = -EINVAL; > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > 'headset_codec' missing or invalid\n"); > > > > + goto err_headset_codec; > > > > + } > > > > > > (to be neat) Does it have any reason to prevent from using > > > of_parse_phandle() > > > but of_get_child_by_name()? > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > use > > of_get_child_by_name() to get and pass it to > > snd_soc_of_get_dai_link_codecs(). > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > pdev->dev.of_node. I guess my question is: why doesn't it also use > of_parse_phandle() for "mediatek,headset-codec"? Did I > misunderstand? Hi Tzung-Bi, The following is from bindings, "mediatek,speaker-codec" and "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" and "mediatek,hdmi-codec" are the name of properties. So we can't get the sub node pointer through of_parse_phandle(). sound: mt8192-sound { compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; mediatek,platform = <&afe>; mediatek,hdmi-codec = <&anx_bridge_dp>; pinctrl-names = "aud_clk_mosi_off", "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; mediatek,headset-codec { sound-dai = <&rt5682>; }; mediatek,speaker-codec { sound-dai = <&rt1015_l>, <&rt1015_r>; }; }; _______________________________________________ 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] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 14:38 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-21 14:38 UTC (permalink / raw) To: Tzung-Bi Shih Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > @@ -1145,6 +1140,13 @@ static int > > > > mt8192_mt6359_dev_probe(struct > > > > platform_device *pdev) > > > > goto err_speaker_codec; > > > > } > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > "mediatek,headset-codec"); > > > > + if (!headset_codec) { > > > > + ret = -EINVAL; > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > 'headset_codec' missing or invalid\n"); > > > > + goto err_headset_codec; > > > > + } > > > > > > (to be neat) Does it have any reason to prevent from using > > > of_parse_phandle() > > > but of_get_child_by_name()? > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > use > > of_get_child_by_name() to get and pass it to > > snd_soc_of_get_dai_link_codecs(). > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > pdev->dev.of_node. I guess my question is: why doesn't it also use > of_parse_phandle() for "mediatek,headset-codec"? Did I > misunderstand? Hi Tzung-Bi, The following is from bindings, "mediatek,speaker-codec" and "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" and "mediatek,hdmi-codec" are the name of properties. So we can't get the sub node pointer through of_parse_phandle(). sound: mt8192-sound { compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; mediatek,platform = <&afe>; mediatek,hdmi-codec = <&anx_bridge_dp>; pinctrl-names = "aud_clk_mosi_off", "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; mediatek,headset-codec { sound-dai = <&rt5682>; }; mediatek,speaker-codec { sound-dai = <&rt1015_l>, <&rt1015_r>; }; }; _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset 2022-03-21 14:38 ` Jiaxin Yu (?) (?) @ 2022-03-21 15:23 ` Tzung-Bi Shih -1 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:23 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 10:38:48PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > > @@ -1145,6 +1140,13 @@ static int > > > > > mt8192_mt6359_dev_probe(struct > > > > > platform_device *pdev) > > > > > goto err_speaker_codec; > > > > > } > > > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > > "mediatek,headset-codec"); > > > > > + if (!headset_codec) { > > > > > + ret = -EINVAL; > > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > > 'headset_codec' missing or invalid\n"); > > > > > + goto err_headset_codec; > > > > > + } > > > > > > > > (to be neat) Does it have any reason to prevent from using > > > > of_parse_phandle() > > > > but of_get_child_by_name()? > > > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > > use > > > of_get_child_by_name() to get and pass it to > > > snd_soc_of_get_dai_link_codecs(). > > > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > > pdev->dev.of_node. I guess my question is: why doesn't it also use > > of_parse_phandle() for "mediatek,headset-codec"? Did I > > misunderstand? > > The following is from bindings, "mediatek,speaker-codec" and > "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" > and "mediatek,hdmi-codec" are the name of properties. So we can't get > the sub node pointer through of_parse_phandle(). > > sound: mt8192-sound { > compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; > mediatek,platform = <&afe>; > mediatek,hdmi-codec = <&anx_bridge_dp>; > pinctrl-names = "aud_clk_mosi_off", > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > > mediatek,headset-codec { > sound-dai = <&rt5682>; > }; > > mediatek,speaker-codec { > sound-dai = <&rt1015_l>, > <&rt1015_r>; > }; > }; Got it, thanks for the explanation. Will provide my R-b tag in another thread. ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 15:23 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:23 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 10:38:48PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > > @@ -1145,6 +1140,13 @@ static int > > > > > mt8192_mt6359_dev_probe(struct > > > > > platform_device *pdev) > > > > > goto err_speaker_codec; > > > > > } > > > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > > "mediatek,headset-codec"); > > > > > + if (!headset_codec) { > > > > > + ret = -EINVAL; > > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > > 'headset_codec' missing or invalid\n"); > > > > > + goto err_headset_codec; > > > > > + } > > > > > > > > (to be neat) Does it have any reason to prevent from using > > > > of_parse_phandle() > > > > but of_get_child_by_name()? > > > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > > use > > > of_get_child_by_name() to get and pass it to > > > snd_soc_of_get_dai_link_codecs(). > > > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > > pdev->dev.of_node. I guess my question is: why doesn't it also use > > of_parse_phandle() for "mediatek,headset-codec"? Did I > > misunderstand? > > The following is from bindings, "mediatek,speaker-codec" and > "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" > and "mediatek,hdmi-codec" are the name of properties. So we can't get > the sub node pointer through of_parse_phandle(). > > sound: mt8192-sound { > compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; > mediatek,platform = <&afe>; > mediatek,hdmi-codec = <&anx_bridge_dp>; > pinctrl-names = "aud_clk_mosi_off", > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > > mediatek,headset-codec { > sound-dai = <&rt5682>; > }; > > mediatek,speaker-codec { > sound-dai = <&rt1015_l>, > <&rt1015_r>; > }; > }; Got it, thanks for the explanation. Will provide my R-b tag in another thread. ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 15:23 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:23 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 10:38:48PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > > @@ -1145,6 +1140,13 @@ static int > > > > > mt8192_mt6359_dev_probe(struct > > > > > platform_device *pdev) > > > > > goto err_speaker_codec; > > > > > } > > > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > > "mediatek,headset-codec"); > > > > > + if (!headset_codec) { > > > > > + ret = -EINVAL; > > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > > 'headset_codec' missing or invalid\n"); > > > > > + goto err_headset_codec; > > > > > + } > > > > > > > > (to be neat) Does it have any reason to prevent from using > > > > of_parse_phandle() > > > > but of_get_child_by_name()? > > > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > > use > > > of_get_child_by_name() to get and pass it to > > > snd_soc_of_get_dai_link_codecs(). > > > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > > pdev->dev.of_node. I guess my question is: why doesn't it also use > > of_parse_phandle() for "mediatek,headset-codec"? Did I > > misunderstand? > > The following is from bindings, "mediatek,speaker-codec" and > "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" > and "mediatek,hdmi-codec" are the name of properties. So we can't get > the sub node pointer through of_parse_phandle(). > > sound: mt8192-sound { > compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; > mediatek,platform = <&afe>; > mediatek,hdmi-codec = <&anx_bridge_dp>; > pinctrl-names = "aud_clk_mosi_off", > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > > mediatek,headset-codec { > sound-dai = <&rt5682>; > }; > > mediatek,speaker-codec { > sound-dai = <&rt1015_l>, > <&rt1015_r>; > }; > }; Got it, thanks for the explanation. Will provide my R-b tag in another thread. _______________________________________________ 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] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 15:23 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:23 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Mon, Mar 21, 2022 at 10:38:48PM +0800, Jiaxin Yu wrote: > On Mon, 2022-03-21 at 17:21 +0800, Tzung-Bi Shih wrote: > > On Mon, Mar 21, 2022 at 05:14:08PM +0800, Jiaxin Yu wrote: > > > On Mon, 2022-03-21 at 11:59 +0800, Tzung-Bi Shih wrote: > > > > On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > > > > > @@ -1145,6 +1140,13 @@ static int > > > > > mt8192_mt6359_dev_probe(struct > > > > > platform_device *pdev) > > > > > goto err_speaker_codec; > > > > > } > > > > > > > > > > + headset_codec = of_get_child_by_name(pdev->dev.of_node, > > > > > "mediatek,headset-codec"); > > > > > + if (!headset_codec) { > > > > > + ret = -EINVAL; > > > > > + dev_err_probe(&pdev->dev, ret, "Property > > > > > 'headset_codec' missing or invalid\n"); > > > > > + goto err_headset_codec; > > > > > + } > > > > > > > > (to be neat) Does it have any reason to prevent from using > > > > of_parse_phandle() > > > > but of_get_child_by_name()? > > > > > > "mediatek,headset-codec" is a child node of pdev->dev.of_node, so I > > > use > > > of_get_child_by_name() to get and pass it to > > > snd_soc_of_get_dai_link_codecs(). > > > > "mediatek,platform" and "mediatek,hdmi-codec" are also children of > > pdev->dev.of_node. I guess my question is: why doesn't it also use > > of_parse_phandle() for "mediatek,headset-codec"? Did I > > misunderstand? > > The following is from bindings, "mediatek,speaker-codec" and > "mediatek,headset-codec" are sub nodes of sound but "mediatek,platform" > and "mediatek,hdmi-codec" are the name of properties. So we can't get > the sub node pointer through of_parse_phandle(). > > sound: mt8192-sound { > compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; > mediatek,platform = <&afe>; > mediatek,hdmi-codec = <&anx_bridge_dp>; > pinctrl-names = "aud_clk_mosi_off", > "aud_clk_mosi_on"; > pinctrl-0 = <&aud_clk_mosi_off>; > pinctrl-1 = <&aud_clk_mosi_on>; > > mediatek,headset-codec { > sound-dai = <&rt5682>; > }; > > mediatek,speaker-codec { > sound-dai = <&rt1015_l>, > <&rt1015_r>; > }; > }; Got it, thanks for the explanation. Will provide my R-b tag in another thread. _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-21 15:24 ` Tzung-Bi Shih -1 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() > to complete the configuration of I2S8/I2S9 dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 15:24 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() > to complete the configuration of I2S8/I2S9 dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 15:24 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() > to complete the configuration of I2S8/I2S9 dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> _______________________________________________ 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] 68+ messages in thread
* Re: [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset @ 2022-03-21 15:24 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 15:24 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, devicetree, linmq006, alsa-devel, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:10PM +0800, Jiaxin Yu wrote: > MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codes() > to complete the configuration of I2S8/I2S9 dai_link's codecs. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
* [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-19 11:41 ` Jiaxin Yu -1 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: devicetree, linmq006, alsa-devel, Jiaxin Yu, linux-kernel, Project_Global_Chrome_Upstream_Group, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno To support machine that only choose one of the rt5682s and rt5682 as headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". Meanwhile, using macros to simplifies card name and compatible name. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- sound/soc/mediatek/Kconfig | 1 + .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 61 ++++++++++++------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/sound/soc/mediatek/Kconfig b/sound/soc/mediatek/Kconfig index d515613a79da..cacfbab4262d 100644 --- a/sound/soc/mediatek/Kconfig +++ b/sound/soc/mediatek/Kconfig @@ -176,6 +176,7 @@ config SND_SOC_MT8192_MT6359_RT1015_RT5682 select SND_SOC_RT1015 select SND_SOC_RT1015P select SND_SOC_RT5682_I2C + select SND_SOC_RT5682S select SND_SOC_DMIC help This adds ASoC driver for Mediatek MT8192 boards diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index d77f7c701513..12b9d46a575b 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,6 +28,14 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" +#define RT1015_RT5682_CARD_NAME "mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_CARD_NAME "mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_CARD_NAME "mt8192_mt6359_rt1015p_rt5682s" + +#define RT1015_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682s" + struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -68,8 +76,8 @@ static int mt8192_rt1015_i2s_hw_params(struct snd_pcm_substream *substream, return snd_soc_dai_set_sysclk(cpu_dai, 0, mclk_fs, SND_SOC_CLOCK_OUT); } -static int mt8192_rt5682_i2s_hw_params(struct snd_pcm_substream *substream, - struct snd_pcm_hw_params *params) +static int mt8192_rt5682x_i2s_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); struct snd_soc_card *card = rtd->card; @@ -118,8 +126,8 @@ static const struct snd_soc_ops mt8192_rt1015_i2s_ops = { .hw_params = mt8192_rt1015_i2s_hw_params, }; -static const struct snd_soc_ops mt8192_rt5682_i2s_ops = { - .hw_params = mt8192_rt5682_i2s_hw_params, +static const struct snd_soc_ops mt8192_rt5682x_i2s_ops = { + .hw_params = mt8192_rt5682x_i2s_hw_params, }; static int mt8192_mt6359_mtkaif_calibration(struct snd_soc_pcm_runtime *rtd) @@ -950,7 +958,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .init = mt8192_rt5682_init, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s8), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "I2S9", @@ -959,7 +967,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s9), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "CONNSYS_I2S", @@ -1039,7 +1047,7 @@ static struct snd_soc_codec_conf rt1015_amp_conf[] = { }; static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { - .name = "mt8192_mt6359_rt1015_rt5682", + .name = RT1015_RT5682_CARD_NAME, .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), @@ -1053,14 +1061,13 @@ static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { .num_configs = ARRAY_SIZE(rt1015_amp_conf), }; -static const struct snd_soc_dapm_widget -mt8192_mt6359_rt1015p_rt5682_widgets[] = { +static const struct snd_soc_dapm_widget mt8192_mt6359_rt1015p_rt5682x_widgets[] = { SND_SOC_DAPM_SPK("Speakers", NULL), SND_SOC_DAPM_HP("Headphone Jack", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), }; -static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { +static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682x_routes[] = { /* speaker */ { "Speakers", NULL, "Speaker" }, /* headset */ @@ -1069,23 +1076,22 @@ static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { { "IN1P", NULL, "Headset Mic" }, }; -static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682_controls[] = { +static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682x_controls[] = { SOC_DAPM_PIN_SWITCH("Speakers"), SOC_DAPM_PIN_SWITCH("Headphone Jack"), SOC_DAPM_PIN_SWITCH("Headset Mic"), }; -static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { - .name = "mt8192_mt6359_rt1015p_rt5682", +static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682x_card = { .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), - .controls = mt8192_mt6359_rt1015p_rt5682_controls, - .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_controls), - .dapm_widgets = mt8192_mt6359_rt1015p_rt5682_widgets, - .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_widgets), - .dapm_routes = mt8192_mt6359_rt1015p_rt5682_routes, - .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), + .controls = mt8192_mt6359_rt1015p_rt5682x_controls, + .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_controls), + .dapm_widgets = mt8192_mt6359_rt1015p_rt5682x_widgets, + .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_widgets), + .dapm_routes = mt8192_mt6359_rt1015p_rt5682x_routes, + .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_routes), }; static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, @@ -1119,6 +1125,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) return -EINVAL; card->dev = &pdev->dev; + if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682_OF_NAME)) + card->name = RT1015P_RT5682_CARD_NAME; + else if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682S_OF_NAME)) + card->name = RT1015P_RT5682S_CARD_NAME; + else + dev_dbg(&pdev->dev, "No need to set card name\n"); + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); if (!platform_node) { ret = -EINVAL; @@ -1213,12 +1226,16 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) #ifdef CONFIG_OF static const struct of_device_id mt8192_mt6359_dt_match[] = { { - .compatible = "mediatek,mt8192_mt6359_rt1015_rt5682", + .compatible = RT1015_RT5682_OF_NAME, .data = &mt8192_mt6359_rt1015_rt5682_card, }, { - .compatible = "mediatek,mt8192_mt6359_rt1015p_rt5682", - .data = &mt8192_mt6359_rt1015p_rt5682_card, + .compatible = RT1015P_RT5682_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, + }, + { + .compatible = RT1015P_RT5682S_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, }, {} }; -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu To support machine that only choose one of the rt5682s and rt5682 as headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". Meanwhile, using macros to simplifies card name and compatible name. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- sound/soc/mediatek/Kconfig | 1 + .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 61 ++++++++++++------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/sound/soc/mediatek/Kconfig b/sound/soc/mediatek/Kconfig index d515613a79da..cacfbab4262d 100644 --- a/sound/soc/mediatek/Kconfig +++ b/sound/soc/mediatek/Kconfig @@ -176,6 +176,7 @@ config SND_SOC_MT8192_MT6359_RT1015_RT5682 select SND_SOC_RT1015 select SND_SOC_RT1015P select SND_SOC_RT5682_I2C + select SND_SOC_RT5682S select SND_SOC_DMIC help This adds ASoC driver for Mediatek MT8192 boards diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index d77f7c701513..12b9d46a575b 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,6 +28,14 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" +#define RT1015_RT5682_CARD_NAME "mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_CARD_NAME "mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_CARD_NAME "mt8192_mt6359_rt1015p_rt5682s" + +#define RT1015_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682s" + struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -68,8 +76,8 @@ static int mt8192_rt1015_i2s_hw_params(struct snd_pcm_substream *substream, return snd_soc_dai_set_sysclk(cpu_dai, 0, mclk_fs, SND_SOC_CLOCK_OUT); } -static int mt8192_rt5682_i2s_hw_params(struct snd_pcm_substream *substream, - struct snd_pcm_hw_params *params) +static int mt8192_rt5682x_i2s_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); struct snd_soc_card *card = rtd->card; @@ -118,8 +126,8 @@ static const struct snd_soc_ops mt8192_rt1015_i2s_ops = { .hw_params = mt8192_rt1015_i2s_hw_params, }; -static const struct snd_soc_ops mt8192_rt5682_i2s_ops = { - .hw_params = mt8192_rt5682_i2s_hw_params, +static const struct snd_soc_ops mt8192_rt5682x_i2s_ops = { + .hw_params = mt8192_rt5682x_i2s_hw_params, }; static int mt8192_mt6359_mtkaif_calibration(struct snd_soc_pcm_runtime *rtd) @@ -950,7 +958,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .init = mt8192_rt5682_init, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s8), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "I2S9", @@ -959,7 +967,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s9), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "CONNSYS_I2S", @@ -1039,7 +1047,7 @@ static struct snd_soc_codec_conf rt1015_amp_conf[] = { }; static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { - .name = "mt8192_mt6359_rt1015_rt5682", + .name = RT1015_RT5682_CARD_NAME, .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), @@ -1053,14 +1061,13 @@ static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { .num_configs = ARRAY_SIZE(rt1015_amp_conf), }; -static const struct snd_soc_dapm_widget -mt8192_mt6359_rt1015p_rt5682_widgets[] = { +static const struct snd_soc_dapm_widget mt8192_mt6359_rt1015p_rt5682x_widgets[] = { SND_SOC_DAPM_SPK("Speakers", NULL), SND_SOC_DAPM_HP("Headphone Jack", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), }; -static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { +static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682x_routes[] = { /* speaker */ { "Speakers", NULL, "Speaker" }, /* headset */ @@ -1069,23 +1076,22 @@ static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { { "IN1P", NULL, "Headset Mic" }, }; -static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682_controls[] = { +static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682x_controls[] = { SOC_DAPM_PIN_SWITCH("Speakers"), SOC_DAPM_PIN_SWITCH("Headphone Jack"), SOC_DAPM_PIN_SWITCH("Headset Mic"), }; -static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { - .name = "mt8192_mt6359_rt1015p_rt5682", +static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682x_card = { .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), - .controls = mt8192_mt6359_rt1015p_rt5682_controls, - .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_controls), - .dapm_widgets = mt8192_mt6359_rt1015p_rt5682_widgets, - .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_widgets), - .dapm_routes = mt8192_mt6359_rt1015p_rt5682_routes, - .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), + .controls = mt8192_mt6359_rt1015p_rt5682x_controls, + .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_controls), + .dapm_widgets = mt8192_mt6359_rt1015p_rt5682x_widgets, + .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_widgets), + .dapm_routes = mt8192_mt6359_rt1015p_rt5682x_routes, + .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_routes), }; static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, @@ -1119,6 +1125,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) return -EINVAL; card->dev = &pdev->dev; + if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682_OF_NAME)) + card->name = RT1015P_RT5682_CARD_NAME; + else if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682S_OF_NAME)) + card->name = RT1015P_RT5682S_CARD_NAME; + else + dev_dbg(&pdev->dev, "No need to set card name\n"); + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); if (!platform_node) { ret = -EINVAL; @@ -1213,12 +1226,16 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) #ifdef CONFIG_OF static const struct of_device_id mt8192_mt6359_dt_match[] = { { - .compatible = "mediatek,mt8192_mt6359_rt1015_rt5682", + .compatible = RT1015_RT5682_OF_NAME, .data = &mt8192_mt6359_rt1015_rt5682_card, }, { - .compatible = "mediatek,mt8192_mt6359_rt1015p_rt5682", - .data = &mt8192_mt6359_rt1015p_rt5682_card, + .compatible = RT1015P_RT5682_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, + }, + { + .compatible = RT1015P_RT5682S_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, }, {} }; -- 2.18.0 ^ permalink raw reply related [flat|nested] 68+ messages in thread
* [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu To support machine that only choose one of the rt5682s and rt5682 as headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". Meanwhile, using macros to simplifies card name and compatible name. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- sound/soc/mediatek/Kconfig | 1 + .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 61 ++++++++++++------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/sound/soc/mediatek/Kconfig b/sound/soc/mediatek/Kconfig index d515613a79da..cacfbab4262d 100644 --- a/sound/soc/mediatek/Kconfig +++ b/sound/soc/mediatek/Kconfig @@ -176,6 +176,7 @@ config SND_SOC_MT8192_MT6359_RT1015_RT5682 select SND_SOC_RT1015 select SND_SOC_RT1015P select SND_SOC_RT5682_I2C + select SND_SOC_RT5682S select SND_SOC_DMIC help This adds ASoC driver for Mediatek MT8192 boards diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index d77f7c701513..12b9d46a575b 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,6 +28,14 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" +#define RT1015_RT5682_CARD_NAME "mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_CARD_NAME "mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_CARD_NAME "mt8192_mt6359_rt1015p_rt5682s" + +#define RT1015_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682s" + struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -68,8 +76,8 @@ static int mt8192_rt1015_i2s_hw_params(struct snd_pcm_substream *substream, return snd_soc_dai_set_sysclk(cpu_dai, 0, mclk_fs, SND_SOC_CLOCK_OUT); } -static int mt8192_rt5682_i2s_hw_params(struct snd_pcm_substream *substream, - struct snd_pcm_hw_params *params) +static int mt8192_rt5682x_i2s_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); struct snd_soc_card *card = rtd->card; @@ -118,8 +126,8 @@ static const struct snd_soc_ops mt8192_rt1015_i2s_ops = { .hw_params = mt8192_rt1015_i2s_hw_params, }; -static const struct snd_soc_ops mt8192_rt5682_i2s_ops = { - .hw_params = mt8192_rt5682_i2s_hw_params, +static const struct snd_soc_ops mt8192_rt5682x_i2s_ops = { + .hw_params = mt8192_rt5682x_i2s_hw_params, }; static int mt8192_mt6359_mtkaif_calibration(struct snd_soc_pcm_runtime *rtd) @@ -950,7 +958,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .init = mt8192_rt5682_init, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s8), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "I2S9", @@ -959,7 +967,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s9), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "CONNSYS_I2S", @@ -1039,7 +1047,7 @@ static struct snd_soc_codec_conf rt1015_amp_conf[] = { }; static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { - .name = "mt8192_mt6359_rt1015_rt5682", + .name = RT1015_RT5682_CARD_NAME, .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), @@ -1053,14 +1061,13 @@ static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { .num_configs = ARRAY_SIZE(rt1015_amp_conf), }; -static const struct snd_soc_dapm_widget -mt8192_mt6359_rt1015p_rt5682_widgets[] = { +static const struct snd_soc_dapm_widget mt8192_mt6359_rt1015p_rt5682x_widgets[] = { SND_SOC_DAPM_SPK("Speakers", NULL), SND_SOC_DAPM_HP("Headphone Jack", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), }; -static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { +static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682x_routes[] = { /* speaker */ { "Speakers", NULL, "Speaker" }, /* headset */ @@ -1069,23 +1076,22 @@ static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { { "IN1P", NULL, "Headset Mic" }, }; -static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682_controls[] = { +static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682x_controls[] = { SOC_DAPM_PIN_SWITCH("Speakers"), SOC_DAPM_PIN_SWITCH("Headphone Jack"), SOC_DAPM_PIN_SWITCH("Headset Mic"), }; -static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { - .name = "mt8192_mt6359_rt1015p_rt5682", +static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682x_card = { .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), - .controls = mt8192_mt6359_rt1015p_rt5682_controls, - .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_controls), - .dapm_widgets = mt8192_mt6359_rt1015p_rt5682_widgets, - .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_widgets), - .dapm_routes = mt8192_mt6359_rt1015p_rt5682_routes, - .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), + .controls = mt8192_mt6359_rt1015p_rt5682x_controls, + .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_controls), + .dapm_widgets = mt8192_mt6359_rt1015p_rt5682x_widgets, + .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_widgets), + .dapm_routes = mt8192_mt6359_rt1015p_rt5682x_routes, + .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_routes), }; static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, @@ -1119,6 +1125,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) return -EINVAL; card->dev = &pdev->dev; + if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682_OF_NAME)) + card->name = RT1015P_RT5682_CARD_NAME; + else if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682S_OF_NAME)) + card->name = RT1015P_RT5682S_CARD_NAME; + else + dev_dbg(&pdev->dev, "No need to set card name\n"); + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); if (!platform_node) { ret = -EINVAL; @@ -1213,12 +1226,16 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) #ifdef CONFIG_OF static const struct of_device_id mt8192_mt6359_dt_match[] = { { - .compatible = "mediatek,mt8192_mt6359_rt1015_rt5682", + .compatible = RT1015_RT5682_OF_NAME, .data = &mt8192_mt6359_rt1015_rt5682_card, }, { - .compatible = "mediatek,mt8192_mt6359_rt1015p_rt5682", - .data = &mt8192_mt6359_rt1015p_rt5682_card, + .compatible = RT1015P_RT5682_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, + }, + { + .compatible = RT1015P_RT5682S_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, }, {} }; -- 2.18.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] 68+ messages in thread
* [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-19 11:41 ` Jiaxin Yu 0 siblings, 0 replies; 68+ messages in thread From: Jiaxin Yu @ 2022-03-19 11:41 UTC (permalink / raw) To: broonie, robh+dt, tzungbi Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group, Jiaxin Yu To support machine that only choose one of the rt5682s and rt5682 as headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". Meanwhile, using macros to simplifies card name and compatible name. Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> --- sound/soc/mediatek/Kconfig | 1 + .../mt8192/mt8192-mt6359-rt1015-rt5682.c | 61 ++++++++++++------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/sound/soc/mediatek/Kconfig b/sound/soc/mediatek/Kconfig index d515613a79da..cacfbab4262d 100644 --- a/sound/soc/mediatek/Kconfig +++ b/sound/soc/mediatek/Kconfig @@ -176,6 +176,7 @@ config SND_SOC_MT8192_MT6359_RT1015_RT5682 select SND_SOC_RT1015 select SND_SOC_RT1015P select SND_SOC_RT5682_I2C + select SND_SOC_RT5682S select SND_SOC_DMIC help This adds ASoC driver for Mediatek MT8192 boards diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c index d77f7c701513..12b9d46a575b 100644 --- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c +++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c @@ -28,6 +28,14 @@ #define RT1015_DEV0_NAME "rt1015.1-0028" #define RT1015_DEV1_NAME "rt1015.1-0029" +#define RT1015_RT5682_CARD_NAME "mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_CARD_NAME "mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_CARD_NAME "mt8192_mt6359_rt1015p_rt5682s" + +#define RT1015_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015_rt5682" +#define RT1015P_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682" +#define RT1015P_RT5682S_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682s" + struct mt8192_mt6359_priv { struct snd_soc_jack headset_jack; struct snd_soc_jack hdmi_jack; @@ -68,8 +76,8 @@ static int mt8192_rt1015_i2s_hw_params(struct snd_pcm_substream *substream, return snd_soc_dai_set_sysclk(cpu_dai, 0, mclk_fs, SND_SOC_CLOCK_OUT); } -static int mt8192_rt5682_i2s_hw_params(struct snd_pcm_substream *substream, - struct snd_pcm_hw_params *params) +static int mt8192_rt5682x_i2s_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) { struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); struct snd_soc_card *card = rtd->card; @@ -118,8 +126,8 @@ static const struct snd_soc_ops mt8192_rt1015_i2s_ops = { .hw_params = mt8192_rt1015_i2s_hw_params, }; -static const struct snd_soc_ops mt8192_rt5682_i2s_ops = { - .hw_params = mt8192_rt5682_i2s_hw_params, +static const struct snd_soc_ops mt8192_rt5682x_i2s_ops = { + .hw_params = mt8192_rt5682x_i2s_hw_params, }; static int mt8192_mt6359_mtkaif_calibration(struct snd_soc_pcm_runtime *rtd) @@ -950,7 +958,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .init = mt8192_rt5682_init, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s8), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "I2S9", @@ -959,7 +967,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = { .ignore_suspend = 1, .be_hw_params_fixup = mt8192_i2s_hw_params_fixup, SND_SOC_DAILINK_REG(i2s9), - .ops = &mt8192_rt5682_i2s_ops, + .ops = &mt8192_rt5682x_i2s_ops, }, { .name = "CONNSYS_I2S", @@ -1039,7 +1047,7 @@ static struct snd_soc_codec_conf rt1015_amp_conf[] = { }; static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { - .name = "mt8192_mt6359_rt1015_rt5682", + .name = RT1015_RT5682_CARD_NAME, .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), @@ -1053,14 +1061,13 @@ static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = { .num_configs = ARRAY_SIZE(rt1015_amp_conf), }; -static const struct snd_soc_dapm_widget -mt8192_mt6359_rt1015p_rt5682_widgets[] = { +static const struct snd_soc_dapm_widget mt8192_mt6359_rt1015p_rt5682x_widgets[] = { SND_SOC_DAPM_SPK("Speakers", NULL), SND_SOC_DAPM_HP("Headphone Jack", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), }; -static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { +static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682x_routes[] = { /* speaker */ { "Speakers", NULL, "Speaker" }, /* headset */ @@ -1069,23 +1076,22 @@ static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = { { "IN1P", NULL, "Headset Mic" }, }; -static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682_controls[] = { +static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682x_controls[] = { SOC_DAPM_PIN_SWITCH("Speakers"), SOC_DAPM_PIN_SWITCH("Headphone Jack"), SOC_DAPM_PIN_SWITCH("Headset Mic"), }; -static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = { - .name = "mt8192_mt6359_rt1015p_rt5682", +static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682x_card = { .owner = THIS_MODULE, .dai_link = mt8192_mt6359_dai_links, .num_links = ARRAY_SIZE(mt8192_mt6359_dai_links), - .controls = mt8192_mt6359_rt1015p_rt5682_controls, - .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_controls), - .dapm_widgets = mt8192_mt6359_rt1015p_rt5682_widgets, - .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_widgets), - .dapm_routes = mt8192_mt6359_rt1015p_rt5682_routes, - .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes), + .controls = mt8192_mt6359_rt1015p_rt5682x_controls, + .num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_controls), + .dapm_widgets = mt8192_mt6359_rt1015p_rt5682x_widgets, + .num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_widgets), + .dapm_routes = mt8192_mt6359_rt1015p_rt5682x_routes, + .num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_routes), }; static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card, @@ -1119,6 +1125,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) return -EINVAL; card->dev = &pdev->dev; + if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682_OF_NAME)) + card->name = RT1015P_RT5682_CARD_NAME; + else if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682S_OF_NAME)) + card->name = RT1015P_RT5682S_CARD_NAME; + else + dev_dbg(&pdev->dev, "No need to set card name\n"); + platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0); if (!platform_node) { ret = -EINVAL; @@ -1213,12 +1226,16 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev) #ifdef CONFIG_OF static const struct of_device_id mt8192_mt6359_dt_match[] = { { - .compatible = "mediatek,mt8192_mt6359_rt1015_rt5682", + .compatible = RT1015_RT5682_OF_NAME, .data = &mt8192_mt6359_rt1015_rt5682_card, }, { - .compatible = "mediatek,mt8192_mt6359_rt1015p_rt5682", - .data = &mt8192_mt6359_rt1015p_rt5682_card, + .compatible = RT1015P_RT5682_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, + }, + { + .compatible = RT1015P_RT5682S_OF_NAME, + .data = &mt8192_mt6359_rt1015p_rt5682x_card, }, {} }; -- 2.18.0 _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply related [flat|nested] 68+ messages in thread
* Re: [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s 2022-03-19 11:41 ` Jiaxin Yu (?) (?) @ 2022-03-21 3:59 ` Tzung-Bi Shih -1 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: devicetree, linmq006, alsa-devel, robh+dt, linux-kernel, Project_Global_Chrome_Upstream_Group, broonie, linux-mediatek, trevor.wu, matthias.bgg, aaronyu, linux-arm-kernel, angelogioacchino.delregno On Sat, Mar 19, 2022 at 07:41:11PM +0800, Jiaxin Yu wrote: > To support machine that only choose one of the rt5682s and rt5682 as > headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". > Meanwhile, using macros to simplifies card name and compatible name. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Sat, Mar 19, 2022 at 07:41:11PM +0800, Jiaxin Yu wrote: > To support machine that only choose one of the rt5682s and rt5682 as > headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". > Meanwhile, using macros to simplifies card name and compatible name. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> ^ permalink raw reply [flat|nested] 68+ messages in thread
* Re: [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Sat, Mar 19, 2022 at 07:41:11PM +0800, Jiaxin Yu wrote: > To support machine that only choose one of the rt5682s and rt5682 as > headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". > Meanwhile, using macros to simplifies card name and compatible name. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> _______________________________________________ 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] 68+ messages in thread
* Re: [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s @ 2022-03-21 3:59 ` Tzung-Bi Shih 0 siblings, 0 replies; 68+ messages in thread From: Tzung-Bi Shih @ 2022-03-21 3:59 UTC (permalink / raw) To: Jiaxin Yu Cc: broonie, robh+dt, angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree, linux-arm-kernel, linux-mediatek, linux-kernel, Project_Global_Chrome_Upstream_Group On Sat, Mar 19, 2022 at 07:41:11PM +0800, Jiaxin Yu wrote: > To support machine that only choose one of the rt5682s and rt5682 as > headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s". > Meanwhile, using macros to simplifies card name and compatible name. > > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org> _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 68+ messages in thread
end of thread, other threads:[~2022-03-22 15:11 UTC | newest] Thread overview: 68+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-03-19 11:41 [v5 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` [v5 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-21 23:33 ` Rob Herring 2022-03-21 23:33 ` Rob Herring 2022-03-21 23:33 ` Rob Herring 2022-03-21 23:33 ` Rob Herring 2022-03-22 3:45 ` Jiaxin Yu 2022-03-22 3:45 ` Jiaxin Yu 2022-03-22 3:45 ` Jiaxin Yu 2022-03-22 3:45 ` Jiaxin Yu 2022-03-22 15:02 ` Rob Herring 2022-03-22 15:02 ` Rob Herring 2022-03-22 15:02 ` Rob Herring 2022-03-22 15:02 ` Rob Herring 2022-03-19 11:41 ` [v5 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-19 11:41 ` [v5 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 9:14 ` Jiaxin Yu 2022-03-21 9:14 ` Jiaxin Yu 2022-03-21 9:14 ` Jiaxin Yu 2022-03-21 9:14 ` Jiaxin Yu 2022-03-21 9:21 ` Tzung-Bi Shih 2022-03-21 9:21 ` Tzung-Bi Shih 2022-03-21 9:21 ` Tzung-Bi Shih 2022-03-21 9:21 ` Tzung-Bi Shih 2022-03-21 14:38 ` Jiaxin Yu 2022-03-21 14:38 ` Jiaxin Yu 2022-03-21 14:38 ` Jiaxin Yu 2022-03-21 14:38 ` Jiaxin Yu 2022-03-21 15:23 ` Tzung-Bi Shih 2022-03-21 15:23 ` Tzung-Bi Shih 2022-03-21 15:23 ` Tzung-Bi Shih 2022-03-21 15:23 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-21 15:24 ` Tzung-Bi Shih 2022-03-19 11:41 ` [v5 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-19 11:41 ` Jiaxin Yu 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih 2022-03-21 3:59 ` Tzung-Bi Shih
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.