RE: [PATCH v2 3/3] power/supply: Add generic USB charger driver

From: Peter Chen
Date: Tue Dec 17 2019 - 21:46:29 EST



> >> >
> >> >> >> +
> >> >> >> + desc = &charger->desc;
> >> >> >> + desc->name = "usb-charger";
> >> >> >> + desc->properties = usb_charger_properties;
> >> >> >> + desc->num_properties = ARRAY_SIZE(usb_charger_properties);
> >> >> >> + desc->get_property = usb_charger_get_property;
> >> >> >> + desc->type = POWER_SUPPLY_TYPE_USB;
> >> >> >
> >> >> > What's your further plan for this generic USB charger?
> >> >> > To support BC1.2, we need to know charger type, and how we
> >> could >> get > it?
> >> >> >
> >> >> > Peter
> >> >>
> >> >> Well I don't really know. The USB role framework does not give
> >> any >> info about what's plugged.
> >> >>
> >> >
> >> > What's the use case for this patch set? How it be used?
> >>
> >> My devicetree:
> >>
> >> usb_otg: usb@13440000 {
> >> compatible = "ingenic,jz4770-musb", "simple-mfd";
> >> reg = <0x13440000 0x10000>;
> >> [...]
> >>
> >> usb-role-switch;
> >>
> >> connector {
> >> compatible = "gpio-usb-b-connector", "usb-b-connector";
> >> label = "mini-USB";
> >> type = "mini";
> >>
> >> id-gpios = <&gpf 18 GPIO_ACTIVE_HIGH>;
> >> vbus-gpios = <&gpb 5 GPIO_ACTIVE_HIGH>;
> >> [...]
> >> };
> >>
> >> usb_charger: usb-charger {
> >> compatible = "usb-charger";
> >> };
> >> };
> >>
> >> The new gpio-usb-connector driver uses the ID/VBUS GPIOs to detect
> >> in which state (device, host, unconnected) a OTG connector is.
> >> However, that means I cannot use the standard gpio-charger driver to
> >> detect the presence of a charger based on the state of the VBUS
> >> gpio, since it's already requested here. So the point of this
> >> patchset is to provide an alternative to gpio-charger that works
> >> with OTG controllers compatible with 'usb-role-switch'.
> >>
> >
> > Thanks for explaining it.
> >
> > What's the user for this USB charger, PMIC or what else? How the user
> > uses this USB charger interface?
>
> It's exported as a standard charger, so it can be passed to client drivers through
> devicetree, and its online status can be retrieved from sysfs.
>

Hi Paul,

If you would like to get role from usb-role-switch, the udc driver may probably have already worked.
There is a 'state' entry under the udc device to indicate USB Ch9 state. Try to see if it could
satisfy your requirement.

Peter