Two instances of WSA881x(Speaker Right, Speaker Left) ports
are statically mapped to master ports. Allow the driver to parse
those mappings from device tree.

Signed-off-by: Srinivas Kandagatla <srinivas.kandaga...@linaro.org>
---
 sound/soc/codecs/wsa881x.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/codecs/wsa881x.c b/sound/soc/codecs/wsa881x.c
index db87e07b11c9..b3568aec0cd0 100644
--- a/sound/soc/codecs/wsa881x.c
+++ b/sound/soc/codecs/wsa881x.c
@@ -1093,6 +1093,7 @@ static int wsa881x_probe(struct sdw_slave *pdev,
                         const struct sdw_device_id *id)
 {
        struct wsa881x_priv *wsa881x;
+       struct device *dev = &pdev->dev;
 
        wsa881x = devm_kzalloc(&pdev->dev, sizeof(*wsa881x), GFP_KERNEL);
        if (!wsa881x)
@@ -1105,6 +1106,12 @@ static int wsa881x_probe(struct sdw_slave *pdev,
                return PTR_ERR(wsa881x->sd_n);
        }
 
+       /* valid port numbers on this codec starts from 1, so skip 0th index */
+       if (of_property_read_u32_array(dev->of_node, "qcom,port-mapping",
+                                      &pdev->m_port_map[1],
+                                      WSA881X_MAX_SWR_PORTS))
+               dev_info(dev, "Static Port mapping not specified\n");
+
        dev_set_drvdata(&pdev->dev, wsa881x);
        wsa881x->slave = pdev;
        wsa881x->dev = &pdev->dev;
-- 
2.21.0

Reply via email to