From: Meng Dongyang Date: Mon, 15 Aug 2016 04:25:57 +0000 (+0800) Subject: mfd: fusb302: change to host when connect type-c to standard-a cable X-Git-Tag: firefly_0821_release~1692 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=firefly-linux-kernel-4.4.55.git;a=commitdiff_plain;h=44c76fdc010d9392f24c75dbd08e40c1ded0d5e1;hp=c75676bb6f1a2dd45d3074dc854445ec37507a2b mfd: fusb302: change to host when connect type-c to standard-a cable When connected with type-c to standard-a cable, inno phy will generate an interrupt before setting the state of typec to host, which result in detecting of battery charger. This patch change the state to host before interrupt happen. Change-Id: I6a2e15c264bd6729c3b8d23af23ad15145559b20 Signed-off-by: Meng Dongyang --- diff --git a/drivers/mfd/fusb302.c b/drivers/mfd/fusb302.c index e4bcd93982b8..2defbdea20b3 100644 --- a/drivers/mfd/fusb302.c +++ b/drivers/mfd/fusb302.c @@ -1277,9 +1277,6 @@ static void fusb_state_attach_wait_source(struct fusb30x_chip *chip, int evt) if ((chip->cc1 == cc1) && (chip->cc2 == cc2)) { chip->debounce_cnt++; - tcpm_set_polarity(chip, !(chip->cc_state & 0x01)); - platform_set_vbus_lvl_enable(chip, 1, 0); - tcpm_set_vconn(chip, 1); } else { chip->cc1 = cc1; chip->cc2 = cc2; @@ -1306,6 +1303,11 @@ static void fusb_state_attach_wait_source(struct fusb30x_chip *chip, int evt) static void fusb_state_attached_source(struct fusb30x_chip *chip, int evt) { + tcpm_set_polarity(chip, !(chip->cc_state & 0x01)); + extcon_set_state(chip->extcon, EXTCON_USB_HOST, 1); + platform_set_vbus_lvl_enable(chip, 1, 0); + tcpm_set_vconn(chip, 1); + chip->notify.is_cc_connected = 1; if (chip->cc_state & 0x01) chip->cc_polarity = 0;