@@ -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;
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@linaro.org> --- sound/soc/codecs/wsa881x.c | 7 +++++++ 1 file changed, 7 insertions(+) -- 2.21.0