Commit 5a50483c authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno Committed by Mark Brown

ASoC: dt-bindings: mt8192: Document audio-routing and dai-link subnode

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.

Also, since describing machine specific audio hardware and links replaces
the now deprecated old logic doing the same in a driver hardcoded fashion,
it is not allowed to have both the old and new properties together.
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240416071410.75620-16-angelogioacchino.delregno@collabora.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent dc7a3130
...@@ -13,6 +13,9 @@ maintainers: ...@@ -13,6 +13,9 @@ maintainers:
description: description:
This binding describes the MT8192 sound card. This binding describes the MT8192 sound card.
allOf:
- $ref: sound-card-common.yaml#
properties: properties:
compatible: compatible:
enum: enum:
...@@ -20,6 +23,31 @@ properties: ...@@ -20,6 +23,31 @@ properties:
- mediatek,mt8192_mt6359_rt1015p_rt5682 - mediatek,mt8192_mt6359_rt1015p_rt5682
- mediatek,mt8192_mt6359_rt1015p_rt5682s - 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.
minItems: 2
items:
enum:
# Sinks
- Speakers
- Headphone Jack
- IN1P
- Left Spk
- Right Spk
# Sources
- Headset Mic
- HPOL
- HPOR
- Left SPO
- Right SPO
- Speaker
mediatek,platform: mediatek,platform:
$ref: /schemas/types.yaml#/definitions/phandle $ref: /schemas/types.yaml#/definitions/phandle
description: The phandle of MT8192 ASoC platform. description: The phandle of MT8192 ASoC platform.
...@@ -27,10 +55,12 @@ properties: ...@@ -27,10 +55,12 @@ properties:
mediatek,hdmi-codec: mediatek,hdmi-codec:
$ref: /schemas/types.yaml#/definitions/phandle $ref: /schemas/types.yaml#/definitions/phandle
description: The phandle of HDMI codec. description: The phandle of HDMI codec.
deprecated: true
headset-codec: headset-codec:
type: object type: object
additionalProperties: false additionalProperties: false
deprecated: true
properties: properties:
sound-dai: sound-dai:
...@@ -41,6 +71,7 @@ properties: ...@@ -41,6 +71,7 @@ properties:
speaker-codecs: speaker-codecs:
type: object type: object
additionalProperties: false additionalProperties: false
deprecated: true
properties: properties:
sound-dai: sound-dai:
...@@ -51,33 +82,121 @@ properties: ...@@ -51,33 +82,121 @@ properties:
required: required:
- sound-dai - sound-dai
additionalProperties: false 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
unevaluatedProperties: false
required: required:
- compatible - compatible
- mediatek,platform - 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
examples: examples:
- | - |
sound: mt8192-sound { sound: mt8192-sound {
compatible = "mediatek,mt8192_mt6359_rt1015_rt5682"; compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
mediatek,platform = <&afe>; model = "mt8192_mt6359_rt1015_rt5682";
mediatek,hdmi-codec = <&anx_bridge_dp>;
pinctrl-names = "aud_clk_mosi_off", pinctrl-names = "aud_clk_mosi_off",
"aud_clk_mosi_on"; "aud_clk_mosi_on";
pinctrl-0 = <&aud_clk_mosi_off>; pinctrl-0 = <&aud_clk_mosi_off>;
pinctrl-1 = <&aud_clk_mosi_on>; 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 { hs-capture-dai-link {
sound-dai = <&rt5682>; link-name = "I2S9";
dai-format = "i2s";
mediatek,clk-provider = "cpu";
codec {
sound-dai = <&rt5682 0>;
};
}; };
speaker-codecs { displayport-dai-link {
sound-dai = <&rt1015_l>, link-name = "TDM";
<&rt1015_r>; dai-format = "dsp_a";
codec {
sound-dai = <&anx_bridge_dp>;
};
}; };
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment