Re: [PATCH v8 1/9] devicetree: power: Add battery.txt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Thu, Mar 16, 2017 at 6:31 AM, Andrew F. Davis <afd@xxxxxx> wrote:
> On 03/16/2017 01:45 AM, Liam Breck wrote:
>> On Wed, Mar 15, 2017 at 4:50 PM, Rob Herring <robh@xxxxxxxxxx> wrote:
>>> On Wed, Mar 15, 2017 at 5:04 PM, Liam Breck <liam@xxxxxxxxxxxxxxxxx> wrote:
>>>> On Wed, Mar 15, 2017 at 1:10 PM, Rob Herring <robh@xxxxxxxxxx> wrote:
>>>>> On Thu, Mar 2, 2017 at 12:31 PM, Liam Breck <liam@xxxxxxxxxxxxxxxxx> wrote:
>>>>>> Hi Rob,
>>>>>>
>>>>>> On Thu, Mar 2, 2017 at 7:14 AM, Rob Herring <robh@xxxxxxxxxx> wrote:
>>>>>>> On Sun, Feb 26, 2017 at 11:11:09PM -0800, Liam Breck wrote:
>>>>>>>> From: Liam Breck <kernel@xxxxxxxxxxxxxxxxx>
>>>>>>>>
>>>>>>>> Documentation of static battery characteristics that can be defined
>>>>>>>> for batteries which cannot self-identify. This information is required
>>>>>>>> by fuel-gauge and charger chips for proper handling of the battery.
>>>>>>>>
>>>>>>>> Cc: Rob Herring <robh@xxxxxxxxxx>
>>>>>>>> Cc: devicetree@xxxxxxxxxxxxxxx
>>>>>>>> Signed-off-by: Matt Ranostay <matt@ranostay.consulting>
>>>>>>>> Signed-off-by: Liam Breck <kernel@xxxxxxxxxxxxxxxxx>
>>>>>>>> ---
>>>>>>>>  .../devicetree/bindings/power/supply/battery.txt   | 42 ++++++++++++++++++++++
>>>>>>>>  1 file changed, 42 insertions(+)
>>>>>>>>  create mode 100644 Documentation/devicetree/bindings/power/supply/battery.txt
>>>>>>>>
>>>>>>>> diff --git a/Documentation/devicetree/bindings/power/supply/battery.txt b/Documentation/devicetree/bindings/power/supply/battery.txt
>>>>>>>> new file mode 100644
>>>>>>>> index 0000000..3d916bd
>>>>>>>> --- /dev/null
>>>>>>>> +++ b/Documentation/devicetree/bindings/power/supply/battery.txt
>>>>>>>> @@ -0,0 +1,42 @@
>>>>>>>> +Battery Characteristics
>>>>>>>> +
>>>>>>>> +Required Properties:
>>>>>>>> + - compatible: Must be "fixed-battery"
>>>>>>>
>>>>>>> Still not liking this name, but I don't have a better suggestion. Please
>>>>>>> describe here what is and isn't a "fixed battery".
>>>>>>
>>>>>> Sebastian...?
>>>>>>
>>>>>>>> +
>>>>>>>> +Optional Properties:
>>>>>>>> + - voltage-min-design-microvolt: drained battery voltage
>>>>>>>> + - energy-full-design-microwatt-hours: battery design energy
>>>>>>>> + - charge-full-design-microamp-hours: battery design capacity
>>>>>>>> +
>>>>>>>> +Future Properties must be named for the corresponding elements in
>>>>>>>> +enum power_supply_property, defined in include/linux/power_supply.h.
>>>>>>>
>>>>>>> Um, no. That's exactly not how DT bindings should be done.
>>>>>>
>>>>>> Power supply components surface stats in sysfs using the names in enum
>>>>>> power_supply_property. For example,
>>>>>> /sys/class/power_supply/.../voltage_min_design. Matching input (DT)
>>>>>> and output (sysfs) names is sensible. The above comment is already
>>>>>> attached to struct power_supply_battery_info, which is the initial
>>>>>> destination for the above DT properties.
>>>>>>
>>>>>> Shall I mention sysfs in the above comment?
>>>>>
>>>>> Absolutely not. Bindings should not reference Linux.
>>>>>
>>>>> While sometimes things can align, there is no guarantee that they
>>>>> will. DT is h/w description. sysfs is user configuration.
>>>>
>>>> sysfs for power_supply also provides fixed hw characteristics.
>>>>
>>>> Sebastian proposed DT:battery specifically to be consumed by
>>>> power_supply_core. Allowing names in DT:battery and
>>>> power_supply_property to diverge would cause confusion and wasted
>>>> time, for no particular benefit. As there is no rationale to
>>>> reconsider the names of these fields for DT:battery, let's write that
>>>> into the docs.
>>>
>>> Write it into the Linux docs then. The DT docs need to stand on their
>>> own for the standalone DT tree[1] that other projects import.
>>
>> We will document it on the Linux side. But referencing a Linux header
>> file as the origin of property names in DT;battery does not create a
>> Linux dependency for standalone DT. It merely clarifies the naming
>> scheme.
>>
>> Also a huge number of DT bindings are Linux-specific, as they are
>> implemented by some kernel driver. Do you plan to rip those out of
>> devicetree-rebasing?
>>
>
> Being implemented by a Linux kernel driver does not mean they can *only*
> every be implemented by a Linux kernel driver, U-Boot for instance takes
> drivers from Linux and so the DTs work mostly unchanged.

True, but in many cases Linux drivers have implemented a DT property
set badly. The standalone DT user might prefer to renovate vs
replicate a design flaw. Either the kernel-derived DT bindings in the
standalone tree mandate their flaws, or that tree accumulates
overlapping bindings.

> Also the biggest thing to remember is that doing something wrong before,
> doesn't justify continuing to do it wrong.

It certainly is justified if most ppl insist on continuing to do it wrong :-)
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux