[RESEND PATCH v3 5/5] ASoC: codecs: wsa881x: add static port map support

From: Srinivas Kandagatla
Date: Fri Mar 12 2021 - 07:24:03 EST


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.kandagatla@xxxxxxxxxx>
---
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