[PATCH v6] usb: dwc3: use extcon fwrk to receive connect/disconnect
Modified dwc3-omap to receive connect and disconnect notification using extcon framework. Also did the necessary cleanups required after adapting to extcon framework. Signed-off-by: Kishon Vijay Abraham I kis...@ti.com Acked-by: Felipe Balbi ba...@ti.com Acked-by: Chanwoo Choi cw00.c...@samsung.com --- This patch should be applied after all of the extcon patchset will be applied because this patch has dependency of extcon patch related to DT. http://goo.gl/Tu3qW Changes from v5: * rebased to 3.11-rc1 Changes from v4: * checked the return values of extcon_register_interest and print an error message. Note that I dint do return since there might be cases where one of USB (device mode) or USB-HOST (host mode) might succeed. * Added depends on of EXTCON in usb_dwc3. Only some platforms might be using EXTCON, but inorder to avoid compilation errors, added depends on Changes from v3: * did #include of of_extcon.h after Chanwoo resent the patch separating extcon-class.c from of_extcon.c Changes from v2: * updated the Documentation with dwc3 dt binding information. * used of_extcon_get_extcon_dev to get extcon device from device tree data. Changes from v1: * regulator enable/disable is now done here instead of palmas-usb as some users of palmas-usb wont need regulator. Documentation/devicetree/bindings/usb/omap-usb.txt |5 + drivers/usb/dwc3/Kconfig |1 + drivers/usb/dwc3/dwc3-omap.c | 125 +--- 3 files changed, 112 insertions(+), 19 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 57e71f6..9088ab0 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt @@ -53,6 +53,11 @@ OMAP DWC3 GLUE It should be set to 1 for HW mode and 2 for SW mode. - ranges: the child address space are mapped 1:1 onto the parent address space +Optional Properties: + - extcon : phandle for the extcon device omap dwc3 uses to detect + connect/disconnect events. + - vbus-supply : phandle to the regulator device tree node if needed. + Sub-nodes: The dwc3 core should be added as subnode to omap dwc3 glue. - dwc3 : diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig index 757aa18..08a9fab 100644 --- a/drivers/usb/dwc3/Kconfig +++ b/drivers/usb/dwc3/Kconfig @@ -1,6 +1,7 @@ config USB_DWC3 tristate DesignWare USB3 DRD Core Support depends on (USB || USB_GADGET) GENERIC_HARDIRQS + depends on EXTCON select USB_XHCI_PLATFORM if USB_SUPPORT USB_XHCI_HCD help Say Y or M here if your system has a Dual Role SuperSpeed diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index 077f110..b26c2a4 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -43,13 +43,15 @@ #include linux/spinlock.h #include linux/platform_device.h #include linux/platform_data/dwc3-omap.h -#include linux/usb/dwc3-omap.h #include linux/pm_runtime.h #include linux/dma-mapping.h #include linux/ioport.h #include linux/io.h #include linux/of.h #include linux/of_platform.h +#include linux/extcon.h +#include linux/extcon/of_extcon.h +#include linux/regulator/consumer.h #include linux/usb/otg.h @@ -155,9 +157,21 @@ struct dwc3_omap { u32 revision; u32 dma_status:1; + + struct extcon_specific_cable_nb extcon_vbus_dev; + struct extcon_specific_cable_nb extcon_id_dev; + struct notifier_block vbus_nb; + struct notifier_block id_nb; + + struct regulator*vbus_reg; }; -static struct dwc3_omap*_omap; +enum omap_dwc3_vbus_id_status { + OMAP_DWC3_ID_FLOAT, + OMAP_DWC3_ID_GROUND, + OMAP_DWC3_VBUS_OFF, + OMAP_DWC3_VBUS_VALID, +}; static inline u32 dwc3_omap_readl(void __iomem *base, u32 offset) { @@ -221,18 +235,24 @@ static void dwc3_omap_write_irq0_set(struct dwc3_omap *omap, u32 value) omap-irq0_offset, value); } -int dwc3_omap_mailbox(enum omap_dwc3_vbus_id_status status) +static void dwc3_omap_set_mailbox(struct dwc3_omap *omap, + enum omap_dwc3_vbus_id_status status) { - u32 val; - struct dwc3_omap*omap = _omap; - - if (!omap) - return -EPROBE_DEFER; + int ret; + u32 val; switch (status) { case OMAP_DWC3_ID_GROUND: dev_dbg(omap-dev, ID GND\n); + if (omap-vbus_reg) { + ret = regulator_enable(omap-vbus_reg); + if (ret) { + dev_dbg(omap-dev, regulator enable failed\n); + return; + } + } + val = dwc3_omap_read_utmi_status(omap); val =
Re: [PATCH v6] usb: dwc3: use extcon fwrk to receive connect/disconnect
On Mon, Jul 15, 2013 at 09:09:02PM +0530, Kishon Vijay Abraham I wrote: Modified dwc3-omap to receive connect and disconnect notification using extcon framework. Also did the necessary cleanups required after adapting to extcon framework. Signed-off-by: Kishon Vijay Abraham I kis...@ti.com Acked-by: Felipe Balbi ba...@ti.com Acked-by: Chanwoo Choi cw00.c...@samsung.com --- This patch should be applied after all of the extcon patchset will be applied because this patch has dependency of extcon patch related to DT. http://goo.gl/Tu3qW Changes from v5: * rebased to 3.11-rc1 Changes from v4: * checked the return values of extcon_register_interest and print an error message. Note that I dint do return since there might be cases where one of USB (device mode) or USB-HOST (host mode) might succeed. * Added depends on of EXTCON in usb_dwc3. Only some platforms might be using EXTCON, but inorder to avoid compilation errors, added depends on Changes from v3: * did #include of of_extcon.h after Chanwoo resent the patch separating extcon-class.c from of_extcon.c Changes from v2: * updated the Documentation with dwc3 dt binding information. * used of_extcon_get_extcon_dev to get extcon device from device tree data. Changes from v1: * regulator enable/disable is now done here instead of palmas-usb as some users of palmas-usb wont need regulator. Documentation/devicetree/bindings/usb/omap-usb.txt |5 + drivers/usb/dwc3/Kconfig |1 + drivers/usb/dwc3/dwc3-omap.c | 125 +--- 3 files changed, 112 insertions(+), 19 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 57e71f6..9088ab0 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt @@ -53,6 +53,11 @@ OMAP DWC3 GLUE It should be set to 1 for HW mode and 2 for SW mode. - ranges: the child address space are mapped 1:1 onto the parent address space +Optional Properties: + - extcon : phandle for the extcon device omap dwc3 uses to detect + connect/disconnect events. + - vbus-supply : phandle to the regulator device tree node if needed. + Sub-nodes: The dwc3 core should be added as subnode to omap dwc3 glue. - dwc3 : diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig index 757aa18..08a9fab 100644 --- a/drivers/usb/dwc3/Kconfig +++ b/drivers/usb/dwc3/Kconfig @@ -1,6 +1,7 @@ config USB_DWC3 tristate DesignWare USB3 DRD Core Support depends on (USB || USB_GADGET) GENERIC_HARDIRQS + depends on EXTCON can you rebase this on top of 'testing' branch. I have a patch there which give glue layers their own Kconfig symbols. If you do that, I can queue this patch myself for v3.12, unless we have dependencies on other patches which aren't in mainline, in which case, I'd ask to simply remove this Kconfig change for now. -- balbi signature.asc Description: Digital signature
Re: [PATCH v6] usb: dwc3: use extcon fwrk to receive connect/disconnect
On 07/16/2013 12:51 AM, Felipe Balbi wrote: On Mon, Jul 15, 2013 at 09:09:02PM +0530, Kishon Vijay Abraham I wrote: Modified dwc3-omap to receive connect and disconnect notification using extcon framework. Also did the necessary cleanups required after adapting to extcon framework. Signed-off-by: Kishon Vijay Abraham I kis...@ti.com Acked-by: Felipe Balbi ba...@ti.com Acked-by: Chanwoo Choi cw00.c...@samsung.com --- This patch should be applied after all of the extcon patchset will be applied because this patch has dependency of extcon patch related to DT. http://goo.gl/Tu3qW Changes from v5: * rebased to 3.11-rc1 Changes from v4: * checked the return values of extcon_register_interest and print an error message. Note that I dint do return since there might be cases where one of USB (device mode) or USB-HOST (host mode) might succeed. * Added depends on of EXTCON in usb_dwc3. Only some platforms might be using EXTCON, but inorder to avoid compilation errors, added depends on Changes from v3: * did #include of of_extcon.h after Chanwoo resent the patch separating extcon-class.c from of_extcon.c Changes from v2: * updated the Documentation with dwc3 dt binding information. * used of_extcon_get_extcon_dev to get extcon device from device tree data. Changes from v1: * regulator enable/disable is now done here instead of palmas-usb as some users of palmas-usb wont need regulator. Documentation/devicetree/bindings/usb/omap-usb.txt |5 + drivers/usb/dwc3/Kconfig |1 + drivers/usb/dwc3/dwc3-omap.c | 125 +--- 3 files changed, 112 insertions(+), 19 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 57e71f6..9088ab0 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt @@ -53,6 +53,11 @@ OMAP DWC3 GLUE It should be set to 1 for HW mode and 2 for SW mode. - ranges: the child address space are mapped 1:1 onto the parent address space +Optional Properties: + - extcon : phandle for the extcon device omap dwc3 uses to detect + connect/disconnect events. + - vbus-supply : phandle to the regulator device tree node if needed. + Sub-nodes: The dwc3 core should be added as subnode to omap dwc3 glue. - dwc3 : diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig index 757aa18..08a9fab 100644 --- a/drivers/usb/dwc3/Kconfig +++ b/drivers/usb/dwc3/Kconfig @@ -1,6 +1,7 @@ config USB_DWC3 tristate DesignWare USB3 DRD Core Support depends on (USB || USB_GADGET) GENERIC_HARDIRQS +depends on EXTCON can you rebase this on top of 'testing' branch. I have a patch there which give glue layers their own Kconfig symbols. If you do that, I can queue this patch myself for v3.12, unless we have dependencies on other patches which aren't in mainline, in which case, I'd ask to simply remove this Kconfig change for now. Dear Felipe and Kishon, We have some confusion about applying this patch. I already applied this patch on extcon-next branch for v3.12. This patch has the dependency on below extcon patch. [PATCH] usb: dwc3: use extcon fwrk to receive connect/disconnect - http://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/commit/?h=extcon-nextid=68517aac722c8c3e0c153b3ede40aace25cb66fa [PATCH] extcon: Add an API to get extcon device from dt node - http://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/commit/?h=extcon-nextid=cb28faede03de7abe82336c3648771a01f5fe225 If Felipe would apply this patch usb.git for v3.12, I think you should include extcon patch together. [PATCH] extcon: Add an API to get extcon device from dt node - http://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/commit/?h=extcon-nextid=cb28faede03de7abe82336c3648771a01f5fe225 The dependency related to patch cause this confusion. What is your opinion? Thanks, Chanwoo Choi -- To unsubscribe from this list: send the line unsubscribe linux-usb in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html