mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 20:24:12 +08:00
ASoC: codecs: wsa88xx: add support for static port
Merge series from srinivas.kandagatla@linaro.org: Existing way of allocating soundwire master ports on Qualcommm platforms is dynamic, and in linear order starting from 1 to MAX_PORTS. This will work as long as soundwire device ports are 1:1 mapped linearly. However on most Qcom SoCs like SM8550, SM8650, x1e80100, these are NOT mapped in that order. The result of this is that only one speaker among the pair of speakers is always silent, With recent changes for WSA codec to support codec versions and along with these patches we are able to get all speakers working on these SoCs.
This commit is contained in:
commit
cc1deba840
@ -32,6 +32,14 @@ properties:
|
||||
vdd-supply:
|
||||
description: VDD Supply for the Codec
|
||||
|
||||
qcom,port-mapping:
|
||||
description: |
|
||||
Specifies static port mapping between slave and master ports.
|
||||
In the order of slave port index.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
|
||||
'#thermal-sensor-cells':
|
||||
const: 0
|
||||
|
||||
|
@ -32,6 +32,14 @@ properties:
|
||||
description: Powerdown/Shutdown line to use (pin SD_N)
|
||||
maxItems: 1
|
||||
|
||||
qcom,port-mapping:
|
||||
description: |
|
||||
Specifies static port mapping between slave and master ports.
|
||||
In the order of slave port index.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 6
|
||||
maxItems: 6
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 0
|
||||
|
||||
|
@ -1398,6 +1398,14 @@ static int wsa883x_probe(struct sdw_slave *pdev,
|
||||
wsa883x->sconfig.direction = SDW_DATA_DIR_RX;
|
||||
wsa883x->sconfig.type = SDW_STREAM_PDM;
|
||||
|
||||
/**
|
||||
* Port map index starts with 0, however the data port for this codec
|
||||
* are from index 1
|
||||
*/
|
||||
if (of_property_read_u32_array(dev->of_node, "qcom,port-mapping", &pdev->m_port_map[1],
|
||||
WSA883X_MAX_SWR_PORTS))
|
||||
dev_dbg(dev, "Static Port mapping not specified\n");
|
||||
|
||||
pdev->prop.sink_ports = GENMASK(WSA883X_MAX_SWR_PORTS, 0);
|
||||
pdev->prop.simple_clk_stop_capable = true;
|
||||
pdev->prop.sink_dpn_prop = wsa_sink_dpn_prop;
|
||||
|
@ -1887,6 +1887,14 @@ static int wsa884x_probe(struct sdw_slave *pdev,
|
||||
wsa884x->sconfig.direction = SDW_DATA_DIR_RX;
|
||||
wsa884x->sconfig.type = SDW_STREAM_PDM;
|
||||
|
||||
/**
|
||||
* Port map index starts with 0, however the data port for this codec
|
||||
* are from index 1
|
||||
*/
|
||||
if (of_property_read_u32_array(dev->of_node, "qcom,port-mapping", &pdev->m_port_map[1],
|
||||
WSA884X_MAX_SWR_PORTS))
|
||||
dev_dbg(dev, "Static Port mapping not specified\n");
|
||||
|
||||
pdev->prop.sink_ports = GENMASK(WSA884X_MAX_SWR_PORTS, 0);
|
||||
pdev->prop.simple_clk_stop_capable = true;
|
||||
pdev->prop.sink_dpn_prop = wsa884x_sink_dpn_prop;
|
||||
|
Loading…
Reference in New Issue
Block a user