Re: [U-Boot] [RESEND][PATCH v5 1/5] usb: host: xhci-dwc3: Convert driver to DM

2017-07-06 Thread Patrice CHOTARD
Hi Bin

On 07/06/2017 10:50 AM, Bin Meng wrote:
> Hi Patrice,
> 
> On Thu, Jul 6, 2017 at 4:47 PM, Patrice CHOTARD  
> wrote:
>> Hi Bin
>>
>> On 07/06/2017 10:27 AM, Bin Meng wrote:
>>> Hi Patrice,
>>>
>>> On Thu, Jul 6, 2017 at 3:50 PM,   wrote:
 From: Patrice Chotard 

 Add Driver Model support with use of generic DT
 compatible string "snps,dwc3"

 Signed-off-by: Patrice Chotard 
 Reviewed-by: Simon Glass 
 ---

 v5: _ replace dev_get_addr() by devfdt_get_addr()
 v4: _ none
 v3: _ none
 v2: _ use dev_get_addr() and removed useless piece of code


drivers/usb/host/xhci-dwc3.c | 50 
 
1 file changed, 50 insertions(+)

 diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
 index 33961cd..8c90836 100644
 --- a/drivers/usb/host/xhci-dwc3.c
 +++ b/drivers/usb/host/xhci-dwc3.c
 @@ -9,9 +9,19 @@
 */

#include 
 +#include 
 +#include 
 +
 +#include "xhci.h"
#include 
#include 

 +DECLARE_GLOBAL_DATA_PTR;
 +
 +struct xhci_dwc3_priv {
 +   struct xhci_ctrl ctrl;
 +};
>>>
>>> Please use 'struct xhci_dwc3' directly for .priv_auto_alloc_size
>>
>>
>> You mean, rename struct xhci_dwc3_priv to struct xhci_dwc3 ?
> 
> I mean use .priv_auto_alloc_size = sizeof(struct xhci_ctrl) directly
> without adding a new struct

Agree, i will fix this

Thanks

Patrice

> 
>>
>>>
 +
