From: Roger Quadros <rogerq@ti.com> To: <balbi@ti.com>, <tony@atomide.com>, <myungjoo.ham@samsung.com>, <cw00.choi@samsung.com> Cc: <george.cherian@ti.com>, <nsekhar@ti.com>, <devicetree@vger.kernel.org>, <linux-usb@vger.kernel.org>, <linux-omap@vger.kernel.org>, <linux-kernel@vger.kernel.org>, Roger Quadros <rogerq@ti.com> Subject: [PATCH 0/5] extcon: usb: Introduce USB GPIO extcon driver. Fix DRA7 USB. Date: Mon, 19 Jan 2015 19:52:17 +0200 [thread overview] Message-ID: <1421689942-10201-1-git-send-email-rogerq@ti.com> (raw) Hi, On DRA7 EVMs the USB ID pin is connected to a GPIO line. The USB drivers (dwc3 + dwc3-omap) depend on extcon framework to get the USB cable state (USB or USB-Host) to put the controller in the right mode. There were earlier attempts [1] to get this working by trying to patch up the existing GPIO extcon driver. This series attemts to take a different approach by introducing a new USB specific extcon driver to handle the USB ID GPIO pin and interpret a right USB cable state. The reasoning to introduce this new driver is: 1) The existing GPIO extcon driver doesn't understand USB cable states and it can't handle more than one cable per instance. For the USB case we need to handle at least 2 cable states. a) USB (attach/detach) b) USB-Host (attach/detach) and could possible include more states like c) Fast-charger (attach/detach) d) Slow-charger (attach/detach) 2) This USB specific driver can be easily updated in the future to handle VBUS events, or charger detect events, in case it happens to be available on GPIO for any platform. 3) The DT implementation is very easy. You just need one extcon node per USB instead of one extcon node per cable state as in case of [1]. 4) The cable state string doesn't need to be encoded in the device tree as in case of [1]. 5) With only ID event available, you can simulate a USB-peripheral attach when USB-Host is detacted instead of hacking the USB driver to do the same. Tested on DRA7-evm and DRA72-evm. cheers, -roger [1] - https://lkml.org/lkml/2014/11/3/513 Roger Quadros (5): extcon: gpio-usb: Introduce gpio usb extcon driver usb: extcon: Fix USB-Host cable name ARM: dts: dra7-evm: Add extcon nodes for USB ARM: dts: dra72-evm: Add extcon nodes for USB ARM: omap2plus_defconfig: Enable PCF857X and EXTCON_GPIO_USB .../devicetree/bindings/extcon/extcon-usb.txt | 20 ++ arch/arm/boot/dts/dra7-evm.dts | 31 +++ arch/arm/boot/dts/dra72-evm.dts | 31 +++ arch/arm/configs/omap2plus_defconfig | 2 + drivers/extcon/Kconfig | 7 + drivers/extcon/Makefile | 1 + drivers/extcon/extcon-gpio-usb.c | 225 +++++++++++++++++++++ drivers/extcon/extcon-palmas.c | 18 +- drivers/usb/dwc3/dwc3-omap.c | 6 +- drivers/usb/phy/phy-omap-otg.c | 4 +- drivers/usb/phy/phy-tahvo.c | 8 +- 11 files changed, 335 insertions(+), 18 deletions(-) create mode 100644 Documentation/devicetree/bindings/extcon/extcon-usb.txt create mode 100644 drivers/extcon/extcon-gpio-usb.c -- 2.1.0
WARNING: multiple messages have this Message-ID (diff)
From: Roger Quadros <rogerq@ti.com> To: balbi@ti.com, tony@atomide.com, myungjoo.ham@samsung.com, cw00.choi@samsung.com Cc: george.cherian@ti.com, nsekhar@ti.com, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, Roger Quadros <rogerq@ti.com> Subject: [PATCH 0/5] extcon: usb: Introduce USB GPIO extcon driver. Fix DRA7 USB. Date: Mon, 19 Jan 2015 19:52:17 +0200 [thread overview] Message-ID: <1421689942-10201-1-git-send-email-rogerq@ti.com> (raw) Hi, On DRA7 EVMs the USB ID pin is connected to a GPIO line. The USB drivers (dwc3 + dwc3-omap) depend on extcon framework to get the USB cable state (USB or USB-Host) to put the controller in the right mode. There were earlier attempts [1] to get this working by trying to patch up the existing GPIO extcon driver. This series attemts to take a different approach by introducing a new USB specific extcon driver to handle the USB ID GPIO pin and interpret a right USB cable state. The reasoning to introduce this new driver is: 1) The existing GPIO extcon driver doesn't understand USB cable states and it can't handle more than one cable per instance. For the USB case we need to handle at least 2 cable states. a) USB (attach/detach) b) USB-Host (attach/detach) and could possible include more states like c) Fast-charger (attach/detach) d) Slow-charger (attach/detach) 2) This USB specific driver can be easily updated in the future to handle VBUS events, or charger detect events, in case it happens to be available on GPIO for any platform. 3) The DT implementation is very easy. You just need one extcon node per USB instead of one extcon node per cable state as in case of [1]. 4) The cable state string doesn't need to be encoded in the device tree as in case of [1]. 5) With only ID event available, you can simulate a USB-peripheral attach when USB-Host is detacted instead of hacking the USB driver to do the same. Tested on DRA7-evm and DRA72-evm. cheers, -roger [1] - https://lkml.org/lkml/2014/11/3/513 Roger Quadros (5): extcon: gpio-usb: Introduce gpio usb extcon driver usb: extcon: Fix USB-Host cable name ARM: dts: dra7-evm: Add extcon nodes for USB ARM: dts: dra72-evm: Add extcon nodes for USB ARM: omap2plus_defconfig: Enable PCF857X and EXTCON_GPIO_USB .../devicetree/bindings/extcon/extcon-usb.txt | 20 ++ arch/arm/boot/dts/dra7-evm.dts | 31 +++ arch/arm/boot/dts/dra72-evm.dts | 31 +++ arch/arm/configs/omap2plus_defconfig | 2 + drivers/extcon/Kconfig | 7 + drivers/extcon/Makefile | 1 + drivers/extcon/extcon-gpio-usb.c | 225 +++++++++++++++++++++ drivers/extcon/extcon-palmas.c | 18 +- drivers/usb/dwc3/dwc3-omap.c | 6 +- drivers/usb/phy/phy-omap-otg.c | 4 +- drivers/usb/phy/phy-tahvo.c | 8 +- 11 files changed, 335 insertions(+), 18 deletions(-) create mode 100644 Documentation/devicetree/bindings/extcon/extcon-usb.txt create mode 100644 drivers/extcon/extcon-gpio-usb.c -- 2.1.0
next reply other threads:[~2015-01-19 17:52 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-01-19 17:52 Roger Quadros [this message] 2015-01-19 17:52 ` [PATCH 0/5] extcon: usb: Introduce USB GPIO extcon driver. Fix DRA7 USB Roger Quadros 2015-01-19 17:52 ` [PATCH 1/5] extcon: gpio-usb: Introduce gpio usb extcon driver Roger Quadros 2015-01-19 17:52 ` Roger Quadros 2015-01-20 19:00 ` Felipe Balbi 2015-01-20 19:00 ` Felipe Balbi 2015-01-21 5:28 ` Chanwoo Choi 2015-01-21 5:28 ` Chanwoo Choi 2015-01-22 13:27 ` Roger Quadros 2015-01-22 13:27 ` Roger Quadros 2015-01-19 17:52 ` [PATCH 2/5] usb: extcon: Fix USB-Host cable name Roger Quadros 2015-01-19 17:52 ` Roger Quadros 2015-01-20 19:01 ` Felipe Balbi 2015-01-20 19:01 ` Felipe Balbi 2015-01-19 17:52 ` [PATCH 3/5] ARM: dts: dra7-evm: Add extcon nodes for USB Roger Quadros 2015-01-19 17:52 ` Roger Quadros 2015-01-20 19:02 ` Felipe Balbi 2015-01-20 19:02 ` Felipe Balbi 2015-01-19 17:52 ` [PATCH 4/5] ARM: dts: dra72-evm: " Roger Quadros 2015-01-19 17:52 ` Roger Quadros 2015-01-20 19:02 ` Felipe Balbi 2015-01-20 19:02 ` Felipe Balbi 2015-01-19 17:52 ` [PATCH 5/5] ARM: omap2plus_defconfig: Enable PCF857X and EXTCON_GPIO_USB Roger Quadros 2015-01-19 17:52 ` Roger Quadros 2015-01-19 18:45 ` Tony Lindgren 2015-01-19 19:38 ` Tony Lindgren 2015-01-20 9:26 ` Roger Quadros 2015-01-20 9:26 ` Roger Quadros 2015-01-20 19:02 ` [PATCH 0/5] extcon: usb: Introduce USB GPIO extcon driver. Fix DRA7 USB Felipe Balbi 2015-01-20 19:02 ` Felipe Balbi 2015-01-22 13:32 ` Roger Quadros 2015-01-22 13:32 ` Roger Quadros 2015-01-22 14:57 ` Roger Quadros 2015-01-22 14:57 ` Roger Quadros 2015-01-22 20:29 ` Felipe Balbi 2015-01-22 20:29 ` Felipe Balbi 2015-01-23 7:26 ` Roger Quadros 2015-01-23 7:26 ` Roger Quadros 2015-01-23 16:19 ` Felipe Balbi 2015-01-23 16:19 ` Felipe Balbi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1421689942-10201-1-git-send-email-rogerq@ti.com \ --to=rogerq@ti.com \ --cc=balbi@ti.com \ --cc=cw00.choi@samsung.com \ --cc=devicetree@vger.kernel.org \ --cc=george.cherian@ti.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=myungjoo.ham@samsung.com \ --cc=nsekhar@ti.com \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.