ASoC: dt-bindings: wcd937x-sdw: Add static channel mapping support

Add static channel mapping between master and slave rx/tx ports for
Qualcomm wcd937x soundwire codec.

Currently, the channel map index value for each soundwire port is
hardcoded in the wcd937x-sdw driver, and the same channel map index
value is configured in the soundwire master.

The Qualcomm board like the QCM6490-IDP require static channel map
settings for the soundwire master and slave ports.

If another boards which are using enable wcd937x, the channel mapping
index values between master and slave may be different depending on the
board hw design and requirements. If the above properties are not used
in a SoC specific device tree, the channel mapping index values are set
to default.

With the introduction of the following channel mapping properties, it is
now possible to configure the master channel mapping directly from the
device tree.

The qcom,tx-channel-mapping property specifies the static channel mapping
between the slave and master tx ports in the order of slave port channels
which is adc1, adc2, adc3, adc4, dmic0, dmic1, mbhc, dmic2, dmic3, dmci4,
dmic5, dmic6, dmic7.

The qcom,rx-channel-mapping property specifies the static channel mapping
between the slave and master rx ports in the order of slave port channels
which is hph_l, hph_r, clsh, comp_l, comp_r, lo, dsd_r, dsd_l.

Signed-off-by: Mohammad Rafi Shaik <quic_mohs@quicinc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20250206112225.3270400-2-quic_mohs@quicinc.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Mohammad Rafi Shaik 2025-02-06 16:52:22 +05:30 committed by Mark Brown
parent 6eab703457
commit 7282638121
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -58,6 +58,40 @@ properties:
items:
enum: [1, 2, 3, 4, 5]
qcom,tx-channel-mapping:
description: |
Specifies static channel mapping between slave and master tx port
channels.
In the order of slave port channels which is adc1, adc2, adc3,
dmic0, dmic1, mbhc, dmic2, dmic3, dmci4, dmic5, dmic6, dmic7.
$ref: /schemas/types.yaml#/definitions/uint8-array
minItems: 12
maxItems: 12
additionalItems: false
items:
enum:
- 1 # WCD9370_SWRM_CH1
- 2 # WCD9370_SWRM_CH2
- 3 # WCD9370_SWRM_CH3
- 4 # WCD9370_SWRM_CH4
qcom,rx-channel-mapping:
description: |
Specifies static channels mapping between slave and master rx port
channels.
In the order of slave port channels, which is
hph_l, hph_r, clsh, comp_l, comp_r, lo, dsd_r, dsd_l.
$ref: /schemas/types.yaml#/definitions/uint8-array
minItems: 8
maxItems: 8
additionalItems: false
items:
enum:
- 1 # WCD9370_SWRM_CH1
- 2 # WCD9370_SWRM_CH2
- 3 # WCD9370_SWRM_CH3
- 4 # WCD9370_SWRM_CH4
required:
- compatible
- reg
@ -74,6 +108,7 @@ examples:
compatible = "sdw20217010a00";
reg = <0 4>;
qcom,rx-port-mapping = <1 2 3 4 5>;
qcom,rx-channel-mapping = /bits/ 8 <1 2 1 1 2 1 1 2>;
};
};
@ -85,6 +120,7 @@ examples:
compatible = "sdw20217010a00";
reg = <0 3>;
qcom,tx-port-mapping = <2 2 3 4>;
qcom,tx-channel-mapping = /bits/ 8 <1 2 1 1 2 3 3 4 1 2 3 4>;
};
};