Revision tags: v6.6.25, v6.6.24, v6.6.23, v6.6.16, v6.6.15, v6.6.14, v6.6.13, v6.6.12, v6.6.11, v6.6.10, v6.6.9, v6.6.8, v6.6.7, v6.6.6, v6.6.5, v6.6.4, v6.6.3, v6.6.2, v6.5.11, v6.6.1, v6.5.10, v6.6, v6.5.9, v6.5.8, v6.5.7, v6.5.6, v6.5.5, v6.5.4, v6.5.3, v6.5.2, v6.1.51, v6.5.1, v6.1.50, v6.5, v6.1.49, v6.1.48, v6.1.46, v6.1.45, v6.1.44, v6.1.43, v6.1.42, v6.1.41, v6.1.40, v6.1.39, v6.1.38, v6.1.37, v6.1.36, v6.4, v6.1.35, v6.1.34, v6.1.33, v6.1.32, v6.1.31, v6.1.30, v6.1.29, v6.1.28, v6.1.27, v6.1.26, v6.3, v6.1.25, v6.1.24, v6.1.23, v6.1.22, v6.1.21, v6.1.20, v6.1.19, v6.1.18, v6.1.17, v6.1.16, v6.1.15, v6.1.14, v6.1.13, v6.2, v6.1.12, v6.1.11, v6.1.10, v6.1.9, v6.1.8, v6.1.7, v6.1.6, v6.1.5, v6.0.19, v6.0.18, v6.1.4, v6.1.3, v6.0.17, v6.1.2, v6.0.16, v6.1.1, v6.0.15, v6.0.14, v6.0.13, v6.1, v6.0.12, v6.0.11, v6.0.10, v5.15.80 |
|
#
c4d33381 |
| 23-Nov-2022 |
Yuan Can <yuancan@huawei.com> |
power: supply: ab8500: Fix error handling in ab8500_charger_init()
The ab8500_charger_init() returns the platform_driver_register() directly without checking its return value, if platform_driver_reg
power: supply: ab8500: Fix error handling in ab8500_charger_init()
The ab8500_charger_init() returns the platform_driver_register() directly without checking its return value, if platform_driver_register() failed, all ab8500_charger_component_drivers are not unregistered.
Fix by unregister ab8500_charger_component_drivers when platform_driver_register() failed.
Fixes: 1c1f13a006ed ("power: supply: ab8500: Move to componentized binding") Signed-off-by: Yuan Can <yuancan@huawei.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v6.0.9, v5.15.79, v6.0.8, v5.15.78, v6.0.7, v5.15.77, v5.15.76, v6.0.6, v6.0.5, v5.15.75, v6.0.4 |
|
#
03b33d4a |
| 22-Oct-2022 |
wangjianli <wangjianli@cdjrlc.com> |
power/supply: fix repeated words in comments
Delete the redundant word 'the'.
Signed-off-by: wangjianli <wangjianli@cdjrlc.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
Revision tags: v6.0.3, v6.0.2, v5.15.74, v5.15.73, v6.0.1, v5.15.72, v6.0, v5.15.71, v5.15.70, v5.15.69, v5.15.68, v5.15.67, v5.15.66, v5.15.65, v5.15.64, v5.15.63, v5.15.62, v5.15.61, v5.15.60, v5.15.59, v5.19, v5.15.58, v5.15.57, v5.15.56, v5.15.55, v5.15.54, v5.15.53, v5.15.52, v5.15.51, v5.15.50, v5.15.49, v5.15.48, v5.15.47, v5.15.46, v5.15.45, v5.15.44, v5.15.43, v5.15.42, v5.18, v5.15.41, v5.15.40, v5.15.39 |
|
#
38d45444 |
| 12-May-2022 |
Zheng Bin <zhengbin13@huawei.com> |
power: supply: ab8500: add missing destroy_workqueue in ab8500_charger_bind
ab8500_charger_bind misses destroy_workqueue in error path, this patch fixes that.
Signed-off-by: Zheng Bin <zhengbin13@h
power: supply: ab8500: add missing destroy_workqueue in ab8500_charger_bind
ab8500_charger_bind misses destroy_workqueue in error path, this patch fixes that.
Signed-off-by: Zheng Bin <zhengbin13@huawei.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
a1124c84 |
| 08-Jun-2022 |
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> |
power: supply: ab8500: Remove flush_scheduled_work() call.
It seems to me that ab8500 driver is using dedicated workqueues and is not calling schedule{,_delayed}_work{,_on}(). Then, there will be no
power: supply: ab8500: Remove flush_scheduled_work() call.
It seems to me that ab8500 driver is using dedicated workqueues and is not calling schedule{,_delayed}_work{,_on}(). Then, there will be no work to flush using flush_scheduled_work().
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
6c50a08d |
| 23-Jun-2022 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Drop external charger leftovers
Some leftover code for external chargers only used with unreleased ASIC revisions and the header file for the unsupported PM2301 was left behin
power: supply: ab8500: Drop external charger leftovers
Some leftover code for external chargers only used with unreleased ASIC revisions and the header file for the unsupported PM2301 was left behind in an earlier cleanup, fix it by deleting the remnants.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v5.15.38, v5.15.37, v5.15.36, v5.15.35, v5.15.34, v5.15.33, v5.15.32, v5.15.31, v5.17, v5.15.30, v5.15.29, v5.15.28, v5.15.27, v5.15.26, v5.15.25, v5.15.24 |
|
#
5730c81d |
| 14-Feb-2022 |
Yong Wu <yong.wu@mediatek.com> |
power: supply: ab8500: Make use of the helper component_compare_dev
Use the common compare helper from component.
Cc: Sebastian Reichel <sre@kernel.org> Cc: linux-pm@vger.kernel.org Signed-off-by:
power: supply: ab8500: Make use of the helper component_compare_dev
Use the common compare helper from component.
Cc: Sebastian Reichel <sre@kernel.org> Cc: linux-pm@vger.kernel.org Signed-off-by: Yong Wu <yong.wu@mediatek.com> Link: https://lore.kernel.org/r/20220214060819.7334-22-yong.wu@mediatek.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
Revision tags: v5.15.23, v5.15.22, v5.15.21, v5.15.20, v5.15.19, v5.15.18, v5.15.17, v5.4.173, v5.15.16 |
|
#
8f5b3739 |
| 18-Jan-2022 |
Hong Peng <elicec@foxmail.com> |
power: supply: ab8500_charger: Fix spelling typo
fix the comment typo: "interrupts", "structcure"
Signed-off-by: Hong Peng <elicec@foxmail.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@c
power: supply: ab8500_charger: Fix spelling typo
fix the comment typo: "interrupts", "structcure"
Signed-off-by: Hong Peng <elicec@foxmail.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
21ad180d |
| 28-Jan-2022 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500_charger: Fix VBAT interval check
When using USB charging, the AB8500 charger is periodically checking VBAT for a threshold at 3.8V.
This crashes badly, as the class_for_each_d
power: supply: ab8500_charger: Fix VBAT interval check
When using USB charging, the AB8500 charger is periodically checking VBAT for a threshold at 3.8V.
This crashes badly, as the class_for_each_device() was passed the wrong argument. I think this has maybe worked by chance in the past because of how the structs were arranged but it is leading to crashes now.
Fix this up and also switch to using microvolts for the voltages like the rest of the code.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
0f6dad11 |
| 28-Jan-2022 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500_charger: Restrict ADC retrieveal
The AB8505 only has two ADC channels: the voltage and current provided from VBUS (USB). It does not support AC charging at all. Make sure we do
power: supply: ab8500_charger: Restrict ADC retrieveal
The AB8505 only has two ADC channels: the voltage and current provided from VBUS (USB). It does not support AC charging at all. Make sure we don't try to retrieve the non-existing channels.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v5.15.15, v5.16 |
|
#
be2c0d54 |
| 28-Dec-2021 |
Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
power: supply: ab8500: Fix the error handling path of ab8500_charger_probe()
Since the commit below, ab8500_bm_of_remove() needs to be called after a successful ab8500_bm_of_probe() call. This commi
power: supply: ab8500: Fix the error handling path of ab8500_charger_probe()
Since the commit below, ab8500_bm_of_remove() needs to be called after a successful ab8500_bm_of_probe() call. This commit has only updated the remove function.
Fix the error handling path of the probe the same way.
Fixes: 6252c706cdb0 ("power: supply: ab8500: Standardize operating temperature") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v5.15.10, v5.15.9, v5.15.8, v5.15.7, v5.15.6, v5.15.5, v5.15.4 |
|
#
bc6e0287 |
| 20-Nov-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Standardize CV voltage
The voltage used in the constant voltage phase of the charging exist in struct power_supply_battery_info as constant_charge_voltage_max_uv.
Switch the
power: supply: ab8500: Standardize CV voltage
The voltage used in the constant voltage phase of the charging exist in struct power_supply_battery_info as constant_charge_voltage_max_uv.
Switch the custom property normal_vol_lvl to this and consequentially change everything that relates to this value over to using microvolts rather than millivolts so we align internal representation of current with the power core. Prefix every variable we change with *_uv to indicate the unit everywhere but also to make sure we do not miss any outlier.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
83e5aa77 |
| 20-Nov-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Standardize CC current
The current used in the constant current phase of the charging exist in struct power_supply_battery_info as constant_charge_current_max_ua.
Switch the
power: supply: ab8500: Standardize CC current
The current used in the constant current phase of the charging exist in struct power_supply_battery_info as constant_charge_current_max_ua.
Switch the custom property max_out_curr to this and consequentally change everything that relates to this value over to using microamperes rather than milliamperes so we align internal representation of current with the power core. Prefix every variable we change with *_ua to indicate the unit everywhere but also to make sure we do not miss any outlier.
Drop some duplicate unused defines in a header.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
6252c706 |
| 20-Nov-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Standardize operating temperature
Instead of storing the temperature limits in our custom struct struct ab8500_bm_data, make struct power_supply_battery_info a member of this
power: supply: ab8500: Standardize operating temperature
Instead of storing the temperature limits in our custom struct struct ab8500_bm_data, make struct power_supply_battery_info a member of this and store the min and max temperatures inside that struct as the temp_min/temp_max and temp_alert_min/temp_alert_max respectively.
The values can be assigned from the device tree, but if not present will be set to the same defaults as are currently in the code.
This way we start to move over to using struct power_supply_battery_info and make it possible to move the data over to the device tree and we will move piece by piece toward using the standard info struct.
Temperature hysteresis is currently not supported by the standard struct but we move the assignment here as well so that we have all parameterization in one spot.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
3aca6ecd |
| 20-Nov-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Sink current tables into charger code
The two tables for input and output current translation from register values does not need to be passed around from the battery manager d
power: supply: ab8500: Sink current tables into charger code
The two tables for input and output current translation from register values does not need to be passed around from the battery manager data. Just push it down into the charger code where it is used, like other tables in that code.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
59f1b854 |
| 20-Nov-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Use core battery parser
This deploys the core battery DT parser to read the basic properties of the battery. We only use very little of it as we start out, but we will improve
power: supply: ab8500: Use core battery parser
This deploys the core battery DT parser to read the basic properties of the battery. We only use very little of it as we start out, but we will improve as we go along.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v5.15.3, v5.15.2, v5.15.1, v5.15, v5.14.14, v5.14.13, v5.14.12, v5.14.11, v5.14.10, v5.14.9, v5.14.8, v5.14.7, v5.14.6, v5.10.67, v5.10.66, v5.14.5, v5.14.4, v5.10.65, v5.14.3, v5.10.64, v5.14.2, v5.10.63, v5.14.1, v5.10.62, v5.14, v5.10.61, v5.10.60, v5.10.53, v5.10.52, v5.10.51, v5.10.50 |
|
#
484a9cc3 |
| 13-Jul-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Drop abx500 concept
Drop the entire idea with abx500 being abstract and different from ab8500 in the AB8500 charging drivers. This rids the two identical definitions of a slew
power: supply: ab8500: Drop abx500 concept
Drop the entire idea with abx500 being abstract and different from ab8500 in the AB8500 charging drivers. This rids the two identical definitions of a slew of structs in ab8500-bm.h and makes things less confusion and easier to understand.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
c5b64a99 |
| 13-Jul-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Rename charging algorithm symbols
The "abx500" name on the charging algorithm stems from the ambition to produce a series of these analog basebands, re-using the same charging
power: supply: ab8500: Rename charging algorithm symbols
The "abx500" name on the charging algorithm stems from the ambition to produce a series of these analog basebands, re-using the same charging algorithm driver. No ASICs beside AB8500 and AB8505 were ever produced so this terminology is confusing. Rename the algorithm file and symbols to reflect the more narrow scope.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v5.10.49, v5.13, v5.10.46, v5.10.43 |
|
#
dfe52db1 |
| 04-Jun-2021 |
Zou Wei <zou_wei@huawei.com> |
power: supply: ab8500: add missing MODULE_DEVICE_TABLE
This patch adds missing MODULE_DEVICE_TABLE definition which generates correct modalias for automatic loading of this driver when it is built a
power: supply: ab8500: add missing MODULE_DEVICE_TABLE
This patch adds missing MODULE_DEVICE_TABLE definition which generates correct modalias for automatic loading of this driver when it is built as an external module.
Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Zou Wei <zou_wei@huawei.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v5.10.42, v5.10.41, v5.10.40, v5.10.39, v5.4.119 |
|
#
e2bfc28a |
| 11-May-2021 |
Guenter Roeck <linux@roeck-us.net> |
power: supply: ab8500: Drop unnecessary NULL check after container_of
The result of container_of() operations is never NULL unless the element is the first element of the embedded structure, which i
power: supply: ab8500: Drop unnecessary NULL check after container_of
The result of container_of() operations is never NULL unless the element is the first element of the embedded structure, which is not the case here. The NULL check is therefore unnecessary and misleading. Remove it.
This change was made automatically with the following Coccinelle script.
@@ type t; identifier v; statement s; @@
<+... ( t v = container_of(...); | v = container_of(...); ) ... when != v - if (\( !v \| v == NULL \) ) s ...+>
Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
f9184a22 |
| 22-May-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Enable USB and AC
The vendor code tree supplies platform data to enable he USB charging for AB8500 and AB8500 and disable the AC charging on the AB8505. This was missed when t
power: supply: ab8500: Enable USB and AC
The vendor code tree supplies platform data to enable he USB charging for AB8500 and AB8500 and disable the AC charging on the AB8505. This was missed when the driver was submitted to the mainline kernel.
Fix this by doing what the vendor kernel does: always register the USB charger, do not register the AC charger on the AB8505.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
5bcb5087 |
| 22-May-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Avoid NULL pointers
Sometimes the code will crash because we haven't enabled AC or USB charging and thus not created the corresponding psy device. Fix it by checking that it i
power: supply: ab8500: Avoid NULL pointers
Sometimes the code will crash because we haven't enabled AC or USB charging and thus not created the corresponding psy device. Fix it by checking that it is there before notifying.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
#
1c1f13a0 |
| 22-May-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: supply: ab8500: Move to componentized binding
The driver has problems with the different components of the charging code racing with each other to probe().
This results in all four subdriver
power: supply: ab8500: Move to componentized binding
The driver has problems with the different components of the charging code racing with each other to probe().
This results in all four subdrivers populating battery information to ascertain that it is populated for their own needs for example.
Fix this by using component probing and thus expressing to the kernel that these are dependent components. The probes can happen in any order and will only acquire resources such as state container, regulators and interrupts and initialize the data structures, but no execution happens until the .bind() callback is called.
The charging driver is the main component and binds first, then bind in order the three subcomponents: ab8500-fg, ab8500-btemp and ab8500-chargalg.
Do some housekeeping while we are moving the code around. Like use devm_* for IRQs so as to cut down on some boilerplate.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
show more ...
|
Revision tags: v5.10.36, v5.10.35, v5.10.34, v5.4.116, v5.10.33, v5.12, v5.10.32, v5.10.31, v5.10.30, v5.10.27, v5.10.26, v5.10.25, v5.10.24 |
|
#
a65aa0ce |
| 12-Mar-2021 |
Linus Walleij <linus.walleij@linaro.org> |
mfd/power: ab8500: Push algorithm to power supply code
The charging algorithm header is only used locally in the power supply subsystem so push this down into drivers/power/supply and rename from th
mfd/power: ab8500: Push algorithm to power supply code
The charging algorithm header is only used locally in the power supply subsystem so push this down into drivers/power/supply and rename from the confusing "ux500_chargalg.h" to "ab8500-chargalg.h" for clarity: it is only used with the AB8500.
This is another remnant of non-DT code needing to pass data from boardfiles, which we don't do anymore.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
show more ...
|
#
417c0fc2 |
| 12-Mar-2021 |
Linus Walleij <linus.walleij@linaro.org> |
mfd/power: ab8500: Push data to power supply code
The global definition of platform data for the battery management code has no utility after the OF conversion, move the <linux/mfd/abx500/ab8500-bm.
mfd/power: ab8500: Push data to power supply code
The global definition of platform data for the battery management code has no utility after the OF conversion, move the <linux/mfd/abx500/ab8500-bm.h> to be a local file in drivers/power/supply and stop defining the platform data in drivers/power/supply/ab8500_bmdata.c and broadcast to the kernel only to have it assigned as platform data to the MFD cells and then picked back into the same subsystem that defined it in the first place. This kills off a layer of indirection.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
show more ...
|
#
53207aa1 |
| 12-Mar-2021 |
Linus Walleij <linus.walleij@linaro.org> |
power: ab8500: Require device tree
The core AB8500 driver and the whole platform is completely dependent on being probed from device tree so remove the non-DT probe paths.
Signed-off-by: Linus Wall
power: ab8500: Require device tree
The core AB8500 driver and the whole platform is completely dependent on being probed from device tree so remove the non-DT probe paths.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
show more ...
|