public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/6] usb: musb: charger detection
@ 2011-09-15 14:19 Kishon Vijay Abraham I
  2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:19 UTC (permalink / raw)
  To: linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM
  Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0,
	x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0,
	hemahk-l0cyMroinI0

This provides a series of patches contributed by several people to
do correct charger detection and solve issues that came along with
the charger detection implementation.

USB_EVENT_NONE notification is sent only when a PC cable/CDP cable or
a device connected to MUSB is detached.

USB_EVENT_VBUS notification is sent only when a PC cable/CDP cable or
a device is connected to MUSB.

Developed on:
git://github.com/torvalds/linux.git
commit id: cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941

This patch series is developed and tested on top of Heikki Krogerus
patch series (version4) [1]

Basic Testing:
Tested with gadget zero enabled for charger detection (PC/DCP). Data transfer testing
is done on both omap4 and omap3 with ./testusb. Tested for device enumeration when a
device is connected to MUSB.

[1] http://www.spinics.net/lists/linux-usb/msg51038.html

Balaji T K (2):
  OMAP4: TWL6030: add USB charger detection
  twl6030: set charger current to be used by battery charging module

Kishon Vijay Abraham I (2):
  usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
  usb: musb: omap4430_phy_power to enable/disable clocks and power
    up/down phy

Sergii Postulga (1):
  OMAP4: PHY internal: Add msleep_interruptible to charger detection
    function

Viswanath Puttagunta (1):
  MUSB Charger Type Detection: Fix DCP detect during boot.

 arch/arm/mach-omap2/omap_phy_internal.c |   67 +++++++++++++++++++++++++++++++
 arch/arm/plat-omap/include/plat/usb.h   |    1 +
 drivers/usb/musb/omap2430.c             |   50 +++++++++++++++++++----
 drivers/usb/otg/twl6030-usb.c           |   64 +++++++++++++++++++++++------
 4 files changed, 159 insertions(+), 23 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
  2011-09-15 14:19 [RFC PATCH 0/6] usb: musb: charger detection Kishon Vijay Abraham I
