Re: [PATCH v3 2/2] usb: renesas_usbhs: Add device tree support for R-Car H2 and M2
On 10/01/2014 01:34 AM, Sergei Shtylyov wrote: This driver supports other SoCs, but they need boards/Soc depend code. So, this patch adds device tree support for R-Car H2 and M2 initially. Signed-off-by: Yoshihiro Shimoda yoshihiro.shimoda...@renesas.com Acked-by: Kuninori Morimoto kuninori.morimoto...@renesas.com --- drivers/usb/renesas_usbhs/common.c | 44 1 file changed, 44 insertions(+) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 1b9bf8d..b3b6813 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c [...] @@ -438,6 +440,43 @@ static int usbhsc_drvcllbck_notify_hotplug(struct platform_device *pdev) [...] +static struct renesas_usbhs_platform_info *usbhs_parse_dt(struct device *dev) +{ +struct renesas_usbhs_platform_info *info; +struct renesas_usbhs_driver_param *dparam; +const struct of_device_id *of_id = of_match_device(usbhs_of_match, dev); +u32 tmp; +int gpio; + +info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL); +if (!info) +return NULL; + +dparam = info-driver_param; +dparam-type = of_id ? (u32)of_id-data : 0; +if (!of_property_read_u32(dev-of_node, renesas,buswait, tmp)) +dparam-buswait_bwait = tmp; +gpio = of_get_named_gpio_flags(dev-of_node, renesas,enable-gpio, 0, + NULL); +if (gpio 0) +dparam-enable_gpio = gpio; + +return info; I don't see where you parse the optional phy property. It should exist for the Lager and Koelsch boards you target. [...] About using the phy driver in renesas_usbhs driver, I intend to modify the drivers/usb/renesas_usbhs/rcar.c. Hm, it slready supports 'struct usb_phy'. Also PHYs are not limited to R-Car Gen2 SoCs... OK, let's do this locally to rcar2.c for now. But since you still haven't provided the patches and I'm tasked with the USBHS support, I have to take the further development in my hands. Best regards, Yoshihiro Shimoda WBR, Sergei -- 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
Re: [PATCH v3 2/2] usb: renesas_usbhs: Add device tree support for R-Car H2 and M2
Hello. (2014/10/02 4:22), Sergei Shtylyov wrote: On 10/01/2014 01:34 AM, Sergei Shtylyov wrote: This driver supports other SoCs, but they need boards/Soc depend code. So, this patch adds device tree support for R-Car H2 and M2 initially. Signed-off-by: Yoshihiro Shimoda yoshihiro.shimoda...@renesas.com Acked-by: Kuninori Morimoto kuninori.morimoto...@renesas.com --- drivers/usb/renesas_usbhs/common.c | 44 1 file changed, 44 insertions(+) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 1b9bf8d..b3b6813 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c [...] @@ -438,6 +440,43 @@ static int usbhsc_drvcllbck_notify_hotplug(struct platform_device *pdev) [...] +static struct renesas_usbhs_platform_info *usbhs_parse_dt(struct device *dev) +{ +struct renesas_usbhs_platform_info *info; +struct renesas_usbhs_driver_param *dparam; +const struct of_device_id *of_id = of_match_device(usbhs_of_match, dev); +u32 tmp; +int gpio; + +info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL); +if (!info) +return NULL; + +dparam = info-driver_param; +dparam-type = of_id ? (u32)of_id-data : 0; +if (!of_property_read_u32(dev-of_node, renesas,buswait, tmp)) +dparam-buswait_bwait = tmp; +gpio = of_get_named_gpio_flags(dev-of_node, renesas,enable-gpio, 0, + NULL); +if (gpio 0) +dparam-enable_gpio = gpio; + +return info; I don't see where you parse the optional phy property. It should exist for the Lager and Koelsch boards you target. [...] About using the phy driver in renesas_usbhs driver, I intend to modify the drivers/usb/renesas_usbhs/rcar.c. Hm, it slready supports 'struct usb_phy'. Also PHYs are not limited to R-Car Gen2 SoCs... OK, let's do this locally to rcar2.c for now. But since you still haven't provided the patches and I'm tasked with the USBHS support, I have to take the further development in my hands. Thank you for the reply. And, I'm sorry for the deleyed response. I will submit the patches (add support generic phy in rcar.c and device node for some SoCs) today. Best regards, Yoshihiro Shimoda Best regards, Yoshihiro Shimoda WBR, Sergei -- 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
Re: [PATCH v3 2/2] usb: renesas_usbhs: Add device tree support for R-Car H2 and M2
Hello. (2014/09/30 1:35), Sergei Shtylyov wrote: Hello. On 09/03/2014 09:25 AM, Yoshihiro Shimoda wrote: This driver supports other SoCs, but they need boards/Soc depend code. So, this patch adds device tree support for R-Car H2 and M2 initially. Signed-off-by: Yoshihiro Shimoda yoshihiro.shimoda...@renesas.com Acked-by: Kuninori Morimoto kuninori.morimoto...@renesas.com --- drivers/usb/renesas_usbhs/common.c | 44 1 file changed, 44 insertions(+) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 1b9bf8d..b3b6813 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c @@ -18,6 +18,8 @@ #include linux/gpio.h #include linux/io.h #include linux/module.h +#include linux/of_device.h +#include linux/of_gpio.h #include linux/pm_runtime.h #include linux/slab.h #include linux/sysfs.h @@ -438,6 +440,43 @@ static int usbhsc_drvcllbck_notify_hotplug(struct platform_device *pdev) [...] +static struct renesas_usbhs_platform_info *usbhs_parse_dt(struct device *dev) +{ +struct renesas_usbhs_platform_info *info; +struct renesas_usbhs_driver_param *dparam; +const struct of_device_id *of_id = of_match_device(usbhs_of_match, dev); +u32 tmp; +int gpio; + +info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL); +if (!info) +return NULL; + +dparam = info-driver_param; +dparam-type = of_id ? (u32)of_id-data : 0; +if (!of_property_read_u32(dev-of_node, renesas,buswait, tmp)) +dparam-buswait_bwait = tmp; +gpio = of_get_named_gpio_flags(dev-of_node, renesas,enable-gpio, 0, + NULL); +if (gpio 0) +dparam-enable_gpio = gpio; + +return info; I don't see where you parse the optional phy property. It should exist for the Lager and Koelsch boards you target. Since I wrote 'phy-names: must be usb' in the document, I intend to use a fixed property for phy driver like the following: phy = phy_get(pdev-dev, usb); Is this a bad code? About using the phy driver in renesas_usbhs driver, I intend to modify the drivers/usb/renesas_usbhs/rcar.c. Best regards, Yoshihiro Shimoda WBR, Sergei -- 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
Re: [PATCH v3 2/2] usb: renesas_usbhs: Add device tree support for R-Car H2 and M2
Hello. On 09/30/2014 01:51 PM, Yoshihiro Shimoda wrote: This driver supports other SoCs, but they need boards/Soc depend code. So, this patch adds device tree support for R-Car H2 and M2 initially. Signed-off-by: Yoshihiro Shimoda yoshihiro.shimoda...@renesas.com Acked-by: Kuninori Morimoto kuninori.morimoto...@renesas.com --- drivers/usb/renesas_usbhs/common.c | 44 1 file changed, 44 insertions(+) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 1b9bf8d..b3b6813 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c [...] @@ -438,6 +440,43 @@ static int usbhsc_drvcllbck_notify_hotplug(struct platform_device *pdev) [...] +static struct renesas_usbhs_platform_info *usbhs_parse_dt(struct device *dev) +{ + struct renesas_usbhs_platform_info *info; + struct renesas_usbhs_driver_param *dparam; + const struct of_device_id *of_id = of_match_device(usbhs_of_match, dev); + u32 tmp; + int gpio; + + info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL); + if (!info) + return NULL; + + dparam = info-driver_param; + dparam-type = of_id ? (u32)of_id-data : 0; + if (!of_property_read_u32(dev-of_node, renesas,buswait, tmp)) + dparam-buswait_bwait = tmp; + gpio = of_get_named_gpio_flags(dev-of_node, renesas,enable-gpio, 0, + NULL); + if (gpio 0) + dparam-enable_gpio = gpio; + + return info; I don't see where you parse the optional phy property. It should exist for the Lager and Koelsch boards you target. Since I wrote 'phy-names: must be usb' in the document, I intend to use a fixed property for phy driver like the following: phy = phy_get(pdev-dev, usb); Is this a bad code? Seems OK. About using the phy driver in renesas_usbhs driver, I intend to modify the drivers/usb/renesas_usbhs/rcar.c. Hm, it slready supports 'struct usb_phy'. Also PHYs are not limited to R-Car Gen2 SoCs... Best regards, Yoshihiro Shimoda WBR, Sergei -- 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
Re: [PATCH v3 2/2] usb: renesas_usbhs: Add device tree support for R-Car H2 and M2
Hello. On 09/03/2014 09:25 AM, Yoshihiro Shimoda wrote: This driver supports other SoCs, but they need boards/Soc depend code. So, this patch adds device tree support for R-Car H2 and M2 initially. Signed-off-by: Yoshihiro Shimoda yoshihiro.shimoda...@renesas.com Acked-by: Kuninori Morimoto kuninori.morimoto...@renesas.com --- drivers/usb/renesas_usbhs/common.c | 44 1 file changed, 44 insertions(+) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 1b9bf8d..b3b6813 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c @@ -18,6 +18,8 @@ #include linux/gpio.h #include linux/io.h #include linux/module.h +#include linux/of_device.h +#include linux/of_gpio.h #include linux/pm_runtime.h #include linux/slab.h #include linux/sysfs.h @@ -438,6 +440,43 @@ static int usbhsc_drvcllbck_notify_hotplug(struct platform_device *pdev) [...] +static struct renesas_usbhs_platform_info *usbhs_parse_dt(struct device *dev) +{ + struct renesas_usbhs_platform_info *info; + struct renesas_usbhs_driver_param *dparam; + const struct of_device_id *of_id = of_match_device(usbhs_of_match, dev); + u32 tmp; + int gpio; + + info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL); + if (!info) + return NULL; + + dparam = info-driver_param; + dparam-type = of_id ? (u32)of_id-data : 0; + if (!of_property_read_u32(dev-of_node, renesas,buswait, tmp)) + dparam-buswait_bwait = tmp; + gpio = of_get_named_gpio_flags(dev-of_node, renesas,enable-gpio, 0, + NULL); + if (gpio 0) + dparam-enable_gpio = gpio; + + return info; I don't see where you parse the optional phy property. It should exist for the Lager and Koelsch boards you target. WBR, Sergei -- 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
[PATCH v3 2/2] usb: renesas_usbhs: Add device tree support for R-Car H2 and M2
This driver supports other SoCs, but they need boards/Soc depend code. So, this patch adds device tree support for R-Car H2 and M2 initially. Signed-off-by: Yoshihiro Shimoda yoshihiro.shimoda...@renesas.com Acked-by: Kuninori Morimoto kuninori.morimoto...@renesas.com --- drivers/usb/renesas_usbhs/common.c | 44 1 file changed, 44 insertions(+) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 1b9bf8d..b3b6813 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c @@ -18,6 +18,8 @@ #include linux/gpio.h #include linux/io.h #include linux/module.h +#include linux/of_device.h +#include linux/of_gpio.h #include linux/pm_runtime.h #include linux/slab.h #include linux/sysfs.h @@ -438,6 +440,43 @@ static int usbhsc_drvcllbck_notify_hotplug(struct platform_device *pdev) /* * platform functions */ +static const struct of_device_id usbhs_of_match[] = { + { + .compatible = renesas,usbhs-r8a7790, + .data = (void *)USBHS_TYPE_R8A7790, + }, + { + .compatible = renesas,usbhs-r8a7791, + .data = (void *)USBHS_TYPE_R8A7791, + }, + { }, +}; +MODULE_DEVICE_TABLE(of, usbhs_of_match); + +static struct renesas_usbhs_platform_info *usbhs_parse_dt(struct device *dev) +{ + struct renesas_usbhs_platform_info *info; + struct renesas_usbhs_driver_param *dparam; + const struct of_device_id *of_id = of_match_device(usbhs_of_match, dev); + u32 tmp; + int gpio; + + info = devm_kzalloc(dev, sizeof(*info), GFP_KERNEL); + if (!info) + return NULL; + + dparam = info-driver_param; + dparam-type = of_id ? (u32)of_id-data : 0; + if (!of_property_read_u32(dev-of_node, renesas,buswait, tmp)) + dparam-buswait_bwait = tmp; + gpio = of_get_named_gpio_flags(dev-of_node, renesas,enable-gpio, 0, + NULL); + if (gpio 0) + dparam-enable_gpio = gpio; + + return info; +} + static int usbhs_probe(struct platform_device *pdev) { struct renesas_usbhs_platform_info *info = dev_get_platdata(pdev-dev); @@ -446,6 +485,10 @@ static int usbhs_probe(struct platform_device *pdev) struct resource *res, *irq_res; int ret; + /* check device node */ + if (pdev-dev.of_node) + info = pdev-dev.platform_data = usbhs_parse_dt(pdev-dev); + /* check platform information */ if (!info) { dev_err(pdev-dev, no platform information\n); @@ -689,6 +732,7 @@ static struct platform_driver renesas_usbhs_driver = { .driver = { .name = renesas_usbhs, .pm = usbhsc_pm_ops, + .of_match_table = of_match_ptr(usbhs_of_match), }, .probe = usbhs_probe, .remove = usbhs_remove, -- 1.7.9.5 -- 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