void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
{
   clrsetbits_le32(&dwc3_reg->g_ctl,
 @@ -97,3 +107,43 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
   setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
   GFLADJ_30MHZ(val));
}
 +
 +static int xhci_dwc3_probe(struct udevice *dev)
 +{
 +   struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
 +   struct xhci_hcor *hcor;
 +   struct xhci_hccr *hccr;
 +   struct dwc3 *dwc3_reg;
 +
 +   hccr = (struct xhci_hccr *)devfdt_get_addr(dev);
 +   hcor = (struct xhci_hcor *)((phys_addr_t)hccr +
 +   HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
 +
 +   dwc3_reg = (struct dwc3 *)((char *)(hccr) + DWC3_REG_OFFSET);
 +
 +   dwc3_core_init(dwc3_reg);
 +
 +   return xhci_register(dev, hccr, hcor);
 +}
 +
 +static int xhci_dwc3_remove(struct udevice *dev)
 +{
 +   return xhci_deregister(dev);
 +}
>>>
>>> Please nuke this xhci_dwc3_remove(), instead register
>>> xhci_deregister() directly.
>>
>> Is it worth, as in patch 5, xhci_dwc3_remove() will be populated.
>>
> 
> Ah, I see. Then there is no need to do that. Thanks!
> 
> Regards,
> Bin
> 
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [RESEND][PATCH v5 1/5] usb: host: xhci-dwc3: Convert driver to DM

2017-07-06 Thread Bin Meng
Hi Patrice,

On Thu, Jul 6, 2017 at 4:47 PM, Patrice CHOTARD  wrote:
> Hi Bin
>
> On 07/06/2017 10:27 AM, Bin Meng wrote:
>> Hi Patrice,
>>
>> On Thu, Jul 6, 2017 at 3:50 PM,   wrote:
>>> From: Patrice Chotard 
>>>
>>> Add Driver Model support with use of generic DT
>>> compatible string "snps,dwc3"
>>>
>>> Signed-off-by: Patrice Chotard 
>>> Reviewed-by: Simon Glass 
>>> ---
>>>
>>> v5: _ replace dev_get_addr() by devfdt_get_addr()
>>> v4: _ none
>>> v3: _ none
>>> v2: _ use dev_get_addr() and removed useless piece of code
>>>
>>>
>>>   drivers/usb/host/xhci-dwc3.c | 50 
>>> 
>>>   1 file changed, 50 insertions(+)
>>>
>>> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
>>> index 33961cd..8c90836 100644
>>> --- a/drivers/usb/host/xhci-dwc3.c
>>> +++ b/drivers/usb/host/xhci-dwc3.c
>>> @@ -9,9 +9,19 @@
>>>*/
>>>
>>>   #include 
>>> +#include 
>>> +#include 
>>> +
>>> +#include "xhci.h"
>>>   #include 
>>>   #include 
>>>
>>> +DECLARE_GLOBAL_DATA_PTR;
>>> +
>>> +struct xhci_dwc3_priv {
>>> +   struct xhci_ctrl ctrl;
>>> +};
>>
>> Please use 'struct xhci_dwc3' directly for .priv_auto_alloc_size
>
>
> You mean, rename struct xhci_dwc3_priv to struct xhci_dwc3 ?

I mean use .priv_auto_alloc_size = sizeof(struct xhci_ctrl) directly
without adding a new struct

>
>>
>>> +
>>>   void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
>>>   {
>>>  clrsetbits_le32(&dwc3_reg->g_ctl,
>>> @@ -97,3 +107,43 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
>>>  setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
>>>  GFLADJ_30MHZ(val));
>>>   }
>>> +
>>> +static int xhci_dwc3_probe(struct udevice *dev)
>>> +{
>>> +   struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
>>> +   struct xhci_hcor *hcor;
>>> +   struct xhci_hccr *hccr;
>>> +   struct dwc3 *dwc3_reg;
>>> +
>>> +   hccr = (struct xhci_hccr *)devfdt_get_addr(dev);
>>> +   hcor = (struct xhci_hcor *)((phys_addr_t)hccr +
>>> +   HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
>>> +
>>> +   dwc3_reg = (struct dwc3 *)((char *)(hccr) + DWC3_REG_OFFSET);
>>> +
>>> +   dwc3_core_init(dwc3_reg);
>>> +
>>> +   return xhci_register(dev, hccr, hcor);
>>> +}
>>> +
>>> +static int xhci_dwc3_remove(struct udevice *dev)
>>> +{
>>> +   return xhci_deregister(dev);
>>> +}
>>
>> Please nuke this xhci_dwc3_remove(), instead register
>> xhci_deregister() directly.
>
> Is it worth, as in patch 5, xhci_dwc3_remove() will be populated.
>

Ah, I see. Then there is no need to do that. Thanks!

Regards,
Bin
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [RESEND][PATCH v5 1/5] usb: host: xhci-dwc3: Convert driver to DM

2017-07-06 Thread Patrice CHOTARD
Hi Bin

On 07/06/2017 10:27 AM, Bin Meng wrote:
> Hi Patrice,
> 
> On Thu, Jul 6, 2017 at 3:50 PM,   wrote:
>> From: Patrice Chotard 
>>
>> Add Driver Model support with use of generic DT
>> compatible string "snps,dwc3"
>>
>> Signed-off-by: Patrice Chotard 
>> Reviewed-by: Simon Glass 
>> ---
>>
>> v5: _ replace dev_get_addr() by devfdt_get_addr()
>> v4: _ none
>> v3: _ none
>> v2: _ use dev_get_addr() and removed useless piece of code
>>
>>
>>   drivers/usb/host/xhci-dwc3.c | 50 
>> 
>>   1 file changed, 50 insertions(+)
>>
>> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
>> index 33961cd..8c90836 100644
>> --- a/drivers/usb/host/xhci-dwc3.c
>> +++ b/drivers/usb/host/xhci-dwc3.c
>> @@ -9,9 +9,19 @@
>>*/
>>
>>   #include 
>> +#include 
>> +#include 
>> +
>> +#include "xhci.h"
>>   #include 
>>   #include 
>>
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +struct xhci_dwc3_priv {
>> +   struct xhci_ctrl ctrl;
>> +};
> 
> Please use 'struct xhci_dwc3' directly for .priv_auto_alloc_size


You mean, rename struct xhci_dwc3_priv to struct xhci_dwc3 ?

> 
>> +
>>   void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
>>   {
>>  clrsetbits_le32(&dwc3_reg->g_ctl,
>> @@ -97,3 +107,43 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
>>  setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
>>  GFLADJ_30MHZ(val));
>>   }
>> +
>> +static int xhci_dwc3_probe(struct udevice *dev)
>> +{
>> +   struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
>> +   struct xhci_hcor *hcor;
>> +   struct xhci_hccr *hccr;
>> +   struct dwc3 *dwc3_reg;
>> +
>> +   hccr = (struct xhci_hccr *)devfdt_get_addr(dev);
>> +   hcor = (struct xhci_hcor *)((phys_addr_t)hccr +
>> +   HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
>> +
>> +   dwc3_reg = (struct dwc3 *)((char *)(hccr) + DWC3_REG_OFFSET);
>> +
>> +   dwc3_core_init(dwc3_reg);
>> +
>> +   return xhci_register(dev, hccr, hcor);
>> +}
>> +
>> +static int xhci_dwc3_remove(struct udevice *dev)
>> +{
>> +   return xhci_deregister(dev);
>> +}
> 
> Please nuke this xhci_dwc3_remove(), instead register
> xhci_deregister() directly.

Is it worth, as in patch 5, xhci_dwc3_remove() will be populated.

Thanks

Patrice

> 
>> +
>> +static const struct udevice_id xhci_dwc3_ids[] = {
>> +   { .compatible = "snps,dwc3" },
>> +   { }
>> +};
>> +
>> +U_BOOT_DRIVER(xhci_dwc3) = {
>> +   .name = "xhci-dwc3",
>> +   .id = UCLASS_USB,
>> +   .of_match = xhci_dwc3_ids,
>> +   .probe = xhci_dwc3_probe,
>> +   .remove = xhci_dwc3_remove,
>> +   .ops = &xhci_usb_ops,
>> +   .priv_auto_alloc_size = sizeof(struct xhci_dwc3_priv),
>> +   .platdata_auto_alloc_size = sizeof(struct xhci_dwc3_platdata),
>> +   .flags = DM_FLAG_ALLOC_PRIV_DMA,
>> +};
>> --
> 
> Regards,
> Bin
> 
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [RESEND][PATCH v5 1/5] usb: host: xhci-dwc3: Convert driver to DM

2017-07-06 Thread Bin Meng
Hi Patrice,

On Thu, Jul 6, 2017 at 3:50 PM,   wrote:
> From: Patrice Chotard 
>
> Add Driver Model support with use of generic DT
> compatible string "snps,dwc3"
>
> Signed-off-by: Patrice Chotard 
> Reviewed-by: Simon Glass 
> ---
>
> v5: _ replace dev_get_addr() by devfdt_get_addr()
> v4: _ none
> v3: _ none
> v2: _ use dev_get_addr() and removed useless piece of code
>
>
>  drivers/usb/host/xhci-dwc3.c | 50 
> 
>  1 file changed, 50 insertions(+)
>
> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> index 33961cd..8c90836 100644
> --- a/drivers/usb/host/xhci-dwc3.c
> +++ b/drivers/usb/host/xhci-dwc3.c
> @@ -9,9 +9,19 @@
>   */
>
>  #include 
> +#include 
> +#include 
> +
> +#include "xhci.h"
>  #include 
>  #include 
>
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +struct xhci_dwc3_priv {
> +   struct xhci_ctrl ctrl;
> +};

Please use 'struct xhci_dwc3' directly for .priv_auto_alloc_size

> +
>  void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
>  {
> clrsetbits_le32(&dwc3_reg->g_ctl,
> @@ -97,3 +107,43 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
> setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
> GFLADJ_30MHZ(val));
>  }
> +
> +static int xhci_dwc3_probe(struct udevice *dev)
> +{
> +   struct xhci_dwc3_platdata *plat = dev_get_platdata(dev);
> +   struct xhci_hcor *hcor;
> +   struct xhci_hccr *hccr;
> +   struct dwc3 *dwc3_reg;
> +
> +   hccr = (struct xhci_hccr *)devfdt_get_addr(dev);
> +   hcor = (struct xhci_hcor *)((phys_addr_t)hccr +
> +   HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
> +
> +   dwc3_reg = (struct dwc3 *)((char *)(hccr) + DWC3_REG_OFFSET);
> +
> +   dwc3_core_init(dwc3_reg);
> +
> +   return xhci_register(dev, hccr, hcor);
> +}
> +
> +static int xhci_dwc3_remove(struct udevice *dev)
> +{
> +   return xhci_deregister(dev);
> +}

Please nuke this xhci_dwc3_remove(), instead register
xhci_deregister() directly.

> +
> +static const struct udevice_id xhci_dwc3_ids[] = {
> +   { .compatible = "snps,dwc3" },
> +   { }
> +};
> +
> +U_BOOT_DRIVER(xhci_dwc3) = {
> +   .name = "xhci-dwc3",
> +   .id = UCLASS_USB,
> +   .of_match = xhci_dwc3_ids,
> +   .probe = xhci_dwc3_probe,
> +   .remove = xhci_dwc3_remove,
> +   .ops = &xhci_usb_ops,
> +   .priv_auto_alloc_size = sizeof(struct xhci_dwc3_priv),
> +   .platdata_auto_alloc_size = sizeof(struct xhci_dwc3_platdata),
> +   .flags = DM_FLAG_ALLOC_PRIV_DMA,
> +};
> --

Regards,
Bin
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot