* [PATCH v5 0/3] driver: Add DT support for DA8xx @ 2016-11-16 10:52 Alexandre Bailon 2016-11-16 10:52 ` [PATCH v5 1/3] dt/bindings: Add binding for the DA8xx MUSB driver Alexandre Bailon ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Alexandre Bailon @ 2016-11-16 10:52 UTC (permalink / raw) To: khilman, robh+dt, b-liu Cc: linux-kernel, linux-usb, devicetree, linux-arm-kernel, nsekhar, Alexandre Bailon Changes in v2: * Remove unrelated changes in patch 3 * Rename the device node in patch 4 Changes in v3: * Fix few mistakes in DT binding sample * Only build the device table if DT is enabled Change in v4: * Fix a nit Changes in v5: * Nothing. Resent the v4 in two seppaated series: one for platform and one for driver. Petr Kulhavy (3): dt/bindings: Add binding for the DA8xx MUSB driver usb: musb: core: added helper function for parsing DT usb: musb: da8xx: Add DT support for the DA8xx driver .../devicetree/bindings/usb/da8xx-usb.txt | 43 ++++++++++++++++++++ drivers/usb/musb/da8xx.c | 46 ++++++++++++++++++++++ drivers/usb/musb/musb_core.c | 19 +++++++++ drivers/usb/musb/musb_core.h | 6 +++ 4 files changed, 114 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/da8xx-usb.txt -- 2.7.3 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v5 1/3] dt/bindings: Add binding for the DA8xx MUSB driver 2016-11-16 10:52 [PATCH v5 0/3] driver: Add DT support for DA8xx Alexandre Bailon @ 2016-11-16 10:52 ` Alexandre Bailon 2016-11-16 10:52 ` [PATCH v5 2/3] usb: musb: core: added helper function for parsing DT Alexandre Bailon [not found] ` <1479293545-7516-1-git-send-email-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org> 2 siblings, 0 replies; 5+ messages in thread From: Alexandre Bailon @ 2016-11-16 10:52 UTC (permalink / raw) To: khilman, robh+dt, b-liu Cc: linux-kernel, linux-usb, devicetree, linux-arm-kernel, nsekhar, Petr Kulhavy, Alexandre Bailon From: Petr Kulhavy <petr@barix.com> DT binding for the TI DA8xx/OMAP-L1x/AM17xx/AM18xx MUSB driver. Signed-off-by: Petr Kulhavy <petr@barix.com> Signed-off-by: Alexandre Bailon <abailon@baylibre.com> Acked-by: Rob Herring <robh@kernel.org> --- .../devicetree/bindings/usb/da8xx-usb.txt | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/da8xx-usb.txt diff --git a/Documentation/devicetree/bindings/usb/da8xx-usb.txt b/Documentation/devicetree/bindings/usb/da8xx-usb.txt new file mode 100644 index 0000000..ccb844a --- /dev/null +++ b/Documentation/devicetree/bindings/usb/da8xx-usb.txt @@ -0,0 +1,43 @@ +TI DA8xx MUSB +~~~~~~~~~~~~~ +For DA8xx/OMAP-L1x/AM17xx/AM18xx platforms. + +Required properties: +~~~~~~~~~~~~~~~~~~~~ + - compatible : Should be set to "ti,da830-musb". + + - reg: Offset and length of the USB controller register set. + + - interrupts: The USB interrupt number. + + - interrupt-names: Should be set to "mc". + + - dr_mode: The USB operation mode. Should be one of "host", "peripheral" or "otg". + + - phys: Phandle for the PHY device + + - phy-names: Should be "usb-phy" + +Optional properties: +~~~~~~~~~~~~~~~~~~~~ + - vbus-supply: Phandle to a regulator providing the USB bus power. + +Example: + usb_phy: usb-phy { + compatible = "ti,da830-usb-phy"; + #phy-cells = <0>; + status = "okay"; + }; + usb0: usb@200000 { + compatible = "ti,da830-musb"; + reg = <0x00200000 0x10000>; + interrupts = <58>; + interrupt-names = "mc"; + + dr_mode = "host"; + vbus-supply = <&usb_vbus>; + phys = <&usb_phy 0>; + phy-names = "usb-phy"; + + status = "okay"; + }; -- 2.7.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v5 2/3] usb: musb: core: added helper function for parsing DT 2016-11-16 10:52 [PATCH v5 0/3] driver: Add DT support for DA8xx Alexandre Bailon 2016-11-16 10:52 ` [PATCH v5 1/3] dt/bindings: Add binding for the DA8xx MUSB driver Alexandre Bailon @ 2016-11-16 10:52 ` Alexandre Bailon [not found] ` <1479293545-7516-1-git-send-email-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org> 2 siblings, 0 replies; 5+ messages in thread From: Alexandre Bailon @ 2016-11-16 10:52 UTC (permalink / raw) To: khilman, robh+dt, b-liu Cc: linux-kernel, linux-usb, devicetree, linux-arm-kernel, nsekhar, Petr Kulhavy, Alexandre Bailon From: Petr Kulhavy <petr@barix.com> This adds the function musb_get_mode() to get the DT property "dr_mode" Signed-off-by: Petr Kulhavy <petr@barix.com> Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Alexandre Bailon <abailon@baylibre.com> Tested-by: David Lechner <david@lechnology.com> Reviewed-by: Kevin Hilman <khilman@baylibre.com> --- drivers/usb/musb/musb_core.c | 19 +++++++++++++++++++ drivers/usb/musb/musb_core.h | 6 ++++++ 2 files changed, 25 insertions(+) diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index e01116e..9b44566 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -100,6 +100,7 @@ #include <linux/io.h> #include <linux/dma-mapping.h> #include <linux/usb.h> +#include <linux/usb/of.h> #include "musb_core.h" #include "musb_trace.h" @@ -130,6 +131,24 @@ static inline struct musb *dev_to_musb(struct device *dev) return dev_get_drvdata(dev); } +enum musb_mode musb_get_mode(struct device *dev) +{ + enum usb_dr_mode mode; + + mode = usb_get_dr_mode(dev); + switch (mode) { + case USB_DR_MODE_HOST: + return MUSB_HOST; + case USB_DR_MODE_PERIPHERAL: + return MUSB_PERIPHERAL; + case USB_DR_MODE_OTG: + case USB_DR_MODE_UNKNOWN: + default: + return MUSB_OTG; + } +} +EXPORT_SYMBOL_GPL(musb_get_mode); + /*-------------------------------------------------------------------------*/ #ifndef CONFIG_BLACKFIN diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h index 2cb88a49..76f00f6 100644 --- a/drivers/usb/musb/musb_core.h +++ b/drivers/usb/musb/musb_core.h @@ -617,4 +617,10 @@ static inline void musb_platform_post_root_reset_end(struct musb *musb) musb->ops->post_root_reset_end(musb); } +/* + * gets the "dr_mode" property from DT and converts it into musb_mode + * if the property is not found or not recognized returns MUSB_OTG + */ +extern enum musb_mode musb_get_mode(struct device *dev); + #endif /* __MUSB_CORE_H__ */ -- 2.7.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
[parent not found: <1479293545-7516-1-git-send-email-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>]
* [PATCH v5 3/3] usb: musb: da8xx: Add DT support for the DA8xx driver [not found] ` <1479293545-7516-1-git-send-email-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org> @ 2016-11-16 10:52 ` Alexandre Bailon 2016-11-18 17:37 ` [PATCH v5 0/3] driver: Add DT support for DA8xx Bin Liu 1 sibling, 0 replies; 5+ messages in thread From: Alexandre Bailon @ 2016-11-16 10:52 UTC (permalink / raw) To: khilman-rdvid1DuHRBWk0Htik3J/w, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, b-liu-l0cyMroinI0 Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-usb-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, nsekhar-l0cyMroinI0, Petr Kulhavy, Alexandre Bailon From: Petr Kulhavy <petr-Qh/3xLP0EvwAvxtiuMwx3w@public.gmane.org> This adds DT support for TI DA8xx/OMAP-L1x/AM17xx/AM18xx MUSB driver Signed-off-by: Petr Kulhavy <petr-Qh/3xLP0EvwAvxtiuMwx3w@public.gmane.org> Signed-off-by: Alexandre Bailon <abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org> Tested-by: David Lechner <david-nq/r/kbU++upp/zk7JDF2g@public.gmane.org> --- drivers/usb/musb/da8xx.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c index 2440f88..f205a03 100644 --- a/drivers/usb/musb/da8xx.c +++ b/drivers/usb/musb/da8xx.c @@ -6,6 +6,9 @@ * Based on the DaVinci "glue layer" code. * Copyright (C) 2005-2006 by Texas Instruments * + * DT support + * Copyright (c) 2016 Petr Kulhavy <petr-Qh/3xLP0EvwAvxtiuMwx3w@public.gmane.org> + * * This file is part of the Inventra Controller Driver for Linux. * * The Inventra Controller Driver for Linux is free software; you @@ -433,6 +436,21 @@ static int da8xx_musb_exit(struct musb *musb) return 0; } +static inline u8 get_vbus_power(struct device *dev) +{ + struct regulator *vbus_supply; + int current_uA; + + vbus_supply = regulator_get_optional(dev, "vbus"); + if (IS_ERR(vbus_supply)) + return 255; + current_uA = regulator_get_current_limit(vbus_supply); + regulator_put(vbus_supply); + if (current_uA <= 0 || current_uA > 510000) + return 255; + return current_uA / 1000 / 2; +} + static const struct musb_platform_ops da8xx_ops = { .quirks = MUSB_DMA_CPPI | MUSB_INDEXED_EP, .init = da8xx_musb_init, @@ -458,6 +476,12 @@ static const struct platform_device_info da8xx_dev_info = { .dma_mask = DMA_BIT_MASK(32), }; +static const struct musb_hdrc_config da8xx_config = { + .ram_bits = 10, + .num_eps = 5, + .multipoint = 1, +}; + static int da8xx_probe(struct platform_device *pdev) { struct resource musb_resources[2]; @@ -465,6 +489,7 @@ static int da8xx_probe(struct platform_device *pdev) struct da8xx_glue *glue; struct platform_device_info pinfo; struct clk *clk; + struct device_node *np = pdev->dev.of_node; int ret; glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL); @@ -487,6 +512,16 @@ static int da8xx_probe(struct platform_device *pdev) glue->dev = &pdev->dev; glue->clk = clk; + if (IS_ENABLED(CONFIG_OF) && np) { + pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) + return -ENOMEM; + + pdata->config = &da8xx_config; + pdata->mode = musb_get_mode(&pdev->dev); + pdata->power = get_vbus_power(&pdev->dev); + } + pdata->platform_ops = &da8xx_ops; glue->usb_phy = usb_phy_generic_register(); @@ -537,11 +572,22 @@ static int da8xx_remove(struct platform_device *pdev) return 0; } +#ifdef CONFIG_OF +static const struct of_device_id da8xx_id_table[] = { + { + .compatible = "ti,da830-musb", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, da8xx_id_table); +#endif + static struct platform_driver da8xx_driver = { .probe = da8xx_probe, .remove = da8xx_remove, .driver = { .name = "musb-da8xx", + .of_match_table = of_match_ptr(da8xx_id_table), }, }; -- 2.7.3 -- To unsubscribe from this list: send the line "unsubscribe devicetree" 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] 5+ messages in thread
* Re: [PATCH v5 0/3] driver: Add DT support for DA8xx [not found] ` <1479293545-7516-1-git-send-email-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org> 2016-11-16 10:52 ` [PATCH v5 3/3] usb: musb: da8xx: Add DT support for the DA8xx driver Alexandre Bailon @ 2016-11-18 17:37 ` Bin Liu 1 sibling, 0 replies; 5+ messages in thread From: Bin Liu @ 2016-11-18 17:37 UTC (permalink / raw) To: Alexandre Bailon Cc: khilman-rdvid1DuHRBWk0Htik3J/w, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-usb-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, nsekhar-l0cyMroinI0 On Wed, Nov 16, 2016 at 11:52:22AM +0100, Alexandre Bailon wrote: > Changes in v2: > * Remove unrelated changes in patch 3 > * Rename the device node in patch 4 > > Changes in v3: > * Fix few mistakes in DT binding sample > * Only build the device table if DT is enabled > > Change in v4: > * Fix a nit > > Changes in v5: > * Nothing. Resent the v4 in two seppaated series: one for platform and one for > driver. > > Petr Kulhavy (3): > dt/bindings: Add binding for the DA8xx MUSB driver > usb: musb: core: added helper function for parsing DT > usb: musb: da8xx: Add DT support for the DA8xx driver Applied. Thanks. -Bin. > > .../devicetree/bindings/usb/da8xx-usb.txt | 43 ++++++++++++++++++++ > drivers/usb/musb/da8xx.c | 46 ++++++++++++++++++++++ > drivers/usb/musb/musb_core.c | 19 +++++++++ > drivers/usb/musb/musb_core.h | 6 +++ > 4 files changed, 114 insertions(+) > create mode 100644 Documentation/devicetree/bindings/usb/da8xx-usb.txt > > -- > 2.7.3 > -- To unsubscribe from this list: send the line "unsubscribe devicetree" 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] 5+ messages in thread
end of thread, other threads:[~2016-11-18 17:37 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-11-16 10:52 [PATCH v5 0/3] driver: Add DT support for DA8xx Alexandre Bailon 2016-11-16 10:52 ` [PATCH v5 1/3] dt/bindings: Add binding for the DA8xx MUSB driver Alexandre Bailon 2016-11-16 10:52 ` [PATCH v5 2/3] usb: musb: core: added helper function for parsing DT Alexandre Bailon [not found] ` <1479293545-7516-1-git-send-email-abailon-rdvid1DuHRBWk0Htik3J/w@public.gmane.org> 2016-11-16 10:52 ` [PATCH v5 3/3] usb: musb: da8xx: Add DT support for the DA8xx driver Alexandre Bailon 2016-11-18 17:37 ` [PATCH v5 0/3] driver: Add DT support for DA8xx Bin Liu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).