Message ID | 20240307114445.196981-20-angelogioacchino.delregno@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ASoC: Cleanup MediaTek soundcard machine drivers | expand |
On Thu, 07 Mar 2024 12:44:42 +0100, AngeloGioacchino Del Regno wrote: > Document the dai-link subnodes and the audio-routing property, allowing > to describe machine specific audio hardware and links in device tree. > > While at it, also deprecate the old properties which were previously > used with the driver's partially hardcoded configuration. > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > --- > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 124 ++++++++++++++++-- > 1 file changed, 115 insertions(+), 9 deletions(-) > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.example.dtb: mt8192-sound: 'model' does not match any of the regexes: '.*-dai-link$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/sound/mt8192-mt6359-rt1015-rt5682.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240307114445.196981-20-angelogioacchino.delregno@collabora.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Thu, Mar 07, 2024 at 12:44:42PM +0100, AngeloGioacchino Del Regno wrote: > Document the dai-link subnodes and the audio-routing property, allowing > to describe machine specific audio hardware and links in device tree. > > While at it, also deprecate the old properties which were previously > used with the driver's partially hardcoded configuration. > I replied on v1, but one more thing here. > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > --- > .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 124 ++++++++++++++++-- > 1 file changed, 115 insertions(+), 9 deletions(-) > > diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > index 7e50f5d65c8f..449454c50dcc 100644 > --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml > @@ -13,6 +13,9 @@ maintainers: > description: > This binding describes the MT8192 sound card. > > +allOf: > + - $ref: sound-card-common.yaml# > + > properties: > compatible: > enum: > @@ -20,6 +23,14 @@ properties: > - mediatek,mt8192_mt6359_rt1015p_rt5682 > - mediatek,mt8192_mt6359_rt1015p_rt5682s > > + audio-routing: > + description: > + A list of the connections between audio components. Each entry is a > + pair of strings, the first being the connection's sink, the second > + being the connection's source. > + Valid names could be the input or output widgets of audio components, > + power supplies, MicBias of codec and the software switch. > + > mediatek,platform: > $ref: /schemas/types.yaml#/definitions/phandle > description: The phandle of MT8192 ASoC platform. > @@ -27,10 +38,12 @@ properties: > mediatek,hdmi-codec: > $ref: /schemas/types.yaml#/definitions/phandle > description: The phandle of HDMI codec. > + deprecated: true The deprecated keyword doesn't do anything at the moment, but my plan there is to add a mode to the tools which disables all deprecated properties. That will give you want you want in terms of disallowing these properties. That would require dropping them from "required" which I'm fine with you doing. (Though technically that's still an ABI change) Rob
Il 07/03/24 15:12, Rob Herring ha scritto: > On Thu, Mar 07, 2024 at 12:44:42PM +0100, AngeloGioacchino Del Regno wrote: >> Document the dai-link subnodes and the audio-routing property, allowing >> to describe machine specific audio hardware and links in device tree. >> >> While at it, also deprecate the old properties which were previously >> used with the driver's partially hardcoded configuration. >> > > I replied on v1, but one more thing here. > >> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> >> --- >> .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 124 ++++++++++++++++-- >> 1 file changed, 115 insertions(+), 9 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml >> index 7e50f5d65c8f..449454c50dcc 100644 >> --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml >> +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml >> @@ -13,6 +13,9 @@ maintainers: >> description: >> This binding describes the MT8192 sound card. >> >> +allOf: >> + - $ref: sound-card-common.yaml# >> + >> properties: >> compatible: >> enum: >> @@ -20,6 +23,14 @@ properties: >> - mediatek,mt8192_mt6359_rt1015p_rt5682 >> - mediatek,mt8192_mt6359_rt1015p_rt5682s >> >> + audio-routing: >> + description: >> + A list of the connections between audio components. Each entry is a >> + pair of strings, the first being the connection's sink, the second >> + being the connection's source. >> + Valid names could be the input or output widgets of audio components, >> + power supplies, MicBias of codec and the software switch. >> + >> mediatek,platform: >> $ref: /schemas/types.yaml#/definitions/phandle >> description: The phandle of MT8192 ASoC platform. >> @@ -27,10 +38,12 @@ properties: >> mediatek,hdmi-codec: >> $ref: /schemas/types.yaml#/definitions/phandle >> description: The phandle of HDMI codec. >> + deprecated: true > > The deprecated keyword doesn't do anything at the moment, but my plan > there is to add a mode to the tools which disables all deprecated > properties. That will give you want you want in terms of disallowing > these properties. That would definitely be awesome - looking forward to it! > > That would require dropping them from "required" which I'm fine with you > doing. (Though technically that's still an ABI change) > Then instead of waiting for you to add that mode and then remove stuff later, I'll just omit the `else: required:` block on v3, so that we avoid commit noise and all the warnings when the deprecated check gets released. I guess that's fine, right? Cheers, Angelo
diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml index 7e50f5d65c8f..449454c50dcc 100644 --- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml +++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml @@ -13,6 +13,9 @@ maintainers: description: This binding describes the MT8192 sound card. +allOf: + - $ref: sound-card-common.yaml# + properties: compatible: enum: @@ -20,6 +23,14 @@ properties: - mediatek,mt8192_mt6359_rt1015p_rt5682 - mediatek,mt8192_mt6359_rt1015p_rt5682s + audio-routing: + description: + A list of the connections between audio components. Each entry is a + pair of strings, the first being the connection's sink, the second + being the connection's source. + Valid names could be the input or output widgets of audio components, + power supplies, MicBias of codec and the software switch. + mediatek,platform: $ref: /schemas/types.yaml#/definitions/phandle description: The phandle of MT8192 ASoC platform. @@ -27,10 +38,12 @@ properties: mediatek,hdmi-codec: $ref: /schemas/types.yaml#/definitions/phandle description: The phandle of HDMI codec. + deprecated: true headset-codec: type: object additionalProperties: false + deprecated: true properties: sound-dai: @@ -41,6 +54,7 @@ properties: speaker-codecs: type: object additionalProperties: false + deprecated: true properties: sound-dai: @@ -51,33 +65,125 @@ properties: required: - sound-dai +patternProperties: + ".*-dai-link$": + type: object + additionalProperties: false + + description: + Container for dai-link level properties and CODEC sub-nodes. + + properties: + link-name: + description: Indicates dai-link name and PCM stream name + enum: + - I2S0 + - I2S1 + - I2S2 + - I2S3 + - I2S4 + - I2S5 + - I2S6 + - I2S7 + - I2S8 + - I2S9 + - TDM + + codec: + description: Holds subnode which indicates codec dai. + type: object + additionalProperties: false + properties: + sound-dai: + minItems: 1 + maxItems: 2 + required: + - sound-dai + + dai-format: + description: audio format + enum: [ i2s, right_j, left_j, dsp_a, dsp_b ] + + mediatek,clk-provider: + $ref: /schemas/types.yaml#/definitions/string + description: Indicates dai-link clock master. + enum: [ cpu, codec ] + + required: + - link-name + additionalProperties: false required: - compatible - mediatek,platform - - headset-codec - - speaker-codecs + +# Disallow legacy properties if xxx-dai-link nodes are specified +if: + not: + patternProperties: + ".*-dai-link$": false +then: + properties: + headset-codec: false + speaker-codecs: false + mediatek,hdmi-codec: false +else: + required: + - headset-codec + - speaker-codecs examples: - | sound: mt8192-sound { compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; - mediatek,platform = <&afe>; - mediatek,hdmi-codec = <&anx_bridge_dp>; + model = "mt8192_mt6359_rt1015_rt5682"; pinctrl-names = "aud_clk_mosi_off", "aud_clk_mosi_on"; pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-1 = <&aud_clk_mosi_on>; + mediatek,platform = <&afe>; + + audio-routing = + "Headphone Jack", "HPOL", + "Headphone Jack", "HPOR", + "IN1P", "Headset Mic", + "Speakers", "Speaker"; + + spk-playback-dai-link { + link-name = "I2S3"; + dai-format = "i2s"; + mediatek,clk-provider = "cpu"; + codec { + sound-dai = <&rt1015p>; + }; + }; + + hs-playback-dai-link { + link-name = "I2S8"; + dai-format = "i2s"; + mediatek,clk-provider = "cpu"; + codec { + sound-dai = <&rt5682 0>; + }; + }; - headset-codec { - sound-dai = <&rt5682>; + hs-capture-dai-link { + link-name = "I2S9"; + dai-format = "i2s"; + mediatek,clk-provider = "cpu"; + codec { + sound-dai = <&rt5682 0>; + }; }; - speaker-codecs { - sound-dai = <&rt1015_l>, - <&rt1015_r>; + displayport-dai-link { + link-name = "TDM"; + dai-format = "dsp_a"; + codec { + sound-dai = <&anx_bridge_dp>; + }; }; };
Document the dai-link subnodes and the audio-routing property, allowing to describe machine specific audio hardware and links in device tree. While at it, also deprecate the old properties which were previously used with the driver's partially hardcoded configuration. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> --- .../sound/mt8192-mt6359-rt1015-rt5682.yaml | 124 ++++++++++++++++-- 1 file changed, 115 insertions(+), 9 deletions(-)