@ 2011-09-15 14:19 ` Kishon Vijay Abraham I
  2011-09-16  9:48   ` Sergei Shtylyov
  2011-09-15 14:20 ` [RFC PATCH 5/6] OMAP4: PHY internal: Add msleep_interruptible to charger detection function Kishon Vijay Abraham I
       [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
  2 siblings, 1 reply; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:19 UTC (permalink / raw)
  To: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh
  Cc: p-basak2, kishon, balajitk, x0153364, m-sonasath, vishp, hemahk

Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting
in incorrect detection of charger type. Hence OTG_INTERFSEL is configured to
ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or
USB_EVENT_VBUS notification.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Balaji T K <balajitk@ti.com>
[sandesh.gowda@ti.com: The interface selection has to be done before the PHY
is activated and is not allowed to change when the PHY clock is already
running]
---
 drivers/usb/musb/omap2430.c |   50 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index fc9377c..724450b 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -228,6 +228,7 @@ static inline void omap2430_low_level_init(struct musb *musb)
 static int musb_otg_notifications(struct notifier_block *nb,
 		unsigned long event, void *unused)
 {
+	u32 val;
 	struct musb	*musb = container_of(nb, struct musb, nb);
 	struct device *dev = musb->controller;
 	struct musb_hdrc_platform_data *pdata = dev->platform_data;
@@ -240,11 +241,32 @@ static int musb_otg_notifications(struct notifier_block *nb,
 		if (is_otg_enabled(musb)) {
 			if (musb->gadget_driver) {
 				pm_runtime_get_sync(musb->controller);
+
+				val = musb_readl(musb->mregs, OTG_INTERFSEL);
+				if (data->interface_type ==
+							MUSB_INTERFACE_UTMI) {
+					val &= ~ULPI_12PIN;
+					val |= UTMI_8BIT;
+				} else {
+					val |= ULPI_12PIN;
+				}
+				musb_writel(musb->mregs, OTG_INTERFSEL, val);
+
 				usb_phy_init(musb->xceiv);
 				omap2430_musb_set_vbus(musb, 1);
 			}
 		} else {
 			pm_runtime_get_sync(musb->controller);
+
+			val = musb_readl(musb->mregs, OTG_INTERFSEL);
+			if (data->interface_type == MUSB_INTERFACE_UTMI) {
+				val &= ~ULPI_12PIN;
+				val |= UTMI_8BIT;
+			} else {
+				val |= ULPI_12PIN;
+			}
+			musb_writel(musb->mregs, OTG_INTERFSEL, val);
+
 			usb_phy_init(musb->xceiv);
 			omap2430_musb_set_vbus(musb, 1);
 		}
@@ -255,6 +277,16 @@ static int musb_otg_notifications(struct notifier_block *nb,
 
 		if (musb->gadget_driver)
 			pm_runtime_get_sync(musb->controller);
+
+		val = musb_readl(musb->mregs, OTG_INTERFSEL);
+		if (data->interface_type == MUSB_INTERFACE_UTMI) {
+			val &= ~ULPI_12PIN;
+			val |= UTMI_8BIT;
+		} else {
+			val |= ULPI_12PIN;
+		}
+		musb_writel(musb->mregs, OTG_INTERFSEL, val);
+
 		usb_phy_init(musb->xceiv);
 		break;
 
@@ -272,6 +304,11 @@ static int musb_otg_notifications(struct notifier_block *nb,
 				otg_set_vbus(musb->xceiv->otg, 0);
 		}
 		usb_phy_shutdown(musb->xceiv);
+
+		val = musb_readl(musb->mregs, OTG_INTERFSEL);
+		val |= ULPI_12PIN;
+		musb_writel(musb->mregs, OTG_INTERFSEL, val);
+
 		break;
 	default:
 		dev_dbg(musb->controller, "ID float\n");
@@ -304,16 +341,11 @@ static int omap2430_musb_init(struct musb *musb)
 		goto err1;
 	}
 
+	/* Set OTG_INTERFSEL to ULPI for correct charger detection.
+	 * This should be later set to UTMI.
+	 */
 	l = musb_readl(musb->mregs, OTG_INTERFSEL);
-
-	if (data->interface_type == MUSB_INTERFACE_UTMI) {
-		/* OMAP4 uses Internal PHY GS70 which uses UTMI interface */
-		l &= ~ULPI_12PIN;       /* Disable ULPI */
-		l |= UTMI_8BIT;         /* Enable UTMI  */
-	} else {
-		l |= ULPI_12PIN;
-	}
-
+	l |= ULPI_12PIN;
 	musb_writel(musb->mregs, OTG_INTERFSEL, l);
 
 	pr_debug("HS USB OTG: revision 0x%x, sysconfig 0x%02x, "
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy
       [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
@ 2011-09-15 14:19   ` Kishon Vijay Abraham I
  2011-09-15 14:20   ` [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection Kishon Vijay Abraham I
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:19 UTC (permalink / raw)
  To: linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM
  Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0,
	x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0,
	hemahk-l0cyMroinI0

omap4430_phy_power is modified to be self contained in that it enables clock
and power up the phy in addition to modifying the USBOTGHS_CONTROL register
during power on. Similarly while powering down, it disables clock and
power down the phy.

Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
Signed-off-by: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org>
Signed-off-by: Partha Basak <p-basak2-l0cyMroinI0@public.gmane.org>
---
 arch/arm/mach-omap2/omap_phy_internal.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c
index 58775e3..a828833 100644
--- a/arch/arm/mach-omap2/omap_phy_internal.c
+++ b/arch/arm/mach-omap2/omap_phy_internal.c
@@ -110,6 +110,13 @@ int omap4430_phy_set_clk(struct device *dev, int on)
 int omap4430_phy_power(struct device *dev, int ID, int on)
 {
 	if (on) {
+		/* enabled the clocks */
+		omap4430_phy_set_clk(dev, 1);
+		/* power on the phy */
+		if (__raw_readl(ctrl_base + CONTROL_DEV_CONF) & PHY_PD) {
+			__raw_writel(~PHY_PD, ctrl_base + CONTROL_DEV_CONF);
+			msleep_interruptible(200);
+		}
 		if (ID)
 			/* enable VBUS valid, IDDIG groung */
 			__raw_writel(AVALID | VBUSVALID, ctrl_base +
@@ -125,6 +132,10 @@ int omap4430_phy_power(struct device *dev, int ID, int on)
 		/* Enable session END and IDIG to high impedance. */
 		__raw_writel(SESSEND | IDDIG, ctrl_base +
 					USBOTGHS_CONTROL);
+		/* Power down the phy */
+		__raw_writel(PHY_PD, ctrl_base + CONTROL_DEV_CONF);
+		/* Disable the clocks */
+		omap4430_phy_set_clk(dev, 0);
 	}
 	return 0;
 }
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection
       [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
  2011-09-15 14:19   ` [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy Kishon Vijay Abraham I
@ 2011-09-15 14:20   ` Kishon Vijay Abraham I
  2011-09-15 14:20   ` [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot Kishon Vijay Abraham I
  2011-09-15 14:20   ` [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module Kishon Vijay Abraham I
  3 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw)
  To: linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM
  Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0,
	x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0,
	hemahk-l0cyMroinI0

From: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org>

Charger detection is done in threaded irq and is performed only when OMAP
acts as B-device. Phy is powered on before charger detection and is powered
down once charger detection is completed. The type of charger is sent through
all the registered notifiers.

Signed-off-by: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org>
Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
Signed-off-by: Hema HK <hemahk-l0cyMroinI0@public.gmane.org>
Signed-off-by: Partha Basak <p-basak2-l0cyMroinI0@public.gmane.org>
---
 arch/arm/mach-omap2/omap_phy_internal.c |   50 ++++++++++++++++++++++++++++++
 arch/arm/plat-omap/include/plat/usb.h   |    1 +
 drivers/usb/otg/twl6030-usb.c           |   51 ++++++++++++++++++++++--------
 3 files changed, 88 insertions(+), 14 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c
index a828833..e5a6701 100644
--- a/arch/arm/mach-omap2/omap_phy_internal.c
+++ b/arch/arm/mach-omap2/omap_phy_internal.c
@@ -27,6 +27,7 @@
 #include <linux/io.h>
 #include <linux/err.h>
 #include <linux/usb.h>
+#include <linux/power_supply.h>
 
 #include <plat/usb.h>
 #include "control.h"
@@ -42,6 +43,13 @@
 #define	SESSEND				BIT(3)
 #define	IDDIG				BIT(4)
 
+#define CONTROL_USB2PHYCORE		0x620
+#define CHARGER_TYPE_PS2		0x2
+#define CHARGER_TYPE_DEDICATED		0x4
+#define CHARGER_TYPE_HOST		0x5
+#define CHARGER_TYPE_PC			0x6
+#define USB2PHY_CHGDETECTED		BIT(13)
+
 static struct clk *phyclk, *clk48m, *clk32k;
 static void __iomem *ctrl_base;
 static int usbotghs_control;
@@ -107,6 +115,48 @@ int omap4430_phy_set_clk(struct device *dev, int on)
 	return 0;
 }
 
+int omap4_charger_detect(void)
+{
+	unsigned long timeout;
+	int charger = 0;
+	u32 usb2phycore = 0;
+	u32 chargertype = 0;
+
+	omap4430_phy_power(NULL, 0, 1);
+
+	timeout = jiffies + msecs_to_jiffies(500);
+	do {
+		usb2phycore = omap4_ctrl_pad_readl(CONTROL_USB2PHYCORE);
+		chargertype = ((usb2phycore >> 21) & 0x7);
+		if (usb2phycore & USB2PHY_CHGDETECTED)
+			break;
+	} while (!time_after(jiffies, timeout));
+
+	switch (chargertype) {
+	case CHARGER_TYPE_DEDICATED:
+		charger = POWER_SUPPLY_TYPE_USB_DCP;
+		pr_info("DCP detected\n");
+		break;
+	case CHARGER_TYPE_HOST:
+		charger = POWER_SUPPLY_TYPE_USB_CDP;
+		pr_info("CDP detected\n");
+		break;
+	case CHARGER_TYPE_PC:
+		charger = POWER_SUPPLY_TYPE_USB;
+		pr_info("PC detected\n");
+		break;
+	case CHARGER_TYPE_PS2:
+		pr_info("PS/2 detected!\n");
+		break;
+	default:
+		pr_err(KERN_ERR"Unknown charger detected! %d\n", chargertype);
+	}
+
+	omap4430_phy_power(NULL, 0, 0);
+
+	return charger;
+}
+
 int omap4430_phy_power(struct device *dev, int ID, int on)
 {
 	if (on) {
diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h
index 17d3c93..582851b 100644
--- a/arch/arm/plat-omap/include/plat/usb.h
+++ b/arch/arm/plat-omap/include/plat/usb.h
@@ -107,6 +107,7 @@ extern int omap4430_phy_power(struct device *dev, int ID, int on);
 extern int omap4430_phy_set_clk(struct device *dev, int on);
 extern int omap4430_phy_init(struct device *dev);
 extern int omap4430_phy_exit(struct device *dev);
+extern int omap4_charger_detect(void);
 extern int omap4430_phy_suspend(struct device *dev, int suspend);
 #endif
 
diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c
index 843c47d..6cb28ea 100644
--- a/drivers/usb/otg/twl6030-usb.c
+++ b/drivers/usb/otg/twl6030-usb.c
@@ -32,6 +32,8 @@
 #include <linux/notifier.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
+#include <plat/usb.h>
+#include <linux/power_supply.h>
 
 /* usb register definitions */
 #define USB_VENDOR_ID_LSB		0x00
@@ -102,6 +104,7 @@ struct twl6030_usb {
 	int			irq2;
 	u8			linkstat;
 	u8			asleep;
+	u8			prev_vbus;
 	bool			irq_enabled;
 	bool			vbus_enable;
 	unsigned long		features;
@@ -273,6 +276,7 @@ static irqreturn_t twl6030_usb_irq(int irq, void *_twl)
 {
 	struct twl6030_usb *twl = _twl;
 	struct usb_otg *otg = twl->xceiv.otg;
+	unsigned charger_type;
 	int status;
 	u8 vbus_state, hw_state;
 
@@ -280,29 +284,48 @@ static irqreturn_t twl6030_usb_irq(int irq, void *_twl)
 
 	vbus_state = twl6030_readb(twl, TWL_MODULE_MAIN_CHARGE,
 						CONTROLLER_STAT1);
-	if (!(hw_state & STS_USB_ID)) {
-		if (vbus_state & VBUS_DET) {
-			regulator_enable(twl->usb3v3);
-			twl->asleep = 1;
+	vbus_state = vbus_state & VBUS_DET;
+
+	/* Ignore charger events other than VBUS */
+	if (vbus_state == twl->prev_vbus)
+		return IRQ_HANDLED;
+
+	if ((vbus_state) && !(hw_state & STS_USB_ID)) {
+		regulator_enable(twl->usb3v3);
+		charger_type = omap4_charger_detect();
+		if ((charger_type == POWER_SUPPLY_TYPE_USB_CDP)
+			|| (charger_type == POWER_SUPPLY_TYPE_USB)) {
 			status = USB_EVENT_VBUS;
 			otg->default_a = false;
+			twl->asleep = 1;
 			twl->xceiv.state = USB_PHY_STATE_B_IDLE;
 			twl->linkstat = status;
 			twl->xceiv.last_event = status;
-			atomic_notifier_call_chain(&twl->xceiv.notifier,
-						status, otg->gadget);
-		} else {
-			status = USB_EVENT_NONE;
-			twl->linkstat = status;
+		} else if (charger_type == POWER_SUPPLY_TYPE_USB_DCP) {
+			regulator_disable(twl->usb3v3);
+			status = USB_EVENT_CHARGER;
 			twl->xceiv.last_event = status;
+		} else {
+			regulator_disable(twl->usb3v3);
+			goto vbus_notify;
+		}
+		atomic_notifier_call_chain(&twl->xceiv.notifier,
+						status, &charger_type);
+	}
+	if (!vbus_state) {
+		status = USB_EVENT_NONE;
+		twl->linkstat = status;
+		twl->xceiv.last_event = status;
+		if (twl->asleep) {
 			atomic_notifier_call_chain(&twl->xceiv.notifier,
-						status, otg->gadget);
-			if (twl->asleep) {
-				regulator_disable(twl->usb3v3);
-				twl->asleep = 0;
-			}
+					status, twl->xceiv.otg->gadget);
+			regulator_disable(twl->usb3v3);
+			twl->asleep = 0;
 		}
 	}
+
+vbus_notify:
+	twl->prev_vbus = vbus_state;
 	sysfs_notify(&twl->dev->kobj, NULL, "vbus");
 
 	return IRQ_HANDLED;
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot.
       [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
  2011-09-15 14:19   ` [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy Kishon Vijay Abraham I
  2011-09-15 14:20   ` [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection Kishon Vijay Abraham I
@ 2011-09-15 14:20   ` Kishon Vijay Abraham I
  2011-09-15 14:20   ` [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module Kishon Vijay Abraham I
  3 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw)
  To: linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM
  Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0,
	x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0,
	hemahk-l0cyMroinI0

From: Viswanath Puttagunta <vishp-l0cyMroinI0@public.gmane.org>

The charger detection module is getting
disabled during boot up if a DCP (Dedicated charging port)
is connected before device is powered on (Bit 30 of CONTROL_USB2PHYCORE
is set). This patch enables charger type detection each time the charger type
wants to be detected.

Signed-off-by: Viswanath Puttagunta <vishp-l0cyMroinI0@public.gmane.org>
Signed-off-by: Moiz Sonasath <m-sonasath-l0cyMroinI0@public.gmane.org>
Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
---
 arch/arm/mach-omap2/omap_phy_internal.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c
index e5a6701..55918ea 100644
--- a/arch/arm/mach-omap2/omap_phy_internal.c
+++ b/arch/arm/mach-omap2/omap_phy_internal.c
@@ -49,6 +49,7 @@
 #define CHARGER_TYPE_HOST		0x5
 #define CHARGER_TYPE_PC			0x6
 #define USB2PHY_CHGDETECTED		BIT(13)
+#define USB2PHY_DISCHGDET		BIT(30)
 
 static struct clk *phyclk, *clk48m, *clk32k;
 static void __iomem *ctrl_base;
@@ -124,6 +125,10 @@ int omap4_charger_detect(void)
 
 	omap4430_phy_power(NULL, 0, 1);
 
+	usb2phycore = omap4_ctrl_pad_readl(CONTROL_USB2PHYCORE);
+	usb2phycore &= ~USB2PHY_DISCHGDET;
+	omap4_ctrl_pad_writel(usb2phycore, CONTROL_USB2PHYCORE);
+
 	timeout = jiffies + msecs_to_jiffies(500);
 	do {
 		usb2phycore = omap4_ctrl_pad_readl(CONTROL_USB2PHYCORE);
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [RFC PATCH 5/6] OMAP4: PHY internal: Add msleep_interruptible to charger detection function
  2011-09-15 14:19 [RFC PATCH 0/6] usb: musb: charger detection Kishon Vijay Abraham I
  2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I
@ 2011-09-15 14:20 ` Kishon Vijay Abraham I
       [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
  2 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw)
  To: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh
  Cc: p-basak2, kishon, balajitk, x0153364, m-sonasath, vishp, hemahk

From: Sergii Postulga <x0153364@ti.com>

Charger detection is given 500ms to complete until which it loops continuously
taking all the processor time.  If we plug USB-micro cable to board during
playing video or audio we have a glitches. This patch frees time for doing
other things during waiting the charger detecting flag.

Signed-off-by: Sergii Postulga <x0153364@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 arch/arm/mach-omap2/omap_phy_internal.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c
index 55918ea..2334de8 100644
--- a/arch/arm/mach-omap2/omap_phy_internal.c
+++ b/arch/arm/mach-omap2/omap_phy_internal.c
@@ -135,6 +135,7 @@ int omap4_charger_detect(void)
 		chargertype = ((usb2phycore >> 21) & 0x7);
 		if (usb2phycore & USB2PHY_CHGDETECTED)
 			break;
+		msleep_interruptible(10);
 	} while (!time_after(jiffies, timeout));
 
 	switch (chargertype) {
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module
       [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
                     ` (2 preceding siblings ...)
  2011-09-15 14:20   ` [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot Kishon Vijay Abraham I
@ 2011-09-15 14:20   ` Kishon Vijay Abraham I
  3 siblings, 0 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw)
  To: linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM
  Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0,
	x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0,
	hemahk-l0cyMroinI0

From: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org>

Set the current supplied by dedicated charging port to 1800mV(according to
battery charging specification). Also added a callback function for set_power
to dynamically set the current to be supplied based on the state of the system.

Signed-off-by: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org>
Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
---
 drivers/usb/otg/twl6030-usb.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c
index 6cb28ea..1f22c10 100644
--- a/drivers/usb/otg/twl6030-usb.c
+++ b/drivers/usb/otg/twl6030-usb.c
@@ -102,6 +102,7 @@ struct twl6030_usb {
 
 	int			irq1;
 	int			irq2;
+	unsigned int		usb_cinlimit_mA;
 	u8			linkstat;
 	u8			asleep;
 	u8			prev_vbus;
@@ -305,6 +306,7 @@ static irqreturn_t twl6030_usb_irq(int irq, void *_twl)
 			regulator_disable(twl->usb3v3);
 			status = USB_EVENT_CHARGER;
 			twl->xceiv.last_event = status;
+			twl->usb_cinlimit_mA = 1800;
 		} else {
 			regulator_disable(twl->usb3v3);
 			goto vbus_notify;
@@ -435,6 +437,16 @@ static int twl6030_set_host(struct usb_otg *otg, struct usb_bus *host)
 	return 0;
 }
 
+static int twl6030_set_power(struct usb_phy *x, unsigned int mA)
+{
+	struct twl6030_usb *twl = xceiv_to_twl(x);
+
+	twl->usb_cinlimit_mA = mA;
+	atomic_notifier_call_chain(&twl->xceiv.notifier, USB_EVENT_ENUMERATED,
+				&twl->usb_cinlimit_mA);
+	return 0;
+}
+
 static int __devinit twl6030_usb_probe(struct platform_device *pdev)
 {
 	struct twl6030_usb	*twl;
@@ -463,6 +475,7 @@ static int __devinit twl6030_usb_probe(struct platform_device *pdev)
 	twl->xceiv.label	= "twl6030";
 	twl->xceiv.otg		= otg;
 	twl->xceiv.init		= twl6030_phy_init;
+	twl->xceiv.set_power	= twl6030_set_power;
 	twl->xceiv.shutdown	= twl6030_phy_shutdown;
 	twl->xceiv.set_suspend	= twl6030_phy_suspend;
 
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
  2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I
@ 2011-09-16  9:48   ` Sergei Shtylyov
  2011-09-16 13:51     ` ABRAHAM, KISHON VIJAY
  0 siblings, 1 reply; 12+ messages in thread
From: Sergei Shtylyov @ 2011-09-16  9:48 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh, p-basak2,
	balajitk, x0153364, m-sonasath, vishp, hemahk

Hello.

On 15-09-2011 18:19, Kishon Vijay Abraham I wrote:

> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting
> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured to
> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or
> USB_EVENT_VBUS notification.

> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com>
> Signed-off-by: Balaji T K<balajitk@ti.com>

    AFAIK, full name is needed here.

> [sandesh.gowda@ti.com: The interface selection has to be done before the PHY
> is activated and is not allowed to change when the PHY clock is already
> running]

    No signoff from him?

> ---
>   drivers/usb/musb/omap2430.c |   50 +++++++++++++++++++++++++++++++++++-------
>   1 files changed, 41 insertions(+), 9 deletions(-)

> diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
> index fc9377c..724450b 100644
> --- a/drivers/usb/musb/omap2430.c
> +++ b/drivers/usb/musb/omap2430.c
> @@ -228,6 +228,7 @@ static inline void omap2430_low_level_init(struct musb *musb)
>   static int musb_otg_notifications(struct notifier_block *nb,
>   		unsigned long event, void *unused)
>   {
> +	u32 val;
>   	struct musb	*musb = container_of(nb, struct musb, nb);
>   	struct device *dev = musb->controller;
>   	struct musb_hdrc_platform_data *pdata = dev->platform_data;
> @@ -240,11 +241,32 @@ static int musb_otg_notifications(struct notifier_block *nb,
>   		if (is_otg_enabled(musb)) {
>   			if (musb->gadget_driver) {
>   				pm_runtime_get_sync(musb->controller);
> +
> +				val = musb_readl(musb->mregs, OTG_INTERFSEL);
> +				if (data->interface_type ==
> +							MUSB_INTERFACE_UTMI) {
> +					val&= ~ULPI_12PIN;
> +					val |= UTMI_8BIT;
> +				} else {
> +					val |= ULPI_12PIN;
> +				}
> +				musb_writel(musb->mregs, OTG_INTERFSEL, val);
> +
>   				usb_phy_init(musb->xceiv);
>   				omap2430_musb_set_vbus(musb, 1);
>   			}
>   		} else {
>   			pm_runtime_get_sync(musb->controller);
> +
> +			val = musb_readl(musb->mregs, OTG_INTERFSEL);
> +			if (data->interface_type == MUSB_INTERFACE_UTMI) {
> +				val&= ~ULPI_12PIN;
> +				val |= UTMI_8BIT;
> +			} else {
> +				val |= ULPI_12PIN;
> +			}
> +			musb_writel(musb->mregs, OTG_INTERFSEL, val);
> +
>   			usb_phy_init(musb->xceiv);
>   			omap2430_musb_set_vbus(musb, 1);
>   		}
> @@ -255,6 +277,16 @@ static int musb_otg_notifications(struct notifier_block *nb,
>
>   		if (musb->gadget_driver)
>   			pm_runtime_get_sync(musb->controller);
> +
> +		val = musb_readl(musb->mregs, OTG_INTERFSEL);
> +		if (data->interface_type == MUSB_INTERFACE_UTMI) {
> +			val&= ~ULPI_12PIN;
> +			val |= UTMI_8BIT;
> +		} else {
> +			val |= ULPI_12PIN;
> +		}
> +		musb_writel(musb->mregs, OTG_INTERFSEL, val);
> +
>   		usb_phy_init(musb->xceiv);
>   		break;

    Why repeat the same sequence 3 times. Couldn't you factor it out into a 
subroutine?

> @@ -272,6 +304,11 @@ static int musb_otg_notifications(struct notifier_block *nb,
>   				otg_set_vbus(musb->xceiv->otg, 0);
>   		}
>   		usb_phy_shutdown(musb->xceiv);
> +
> +		val = musb_readl(musb->mregs, OTG_INTERFSEL);
> +		val |= ULPI_12PIN;
> +		musb_writel(musb->mregs, OTG_INTERFSEL, val);
> +
>   		break;
>   	default:
>   		dev_dbg(musb->controller, "ID float\n");
> @@ -304,16 +341,11 @@ static int omap2430_musb_init(struct musb *musb)
>   		goto err1;
>   	}
>
> +	/* Set OTG_INTERFSEL to ULPI for correct charger detection.
> +	 * This should be later set to UTMI.
> +	 */
>   	l = musb_readl(musb->mregs, OTG_INTERFSEL);
> -
> -	if (data->interface_type == MUSB_INTERFACE_UTMI) {
> -		/* OMAP4 uses Internal PHY GS70 which uses UTMI interface */
> -		l&= ~ULPI_12PIN;       /* Disable ULPI */
> -		l |= UTMI_8BIT;         /* Enable UTMI  */
> -	} else {
> -		l |= ULPI_12PIN;
> -	}
> -
> +	l |= ULPI_12PIN;
>   	musb_writel(musb->mregs, OTG_INTERFSEL, l);

    This also seems to be the same code repeated twice...

WBR, Sergei

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
  2011-09-16  9:48   ` Sergei Shtylyov
@ 2011-09-16 13:51     ` ABRAHAM, KISHON VIJAY
       [not found]       ` <CAAe_U6KaFJGM61=Pkm2q-EBQeEtSAOBuC2jgFRd7DV4xKOjJdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 12+ messages in thread
From: ABRAHAM, KISHON VIJAY @ 2011-09-16 13:51 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh, p-basak2,
	balajitk, x0153364, m-sonasath, vishp, hemahk

Sergei,

Thanks for your comments.

On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
> On 15-09-2011 18:19, Kishon Vijay Abraham I wrote:
>
>> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting
>> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured
>> to
>> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or
>> USB_EVENT_VBUS notification.
>
>> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com>
>> Signed-off-by: Balaji T K<balajitk@ti.com>
>
>   AFAIK, full name is needed here.

is it not the prerogative of the person giving his signed-off by??

>
>> [sandesh.gowda@ti.com: The interface selection has to be done before the
>> PHY
>> is activated and is not allowed to change when the PHY clock is already
>> running]
>
>   No signoff from him?

ok. will add his signoff.
>
>> ---
>>  drivers/usb/musb/omap2430.c |   50
>> +++++++++++++++++++++++++++++++++++-------
>>  1 files changed, 41 insertions(+), 9 deletions(-)
>
>> diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
>> index fc9377c..724450b 100644
>> --- a/drivers/usb/musb/omap2430.c
>> +++ b/drivers/usb/musb/omap2430.c
>> @@ -228,6 +228,7 @@ static inline void omap2430_low_level_init(struct musb
>> *musb)
>>  static int musb_otg_notifications(struct notifier_block *nb,
>>                unsigned long event, void *unused)
>>  {
>> +       u32 val;
>>        struct musb     *musb = container_of(nb, struct musb, nb);
>>        struct device *dev = musb->controller;
>>        struct musb_hdrc_platform_data *pdata = dev->platform_data;
>> @@ -240,11 +241,32 @@ static int musb_otg_notifications(struct
>> notifier_block *nb,
>>                if (is_otg_enabled(musb)) {
>>                        if (musb->gadget_driver) {
>>                                pm_runtime_get_sync(musb->controller);
>> +
>> +                               val = musb_readl(musb->mregs,
>> OTG_INTERFSEL);
>> +                               if (data->interface_type ==
>> +
>> MUSB_INTERFACE_UTMI) {
>> +                                       val&= ~ULPI_12PIN;
>> +                                       val |= UTMI_8BIT;
>> +                               } else {
>> +                                       val |= ULPI_12PIN;
>> +                               }
>> +                               musb_writel(musb->mregs, OTG_INTERFSEL,
>> val);
>> +
>>                                usb_phy_init(musb->xceiv);
>>                                omap2430_musb_set_vbus(musb, 1);
>>                        }
>>                } else {
>>                        pm_runtime_get_sync(musb->controller);
>> +
>> +                       val = musb_readl(musb->mregs, OTG_INTERFSEL);
>> +                       if (data->interface_type == MUSB_INTERFACE_UTMI) {
>> +                               val&= ~ULPI_12PIN;
>> +                               val |= UTMI_8BIT;
>> +                       } else {
>> +                               val |= ULPI_12PIN;
>> +                       }
>> +                       musb_writel(musb->mregs, OTG_INTERFSEL, val);
>> +
>>                        usb_phy_init(musb->xceiv);
>>                        omap2430_musb_set_vbus(musb, 1);
>>                }
>> @@ -255,6 +277,16 @@ static int musb_otg_notifications(struct
>> notifier_block *nb,
>>
>>                if (musb->gadget_driver)
>>                        pm_runtime_get_sync(musb->controller);
>> +
>> +               val = musb_readl(musb->mregs, OTG_INTERFSEL);
>> +               if (data->interface_type == MUSB_INTERFACE_UTMI) {
>> +                       val&= ~ULPI_12PIN;
>> +                       val |= UTMI_8BIT;
>> +               } else {
>> +                       val |= ULPI_12PIN;
>> +               }
>> +               musb_writel(musb->mregs, OTG_INTERFSEL, val);
>> +
>>                usb_phy_init(musb->xceiv);
>>                break;
>
>   Why repeat the same sequence 3 times. Couldn't you factor it out into a
> subroutine?

I thought it will be unnecessary to to add a subroutine just for a
single register modification.
Since you have pointed that out, I'll add a subroutine for it.

>
>> @@ -272,6 +304,11 @@ static int musb_otg_notifications(struct
>> notifier_block *nb,
>>                                otg_set_vbus(musb->xceiv->otg, 0);
>>                }
>>                usb_phy_shutdown(musb->xceiv);
>> +
>> +               val = musb_readl(musb->mregs, OTG_INTERFSEL);
>> +               val |= ULPI_12PIN;
>> +               musb_writel(musb->mregs, OTG_INTERFSEL, val);
>> +
>>                break;
>>        default:
>>                dev_dbg(musb->controller, "ID float\n");
>> @@ -304,16 +341,11 @@ static int omap2430_musb_init(struct musb *musb)
>>                goto err1;
>>        }
>>
>> +       /* Set OTG_INTERFSEL to ULPI for correct charger detection.
>> +        * This should be later set to UTMI.
>> +        */
>>        l = musb_readl(musb->mregs, OTG_INTERFSEL);
>> -
>> -       if (data->interface_type == MUSB_INTERFACE_UTMI) {
>> -               /* OMAP4 uses Internal PHY GS70 which uses UTMI interface
>> */
>> -               l&= ~ULPI_12PIN;       /* Disable ULPI */
>> -               l |= UTMI_8BIT;         /* Enable UTMI  */
>> -       } else {
>> -               l |= ULPI_12PIN;
>> -       }
>> -
>> +       l |= ULPI_12PIN;
>>        musb_writel(musb->mregs, OTG_INTERFSEL, l);
>
>   This also seems to be the same code repeated twice...

Ok. So i'll create a new sub-routine which takes interface type as
argument and set OTG_INTERFSEL to ULPI_12PIN or UTMI_8BIT based on the
interface type.

Regards
Kishon
>
> WBR, Sergei
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
       [not found]       ` <CAAe_U6KaFJGM61=Pkm2q-EBQeEtSAOBuC2jgFRd7DV4xKOjJdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2011-09-16 14:13         ` Greg KH
  2011-09-19 14:56           ` T Krishnamoorthy, Balaji
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2011-09-16 14:13 UTC (permalink / raw)
  To: ABRAHAM, KISHON VIJAY
  Cc: Sergei Shtylyov, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, p-basak2-l0cyMroinI0,
	balajitk-l0cyMroinI0, x0153364-l0cyMroinI0,
	m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0, hemahk-l0cyMroinI0

On Fri, Sep 16, 2011 at 07:21:41PM +0530, ABRAHAM, KISHON VIJAY wrote:
> Sergei,
> 
> Thanks for your comments.
> 
> On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov-Igf4POYTYCBhl2p70BpVqQ@public.gmane.orgm> wrote:
> > Hello.
> >
> > On 15-09-2011 18:19, Kishon Vijay Abraham I wrote:
> >
> >> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting
> >> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured
> >> to
> >> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or
> >> USB_EVENT_VBUS notification.
> >
> >> Signed-off-by: Kishon Vijay Abraham I<kishon-l0cyMroinI0@public.gmane.org>
> >> Signed-off-by: Balaji T K<balajitk-l0cyMroinI0@public.gmane.org>
> >
> >   AFAIK, full name is needed here.
> 
> is it not the prerogative of the person giving his signed-off by??

Not really.

> >> [sandesh.gowda-l0cyMroinI0@public.gmane.org: The interface selection has to be done before the
> >> PHY
> >> is activated and is not allowed to change when the PHY clock is already
> >> running]
> >
> >   No signoff from him?
> 
> ok. will add his signoff.

You can NOT add someone else's sign-off to a patch, please go re-read
Documentation/SubmittingPatches as to what this really means.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
  2011-09-16 14:13         ` Greg KH
@ 2011-09-19 14:56           ` T Krishnamoorthy, Balaji
  2011-09-19 17:12             ` Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: T Krishnamoorthy, Balaji @ 2011-09-19 14:56 UTC (permalink / raw)
  To: Greg KH
  Cc: ABRAHAM, KISHON VIJAY, Sergei Shtylyov, linux-usb, linux-omap,
	balbi, heikki.krogerus, p-basak2, x0153364, m-sonasath, vishp,
	hemahk

On Fri, Sep 16, 2011 at 7:43 PM, Greg KH <gregkh@suse.de> wrote:
> On Fri, Sep 16, 2011 at 07:21:41PM +0530, ABRAHAM, KISHON VIJAY wrote:
>> Sergei,
>>
>> Thanks for your comments.
>>
>> On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
>> > Hello.
>> >
>> > On 15-09-2011 18:19, Kishon Vijay Abraham I wrote:
>> >
>> >> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting
>> >> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured
>> >> to
>> >> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or
>> >> USB_EVENT_VBUS notification.
>> >
>> >> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com>
>> >> Signed-off-by: Balaji T K<balajitk@ti.com>
>> >
>> >   AFAIK, full name is needed here.
>>
>> is it not the prerogative of the person giving his signed-off by??
>
> Not really.
>

Certainly did not want to compete for long names :-)
But Is Real Name + unique email id not sufficient.
patches with this Signed-off  .

-- 
Thanks and Regards,
Balaji T K
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
  2011-09-19 14:56           ` T Krishnamoorthy, Balaji
@ 2011-09-19 17:12             ` Greg KH
  0 siblings, 0 replies; 12+ messages in thread
From: Greg KH @ 2011-09-19 17:12 UTC (permalink / raw)
  To: T Krishnamoorthy, Balaji
  Cc: ABRAHAM, KISHON VIJAY, Sergei Shtylyov, linux-usb, linux-omap,
	balbi, heikki.krogerus, p-basak2, x0153364, m-sonasath, vishp,
	hemahk

On Mon, Sep 19, 2011 at 08:26:08PM +0530, T Krishnamoorthy, Balaji wrote:
> On Fri, Sep 16, 2011 at 7:43 PM, Greg KH <gregkh@suse.de> wrote:
> > On Fri, Sep 16, 2011 at 07:21:41PM +0530, ABRAHAM, KISHON VIJAY wrote:
> >> Sergei,
> >>
> >> Thanks for your comments.
> >>
> >> On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> >> > Hello.
> >> >
> >> > On 15-09-2011 18:19, Kishon Vijay Abraham I wrote:
> >> >
> >> >> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting
> >> >> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured
> >> >> to
> >> >> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or
> >> >> USB_EVENT_VBUS notification.
> >> >
> >> >> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com>
> >> >> Signed-off-by: Balaji T K<balajitk@ti.com>
> >> >
> >> >   AFAIK, full name is needed here.
> >>
> >> is it not the prerogative of the person giving his signed-off by??
> >
> > Not really.
> >
> 
> Certainly did not want to compete for long names :-)
> But Is Real Name + unique email id not sufficient.
> patches with this Signed-off  .

Real Name + unique email is sufficient.  If "Balaji T K" is the real
name here, then my sincere apologies at getting this incorrect.  If it
isn't, a few more letters might be sufficient, or even, native utf-8
characters for the name in the native language is also ok.

I know I get enough problems with my "odd" last name to be aware that
there are lots of misconceptions about what is a real and not-real way
to spell/handle a name, so again, if I am mistaken here, please let me
know.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-09-19 17:14 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-15 14:19 [RFC PATCH 0/6] usb: musb: charger detection Kishon Vijay Abraham I
2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I
2011-09-16  9:48   ` Sergei Shtylyov
2011-09-16 13:51     ` ABRAHAM, KISHON VIJAY
     [not found]       ` <CAAe_U6KaFJGM61=Pkm2q-EBQeEtSAOBuC2jgFRd7DV4xKOjJdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-16 14:13         ` Greg KH
2011-09-19 14:56           ` T Krishnamoorthy, Balaji
2011-09-19 17:12             ` Greg KH
2011-09-15 14:20 ` [RFC PATCH 5/6] OMAP4: PHY internal: Add msleep_interruptible to charger detection function Kishon Vijay Abraham I
     [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2011-09-15 14:19   ` [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy Kishon Vijay Abraham I
2011-09-15 14:20   ` [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection Kishon Vijay Abraham I
2011-09-15 14:20   ` [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot Kishon Vijay Abraham I
2011-09-15 14:20   ` [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module Kishon Vijay Abraham I

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox