MLK-16727-2 Revert "MLK-16285-5 extcon: extcon-ptn5110: only sends EXTCON_USB_HOST...
authorPeter Chen <peter.chen@nxp.com>
Mon, 30 Oct 2017 06:07:16 +0000 (14:07 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:39:08 +0000 (15:39 -0500)
This reverts 'commit cca4c561e412 ("MLK-16285-5 extcon: extcon-ptn5110:
only sends EXTCON_USB_HOST event")'

Some controllers (eg, Cadence USB3) need to know vbus disconnection
status for its internal state machine, so we need Type-C chip to
send this event as well.

BuildInfo:
- SCFW 8dcff26, IMX-MKIMAGE ea027c4b, ATF
- U-Boot 2017.03-imx_v2017.03_4.9.51_imx8_beta1+g6dc7b0f

Acked-by: Li Jun <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/extcon/extcon-ptn5150.c

index 2bc5a47..778b427 100644 (file)
@@ -92,12 +92,20 @@ static void ptn5150_detect_cable(struct work_struct *work)
        if (ret)
                dev_err(info->dev, "failed to get CC status:%d\n", ret);
 
-       if (IS_UFP_ATTATCHED(val))
+       if (IS_UFP_ATTATCHED(val)) {
+               extcon_set_state_sync(info->edev, EXTCON_USB, false);
                extcon_set_state_sync(info->edev, EXTCON_USB_HOST,
                        true);
-       else
+       } else if (IS_DFP_ATTATCHED(val)) {
                extcon_set_state_sync(info->edev, EXTCON_USB_HOST,
                        false);
+               extcon_set_state_sync(info->edev, EXTCON_USB, true);
+       } else if (IS_NOT_CONNECTED(val)) {
+               extcon_set_state_sync(info->edev, EXTCON_USB, false);
+               extcon_set_state_sync(info->edev, EXTCON_USB_HOST, false);
+       } else {
+               dev_dbg(info->dev, "other CC status is :0x%x", val);
+       }
 }
 
 static int ptn5150_clear_interrupt(struct ptn5150_info *info)