mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-02 08:32:55 +00:00

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>
128 lines
3.7 KiB
YAML
128 lines
3.7 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/sound/qcom,wcd937x-sdw.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Qualcomm SoundWire Slave devices on WCD9370/WCD9375
|
|
|
|
maintainers:
|
|
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
|
|
|
description: |
|
|
Qualcomm WCD9370/WCD9375 Codec is a standalone Hi-Fi audio codec IC.
|
|
It has RX and TX Soundwire slave devices. This bindings is for the
|
|
slave devices.
|
|
|
|
properties:
|
|
compatible:
|
|
const: sdw20217010a00
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
qcom,tx-port-mapping:
|
|
description: |
|
|
Specifies static port mapping between device and host tx ports.
|
|
In the order of the device port index which are adc1_port, adc23_port,
|
|
dmic03_mbhc_port, dmic46_port.
|
|
Supports maximum 4 tx soundwire ports.
|
|
|
|
WCD9370 TX Port 1 (ADC1) <=> SWR2 Port 2
|
|
WCD9370 TX Port 2 (ADC2, 3) <=> SWR2 Port 2
|
|
WCD9370 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3
|
|
WCD9370 TX Port 4 (DMIC4,5,6,7) <=> SWR2 Port 4
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
minItems: 4
|
|
maxItems: 4
|
|
items:
|
|
enum: [1, 2, 3, 4]
|
|
|
|
qcom,rx-port-mapping:
|
|
description: |
|
|
Specifies static port mapping between device and host rx ports.
|
|
In the order of device port index which are hph_port, clsh_port,
|
|
comp_port, lo_port, dsd port.
|
|
Supports maximum 5 rx soundwire ports.
|
|
|
|
WCD9370 RX Port 1 (HPH_L/R) <==> SWR1 Port 1 (HPH_L/R)
|
|
WCD9370 RX Port 2 (CLSH) <==> SWR1 Port 2 (CLSH)
|
|
WCD9370 RX Port 3 (COMP_L/R) <==> SWR1 Port 3 (COMP_L/R)
|
|
WCD9370 RX Port 4 (LO) <==> SWR1 Port 4 (LO)
|
|
WCD9370 RX Port 5 (DSD_L/R) <==> SWR1 Port 5 (DSD)
|
|
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
minItems: 5
|
|
maxItems: 5
|
|
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
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
soundwire@3210000 {
|
|
reg = <0x03210000 0x2000>;
|
|
#address-cells = <2>;
|
|
#size-cells = <0>;
|
|
wcd937x_rx: codec@0,4 {
|
|
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>;
|
|
};
|
|
};
|
|
|
|
soundwire@3230000 {
|
|
reg = <0x03230000 0x2000>;
|
|
#address-cells = <2>;
|
|
#size-cells = <0>;
|
|
wcd937x_tx: codec@0,3 {
|
|
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>;
|
|
};
|
|
};
|
|
|
|
...
|