On 21 June 2016 at 19:53, Felipe Balbi <balbi@xxxxxxxxxx> wrote: > > Hi, > > Baolin Wang <baolin.wang@xxxxxxxxxx> writes: >> On 21 June 2016 at 19:03, Mark Brown <broonie@xxxxxxxxxx> wrote: >>> On Tue, Jun 21, 2016 at 01:30:49PM +0300, Felipe Balbi wrote: >>>> Baolin Wang <baolin.wang@xxxxxxxxxx> writes: >>>> > @@ -607,8 +647,31 @@ static int wm831x_power_probe(struct platform_device *pdev) >>>> > } >>>> > } >>> >>>> > + if (wm831x_pdata && wm831x_pdata->usb_gadget) { >>>> > + power->usb_charger = >>>> > + usb_charger_find_by_name(wm831x_pdata->usb_gadget); >>> >>>> the fact that you rely on strings and pass them via pdata is an >>>> indication that you don't have enough description of the HW. Seems like >>>> we need to come up with a set of DT properties which tie a charger to a >>>> UDC. >>> >>>> I'm thinking a phandle would be enough? >>> >>> The wm831x has no DT support currently. >> >> Another hand I suppose the usb charger is one virtual device and does >> not need be described from DT. > > Right, I don't think that should be a device at all. But you can pass a > phandle to the UDC controller and use that to get to struct usb_gadget > from which you could reach ->charger. Ah, make sense. -- Baolin.wang Best Regards -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html