]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: codecs: wsa884x: parse port-mapping information
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Thu, 27 Jun 2024 14:44:41 +0000 (15:44 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 1 Jul 2024 13:53:25 +0000 (14:53 +0100)
Add support to parse static master port map information from device tree.
This is required for correct port mapping between soundwire device and
master ports.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Tested-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-HDK
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://patch.msgid.link/20240626-port-map-v2-4-6cc1c5608cdd@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wsa884x.c

index a9767ef0e39d158a1a58929f6e85762499530568..a6034547b4f36ee547078f7575fbc532a6049332 100644 (file)
@@ -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;