platform/chrome: cros_ec_typec: Make try power role optional
authorPrashant Malani <pmalani@chromium.org>
Thu, 27 Jan 2022 19:16:59 +0000 (19:16 +0000)
committerPrashant Malani <pmalani@chromium.org>
Mon, 31 Jan 2022 21:19:29 +0000 (21:19 +0000)
Some boards prefer not to specify a try-power-role. Update the port
property parsing logic to not error out in case a try-power-role is not
specified.

Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Prashant Malani <pmalani@chromium.org>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/chrome-platform/20220127191659.3560810-1-pmalani@chromium.org/
drivers/platform/chrome/cros_ec_typec.c

index 5de0bfb0bc4d992b544f4f1eb66134cb0f5e2e59..ee12658009e5cfa2b09f53195ee6190477841d21 100644 (file)
@@ -115,17 +115,18 @@ static int cros_typec_parse_port_props(struct typec_capability *cap,
                return ret;
        cap->data = ret;
 
+       /* Try-power-role is optional. */
        ret = fwnode_property_read_string(fwnode, "try-power-role", &buf);
        if (ret) {
-               dev_err(dev, "try-power-role not found: %d\n", ret);
-               return ret;
+               dev_warn(dev, "try-power-role not found: %d\n", ret);
+               cap->prefer_role = TYPEC_NO_PREFERRED_ROLE;
+       } else {
+               ret = typec_find_power_role(buf);
+               if (ret < 0)
+                       return ret;
+               cap->prefer_role = ret;
        }
 
-       ret = typec_find_power_role(buf);
-       if (ret < 0)
-               return ret;
-       cap->prefer_role = ret;
-
        cap->fwnode = fwnode;
 
        return 0;