]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
extcon: ptn5150: Support USB role switch via connector fwnode
authorXu Yang <xu.yang_2@nxp.com>
Fri, 26 Sep 2025 02:53:09 +0000 (10:53 +0800)
committerChanwoo Choi <cw00.choi@samsung.com>
Fri, 20 Mar 2026 02:20:43 +0000 (11:20 +0900)
Since the PTN5150 is a Type-C chip, it's common to describe related
properties under the connector node. To align with this, the port
node will be located under the connector node in the future.

To support this layout, retrieve the USB role switch using the
connector's fwnode. For compatibility with existing device trees,
keep the usb_role_switch_get() function.

Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Link: https://lore.kernel.org/lkml/20250926025309.24267-3-xu.yang_2@nxp.com/
drivers/extcon/extcon-ptn5150.c

index de753d00c4c2bfba897d7d5f66b025d4b2919716..eca1b140aeb0fe0cf9f310d80c13f7471227bd18 100644 (file)
@@ -352,6 +352,8 @@ static int ptn5150_i2c_probe(struct i2c_client *i2c)
        }
 
        info->role_sw = usb_role_switch_get(info->dev);
+       if (!info->role_sw && connector)
+               info->role_sw = fwnode_usb_role_switch_get(connector);
        if (IS_ERR(info->role_sw))
                return dev_err_probe(info->dev, PTR_ERR(info->role_sw),
                                     "failed to get role switch\n");