mbox series

[RESEND,v6,0/3] Add support for CellWise cw2015 fuel gauge

Message ID 20200414125208.1091989-1-t.schramm@manjaro.org (mailing list archive)
Headers show
Series Add support for CellWise cw2015 fuel gauge | expand

Message

Tobias Schramm April 14, 2020, 12:52 p.m. UTC
This patchset adds support for the CellWise cw2015 fuel gauge.

The CellWise cw2015 fuel gauge is a shuntless, single-cell Li-Ion fuel
gauge. It is used in the pine64 Pinebook Pro laptop.

This is just a resend of v6 to the linux-pm maintainers for merging.

I've kept the cellwise,battery-profile property in the device tree. Its
content describes characteristics of the battery built into a device. The
exact format is unknown and not publicly documented. It is likely
comprised of some key parameters of the battery (chemistry, voltages,
design capacity) and parameters for tuning the internal state of charge
approximation function.
Since v2 CellWise has confirmed to me that the only way to obtain the
profile blob is to mail them batteries for testing. Thus we will need to
keep that property.

In general I'm not 100 % sure about my json-schema binding for the gauge.
It is my first time ever writing a json-schema binding and I'm not sure
whether properties like power-supplies or monitored-battery need to be
added to a separate, common schema for power supplies or not.

Best Regards,

Tobias Schramm

Changelog:
 v2:
  * Change subject to "Add support for CellWise cw2015 fuel gauge"
  * Rewrite bindings as json-schema
  * Use default power-supplies handling
  * Use regmap for register access
  * Use standard simple-battery node
  * Replace printk/pr_* by dev_{dbg,info,warn,err}
  * Use cancel_delayed_work_sync in remove
  * General code cleanup
 v3:
  * Incorporate review by Andy
  * Add cellwise vendor prefix
  * Rename cellwise,bat-config-info property to cellwise,battery-profile
  * Remove most state of charge post-processing
  * Use fwnode interface
  * General code cleanup
  * Lots of code style fixes
 v4:
  * Implement additional changes requested by Andy
  * Use fwnode inline wrappers
  * Clean up waiting for gauge
  * Minor code style fixes
 v5:
  * Clean up includes
  * Handle errors during device property parsing
  * Refactor device property parsing
  * Replace i2c->probe by i2c->probe_new 
  * More code style fixes
 v6:
  * Fix bindings according to review by Rob

Tobias Schramm (3):
  dt-bindings: Document cellwise vendor-prefix
  dt-bindings: power: supply: add cw2015_battery bindings
  power: supply: add CellWise cw2015 fuel gauge driver

 .../bindings/power/supply/cw2015_battery.yaml |  82 ++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 MAINTAINERS                                   |   6 +
 drivers/power/supply/Kconfig                  |  11 +
 drivers/power/supply/Makefile                 |   1 +
 drivers/power/supply/cw2015_battery.c         | 749 ++++++++++++++++++
 6 files changed, 851 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
 create mode 100644 drivers/power/supply/cw2015_battery.c

Comments

Sebastian Reichel May 3, 2020, 3:48 p.m. UTC | #1
Hi,

On Tue, Apr 14, 2020 at 02:52:05PM +0200, Tobias Schramm wrote:
> This patchset adds support for the CellWise cw2015 fuel gauge.
> 
> The CellWise cw2015 fuel gauge is a shuntless, single-cell Li-Ion fuel
> gauge. It is used in the pine64 Pinebook Pro laptop.
> 
> This is just a resend of v6 to the linux-pm maintainers for merging.
> 
> I've kept the cellwise,battery-profile property in the device tree. Its
> content describes characteristics of the battery built into a device. The
> exact format is unknown and not publicly documented. It is likely
> comprised of some key parameters of the battery (chemistry, voltages,
> design capacity) and parameters for tuning the internal state of charge
> approximation function.
> Since v2 CellWise has confirmed to me that the only way to obtain the
> profile blob is to mail them batteries for testing. Thus we will need to
> keep that property.

Thanks, queued.

> In general I'm not 100 % sure about my json-schema binding for the gauge.
> It is my first time ever writing a json-schema binding and I'm not sure
> whether properties like power-supplies or monitored-battery need to be
> added to a separate, common schema for power supplies or not.

Yes, they should be referenced, but at the time of your patch the
common power-supply properties and the battery bindings have not
yet been converted to YAML. The power-supplies property is now
described in Documentation/devicetree/bindings/power/supply/power-supply.yaml
and conversion of the simple-battery binding will hopefully happen
soon. Afterwards we can update the cw2015 binding accordingly.

-- Sebastian

> Best Regards,
> 
> Tobias Schramm
> 
> Changelog:
>  v2:
>   * Change subject to "Add support for CellWise cw2015 fuel gauge"
>   * Rewrite bindings as json-schema
>   * Use default power-supplies handling
>   * Use regmap for register access
>   * Use standard simple-battery node
>   * Replace printk/pr_* by dev_{dbg,info,warn,err}
>   * Use cancel_delayed_work_sync in remove
>   * General code cleanup
>  v3:
>   * Incorporate review by Andy
>   * Add cellwise vendor prefix
>   * Rename cellwise,bat-config-info property to cellwise,battery-profile
>   * Remove most state of charge post-processing
>   * Use fwnode interface
>   * General code cleanup
>   * Lots of code style fixes
>  v4:
>   * Implement additional changes requested by Andy
>   * Use fwnode inline wrappers
>   * Clean up waiting for gauge
>   * Minor code style fixes
>  v5:
>   * Clean up includes
>   * Handle errors during device property parsing
>   * Refactor device property parsing
>   * Replace i2c->probe by i2c->probe_new 
>   * More code style fixes
>  v6:
>   * Fix bindings according to review by Rob
> 
> Tobias Schramm (3):
>   dt-bindings: Document cellwise vendor-prefix
>   dt-bindings: power: supply: add cw2015_battery bindings
>   power: supply: add CellWise cw2015 fuel gauge driver
> 
>  .../bindings/power/supply/cw2015_battery.yaml |  82 ++
>  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
>  MAINTAINERS                                   |   6 +
>  drivers/power/supply/Kconfig                  |  11 +
>  drivers/power/supply/Makefile                 |   1 +
>  drivers/power/supply/cw2015_battery.c         | 749 ++++++++++++++++++
>  6 files changed, 851 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/supply/cw2015_battery.yaml
>  create mode 100644 drivers/power/supply/cw2015_battery.c
> 
> -- 
> 2.26.0
>