usb: typec: tcpm: Parse Accessory Mode information
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 15 Dec 2023 17:30:05 +0000 (19:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Dec 2023 17:55:15 +0000 (18:55 +0100)
Some of the boards supported by the TCPM drivers can support USB-C
Accessory Modes (Analog Audio, Debug). Parse information about supported
modes from the device tree.

Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20231215173005.313422-3-dmitry.baryshkov@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/tcpm/tcpm.c

index 8372f98de757de4d3c97de61d3cf4b4b3507bf10..cf70f1cf2f618b2c7c5ca62e2a2bca474237a471 100644 (file)
@@ -6144,6 +6144,7 @@ static int tcpm_fw_get_caps(struct tcpm_port *port,
 {
        const char *opmode_str;
        int ret;
+       int mode;
        u32 mw, frs_current;
 
        if (!fwnode)
@@ -6162,6 +6163,14 @@ static int tcpm_fw_get_caps(struct tcpm_port *port,
        if (ret < 0)
                return ret;
 
+       mode = 0;
+
+       if (fwnode_property_read_bool(fwnode, "accessory-mode-audio"))
+               port->typec_caps.accessory[mode++] = TYPEC_ACCESSORY_AUDIO;
+
+       if (fwnode_property_read_bool(fwnode, "accessory-mode-debug"))
+               port->typec_caps.accessory[mode++] = TYPEC_ACCESSORY_DEBUG;
+
        port->port_type = port->typec_caps.type;
        port->pd_supported = !fwnode_property_read_bool(fwnode, "pd-disable");