Message ID | cover.1586925868.git.matti.vaittinen@fi.rohmeurope.com (mailing list archive) |
---|---|
Headers | show |
Series | Support ROHM BD99954 charger IC | expand |
Hi Mark, I think it's best to create an immutable branch for patches 1-5, which introduce the linear ranges helper. It can go into regulator and power-supply tree. Then I take patches 6-11 directly into power-supply. Do you want to create the immutable branch, or should I send you a pull request? -- Sebastian On Wed, Apr 15, 2020 at 08:16:56AM +0300, Matti Vaittinen wrote: > Support ROHM BD99954 Battery Management IC > > ROHM BD99954 is a Battery Management IC for 1-4 cell Lithium-Ion > secondary battery. BD99954 is intended to be used in space-constraint > equipment such as Low profile Notebook PC, Tablets and other > applications. > > Series extracts a "linear ranges" helper out of the regulator > framework. Linear ranges helper is intended to help converting > real-world values to register values when conversion is linear. I > suspect this is useful also for power subsystem and possibly for clk. > > Current implementation does not support inversely proportional ranges > but adding support for that could be helpful. > > This version of series introduces new battry DT binding entries and > adds the parsing in power_supply_get_battery_info(). > > Changelog v10: > - Add patch 11 which removes the "default n" from power/supply KConfig > (Please just drop from series if you disagree) > - Fix the regulator_linear_ranges added to qcom_smd-regulator.c at > v5.7-rc1 > - Minor styling to BD70528 power/supply driver as suggested by Andy > > Changelog v9: > General: > - rebased on top of v5.7-rc1 > - re-ordered patches as suggested by Sebastian Reichel > - added few acks > BD99954 driver: > - Moved bd99954-charger.h to drivers/power/supply > - fixed a typo from print > - used devm_add_action_or_reset and removed remove callback > > Changelog v8: > Linear ranges > - small improvements suggested by Andy Shevchenko, no functional changes > > Changelog v7: > General: > - rebased on top of v5.6 > bd99954 driver: > - fixed bunch of styling issues spotted by Andy Shevchenko > - dropped ACPI table as ACPI properties are not supported at this > version of driver. > - added few acks > > Changelog v6: > generic: > - rebased on top of 5.6-rc7. > linear ranges: > - moved to lib as requested by Greg KH > - EXPORT_SYMBOL => EXPORT_SYMBOL_GPL > - licence GPL-2.0, not later > - added KUnit test for linear ranges > > Changelog v5: > generic: > - rebased on top of 5.6-rc6. > DT-bindings: > - Dropped -charger extension from compatible and removed wildcard x. > regulators: > - squashed the regulator changes in one patch. > power-supply KConfig: > - fixed indentiation > - dropped unnecessary 'default N' from BD99954. > > Changelog v4: > generic: > - rebase and drop RFC. > DT-bindings: > - add I2C node address-cells and size-cells to fix yaml check errors > - uncomment multipleOf: > bd70528: > - add patch which renames driver internal linear_range struct to > avoid collision when regulator/driver.h (which gets included from > rohm generic header) introduces the linear_range struct. > regulators: > - rebase to v5.6-rc2 and convert also the two newly introduced > drivers to use linear_range struct instead of > regulator_linear_range. > linear_ranges: > - Fix kerneldoc. > > Changelog RFC-v3: > DT-bindings: > - fix the BD99954 binding (the *-microvolt Vs. *-microvolts issue is > still there. Not sure which one is correct) > - renabe tricklecharge-* binding to trickle-charge-* as suggested by > Rob. > - drop the linear-ranges helper which was written for BD70528 and > extract the linear-range code from regulator framework instead. > - refactor regulator framework to utilize extracted linear-ranges > code. > - change the struct regulator_linear_range to linear_range from > regulator drivers. > - refactor BD70528 to use regulator framework originated > linear-ranges code. > - change BD99954 to use linear-ranges code from regulator framework > > Changelog RFC-v2: > DT-bindings: > - Used the battery parameters described in battery.txt > - Added few new parameters to battery.txt > - Added ASCII art charging profile chart for BD99954 to explain > states and limits. > Linear ranges: > - Fixed division by zero error from linear-ranges code if step 0 is > used. > Power-supply core: > - Added parsing of new battery parameters. > BD99954 driver: > - converted to use battery parameters from battery node > - Added step 0 ranges for reg values which do not change voltage > - added dt-node to psy-config > > Patch 1: > Linear ranges helpers > Patch 2: > Test for linear ranges helpers > Patch 3: > Rename driver internal struct linear_range from bd70528-power > Patch 4: > Use linear-ranges helpers in regulator framework and > convert regulator drivers to use new linear_range struct. > Patch 5: > Use linear-ranges helpers in bd70528 driver > Patch 6: > DT binding docs for the new battery parameters > Patch 7: > Parsing of new battery parameters > Patch 8: > BD99954 charger DT binding docs > Patch 9: > ROHM BD99954 charger IC driver > Patch 10: > Fix Kconfig help text indentiation for other entries as well. > Patch 10: > Fix Kconfig by removing the "default n". > > --- > > Matti Vaittinen (11): > lib: add linear ranges helpers > lib/test_linear_ranges: add a test for the 'linear_ranges' > power: supply: bd70528: rename linear_range to avoid collision > regulator: use linear_ranges helper > power: supply: bd70528: use linear ranges > dt-bindings: battery: add new battery parameters > power: supply: add battery parameters > dt_bindings: ROHM BD99954 Charger > power: supply: Support ROHM bd99954 charger > power: supply: Fix Kconfig help text indentiation > power: supply: KConfig cleanup default n > > .../bindings/power/supply/battery.txt | 6 + > .../bindings/power/supply/rohm,bd99954.yaml | 155 +++ > drivers/power/supply/Kconfig | 36 +- > drivers/power/supply/Makefile | 1 + > drivers/power/supply/bd70528-charger.c | 140 +- > drivers/power/supply/bd99954-charger.c | 1142 +++++++++++++++++ > drivers/power/supply/bd99954-charger.h | 1075 ++++++++++++++++ > drivers/power/supply/power_supply_core.c | 8 + > drivers/regulator/88pg86x.c | 4 +- > drivers/regulator/88pm800-regulator.c | 4 +- > drivers/regulator/Kconfig | 1 + > drivers/regulator/act8865-regulator.c | 4 +- > drivers/regulator/act8945a-regulator.c | 2 +- > drivers/regulator/arizona-ldo1.c | 2 +- > drivers/regulator/arizona-micsupp.c | 4 +- > drivers/regulator/as3711-regulator.c | 6 +- > drivers/regulator/as3722-regulator.c | 4 +- > drivers/regulator/axp20x-regulator.c | 16 +- > drivers/regulator/bcm590xx-regulator.c | 8 +- > drivers/regulator/bd70528-regulator.c | 8 +- > drivers/regulator/bd71828-regulator.c | 10 +- > drivers/regulator/bd718x7-regulator.c | 26 +- > drivers/regulator/da903x.c | 2 +- > drivers/regulator/helpers.c | 130 +- > drivers/regulator/hi6421-regulator.c | 4 +- > drivers/regulator/lochnagar-regulator.c | 4 +- > drivers/regulator/lp873x-regulator.c | 4 +- > drivers/regulator/lp87565-regulator.c | 2 +- > drivers/regulator/lp8788-buck.c | 2 +- > drivers/regulator/max77650-regulator.c | 2 +- > drivers/regulator/mcp16502.c | 4 +- > drivers/regulator/mp8859.c | 2 +- > drivers/regulator/mt6323-regulator.c | 6 +- > drivers/regulator/mt6358-regulator.c | 8 +- > drivers/regulator/mt6380-regulator.c | 6 +- > drivers/regulator/mt6397-regulator.c | 6 +- > drivers/regulator/palmas-regulator.c | 4 +- > drivers/regulator/qcom-rpmh-regulator.c | 2 +- > drivers/regulator/qcom_rpm-regulator.c | 14 +- > drivers/regulator/qcom_smd-regulator.c | 78 +- > drivers/regulator/rk808-regulator.c | 10 +- > drivers/regulator/s2mps11.c | 14 +- > drivers/regulator/sky81452-regulator.c | 2 +- > drivers/regulator/stpmic1_regulator.c | 18 +- > drivers/regulator/tps65086-regulator.c | 10 +- > drivers/regulator/tps65217-regulator.c | 4 +- > drivers/regulator/tps65218-regulator.c | 6 +- > drivers/regulator/tps65912-regulator.c | 4 +- > drivers/regulator/twl-regulator.c | 4 +- > drivers/regulator/twl6030-regulator.c | 2 +- > drivers/regulator/wm831x-dcdc.c | 2 +- > drivers/regulator/wm831x-ldo.c | 4 +- > drivers/regulator/wm8350-regulator.c | 2 +- > drivers/regulator/wm8400-regulator.c | 2 +- > include/linux/linear_range.h | 48 + > include/linux/power_supply.h | 4 + > include/linux/regulator/driver.h | 27 +- > lib/Kconfig | 3 + > lib/Kconfig.debug | 11 + > lib/Makefile | 2 + > lib/linear_ranges.c | 241 ++++ > lib/test_linear_ranges.c | 228 ++++ > 62 files changed, 3228 insertions(+), 362 deletions(-) > create mode 100644 Documentation/devicetree/bindings/power/supply/rohm,bd99954.yaml > create mode 100644 drivers/power/supply/bd99954-charger.c > create mode 100644 drivers/power/supply/bd99954-charger.h > create mode 100644 include/linux/linear_range.h > create mode 100644 lib/linear_ranges.c > create mode 100644 lib/test_linear_ranges.c > > > base-commit: 8f3d9f354286745c751374f5f1fcafee6b3f3136 > -- > 2.21.0 > > > -- > Matti Vaittinen, Linux device drivers > ROHM Semiconductors, Finland SWDC > Kiviharjunlenkki 1E > 90220 OULU > FINLAND > > ~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~ > Simon says - in Latin please. > ~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~ > Thanks to Simon Glass for the translation =]