Hi Chanwoo,

On Tue, Mar 18, 2014 at 03:06:00PM +0900, Chanwoo Choi wrote:
> I checked power_supply_get_by_phandle().
> But power_supply_get_by_phandle() is different from of_power_supply_get_dev()
> 
> So, I expalin the difference between "power_supply_get_by_phandle()" and 
> "of_power_supply_get_dev()".
> 
> Existing "power_supply_get_by_phandle()"
> - Need correct the name of power_supply property.
> some device driver using power_supply_get_by_phandle() has the dependecy of 
> the name of power_supply property.
> 
> If the name of power_supply property is modified,
> have to modify some device driver using power_supply_get_by_phandle().

The property names are part of the DT ABI, which is not supposed to
be stable.

> But,
> Proposed "of_power_supply_get_dev()"
> - of_power_supply_get_dev() has not dependency of specific name.
> of_power_supply_get_dev() only need device type of power_supply device among 
> following device type:
>       "fuelgague"
>       "charger"
>       we can do addtional device type of power_supply device.
> 
> If some device driver use of_poewr_supply_get_dev(),
> don't need to consider the name of power_supply device.       
 
You don't need to consider the name of the power_supply device for
power_supply_get_by_phandle either. You only need to consider the
property name, which references the power_supply device. You can
have a look at drivers/power/bq2415x_charger.c, which makes use
of this function:

power_supply_get_by_phandle(np, "ti,usb-charger-detection");

A corresponding DT node can be found in arch/arm/boot/dts/omap3-n900.dts:

bq24150a: bq24150a@6b {
    /* ... */

    ti,usb-charger-detection = <&isp1704>;
}

As you can see the property name has nothing to do with any
names from the referenced node. Apart from that the node name
is also needed by your proposed of_power_supply_get_dev. The
difference is, that you hardcoded it to be either "fuelgauge"
or "charger". The following two calls should return the same
node:

of_power_supply_get_dev(dev, POWER_SUPPLY_DEV_FUELGAUGE, 0);
of_power_supply_get_dev(dev, "fuelgauge");

-- Sebastian

Attachment: signature.asc
Description: Digital signature

Reply via email to