power supply and reset changes for the v4.13 series
* New drivers - Linear ltc3651 charger driver - Motorola CPCAP battery fuel-gauge driver * New chip/feature support - bq27xxx: prepare for chip data setup - axp20x_battery: support max charge current setup * New core features - add Apple Brick ID type - support "supplied-from" device property for generic ACPI/pdata support - support strings for sysfs properties representing enums - introduce battery-info (backend is DT only for now) - provide reboot-mode header globally * Misc. fixes -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE72YNB0Y/i3JqeVQT2O7X88g7+poFAllbV3gACgkQ2O7X88g7 +pq5bw/8CfLQpgTgMzsehhb1EW03Bj5X7tmJKyb5w19Zmo1gwa1JMu9O30p4tAJa pid3LsQDBkcVCSn3QWFtVPe37Q3C1YgiatvdmPiaIbk5l62WTdPrBxKzFJCqPvke 1Cb8bSpRi+EQ73DFVNuMZjAHl/eNwsS1/hiDQNBOPBnv3bZDtoSmYS3+7f6alSpD yFLdqSUr6RbP5gxesjaws5COgWMtxBzu8nDOtPaeT52Uxr6QW3T1RPmelj3paPHm kkd2z18q6k5vqHmMSoisNxaguYyKSvfTZBL/pwkC3MgtcZWcOBLchCg1vwrmTDkv sBzpVtgVNHTE/T0pEu4cbYmMdI6qsDiNeM0GxDAe/iOSKqrRFCEWWNbitBRTKthK XWd++er+wRJ6P9wx6t74Bb1AmneHWXAyB/hY8ma9LKpZpAV1NwCyJmAzWFCVCoz5 eG9ZcakW/VXF0ROjD3IxRUMYZOrOuomeZEyOxxELls4y6MJuLEafn7Kyh0yBzx4D bxbvmHxhHxJPjnPvloJjD1vi/QVbsG1U54EJqLZlcc+wlYj/I2kNMu8emiu6khUi q7kEvRSY5t0M9J44MyNaDYutt69OgXeuT6MDNkAY24l6lQsv8MQVeKwz5Cwk/Noq hfpIjBwcibjvKWbkDAuF/wnVIjwYdXWLVRBU6Jop5GQK9lNZN6A= =SsiM -----END PGP SIGNATURE----- Merge tag 'for-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply and reset updates from Sebastian Reichel: "New drivers: - Linear ltc3651 charger driver - Motorola CPCAP battery fuel-gauge driver New chip/feature support: - bq27xxx: prepare for chip data setup - axp20x_battery: support max charge current setup New core features: - add Apple Brick ID type - support "supplied-from" device property for generic ACPI/pdata support - support strings for sysfs properties representing enums - introduce battery-info (backend is DT only for now) - provide reboot-mode header globally .. and misc fixes" * tag 'for-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (39 commits) power: supply: sbs-battery: Don't needlessly set CAPACITY_MODE power: supply: sbs-battery: Prevent CAPACITY_MODE races power: supply: bq24735: remove incorrect le16_to_cpu calls power: supply: sbs-battery: remove incorrect le16_to_cpu calls power: supply: cpcap-charger: Add missing power_supply_config power: supply: twl4030-charger: move allocation of iio channel to the beginning power: supply: twl4030-charger: allocate iio by devm_iio_channel_get() and fix error path power: supply: core: constify psy_tcd_ops. dt-bindings: power: supply: cpcap-battery: Add power-supplies property dt-bindings: power: supply: move max8903-charger.txt to proper location dt-bindings: power: supply: move maxim,max14656.txt to proper location power: supply: twl4030_charger: Use sysfs_match_string() helper power: reset: reboot-mode: Make include file global power: supply: axp20x_battery: add DT support for battery max constant charge current power: supply: axp20x_battery: add support for DT battery power: supply: bq27xxx: Add power_supply_battery_info support power: supply: bq27xxx: Add chip data memory read/write support power: supply: bq27xxx: Add bulk transfer bus methods dt-bindings: power: supply: bq27xxx: Add monitored-battery documentation power: supply: core: Add power_supply_prop_precharge ...
This commit is contained in:
commit
a897a10141
31 changed files with 2204 additions and 233 deletions
|
|
@ -40,6 +40,9 @@ struct bq27xxx_platform_data {
|
|||
struct bq27xxx_device_info;
|
||||
struct bq27xxx_access_methods {
|
||||
int (*read)(struct bq27xxx_device_info *di, u8 reg, bool single);
|
||||
int (*write)(struct bq27xxx_device_info *di, u8 reg, int value, bool single);
|
||||
int (*read_bulk)(struct bq27xxx_device_info *di, u8 reg, u8 *data, int len);
|
||||
int (*write_bulk)(struct bq27xxx_device_info *di, u8 reg, u8 *data, int len);
|
||||
};
|
||||
|
||||
struct bq27xxx_reg_cache {
|
||||
|
|
@ -60,7 +63,10 @@ struct bq27xxx_device_info {
|
|||
struct device *dev;
|
||||
int id;
|
||||
enum bq27xxx_chip chip;
|
||||
bool ram_chip;
|
||||
const char *name;
|
||||
struct bq27xxx_dm_reg *dm_regs;
|
||||
u32 unseal_key;
|
||||
struct bq27xxx_access_methods bus;
|
||||
struct bq27xxx_reg_cache cache;
|
||||
int charge_design_full;
|
||||
|
|
|
|||
|
|
@ -146,6 +146,7 @@ enum power_supply_property {
|
|||
POWER_SUPPLY_PROP_TIME_TO_FULL_AVG,
|
||||
POWER_SUPPLY_PROP_TYPE, /* use power_supply.type instead */
|
||||
POWER_SUPPLY_PROP_SCOPE,
|
||||
POWER_SUPPLY_PROP_PRECHARGE_CURRENT,
|
||||
POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT,
|
||||
POWER_SUPPLY_PROP_CALIBRATE,
|
||||
/* Properties of type `const char *' */
|
||||
|
|
@ -159,13 +160,14 @@ enum power_supply_type {
|
|||
POWER_SUPPLY_TYPE_BATTERY,
|
||||
POWER_SUPPLY_TYPE_UPS,
|
||||
POWER_SUPPLY_TYPE_MAINS,
|
||||
POWER_SUPPLY_TYPE_USB, /* Standard Downstream Port */
|
||||
POWER_SUPPLY_TYPE_USB_DCP, /* Dedicated Charging Port */
|
||||
POWER_SUPPLY_TYPE_USB_CDP, /* Charging Downstream Port */
|
||||
POWER_SUPPLY_TYPE_USB_ACA, /* Accessory Charger Adapters */
|
||||
POWER_SUPPLY_TYPE_USB_TYPE_C, /* Type C Port */
|
||||
POWER_SUPPLY_TYPE_USB_PD, /* Power Delivery Port */
|
||||
POWER_SUPPLY_TYPE_USB_PD_DRP, /* PD Dual Role Port */
|
||||
POWER_SUPPLY_TYPE_USB, /* Standard Downstream Port */
|
||||
POWER_SUPPLY_TYPE_USB_DCP, /* Dedicated Charging Port */
|
||||
POWER_SUPPLY_TYPE_USB_CDP, /* Charging Downstream Port */
|
||||
POWER_SUPPLY_TYPE_USB_ACA, /* Accessory Charger Adapters */
|
||||
POWER_SUPPLY_TYPE_USB_TYPE_C, /* Type C Port */
|
||||
POWER_SUPPLY_TYPE_USB_PD, /* Power Delivery Port */
|
||||
POWER_SUPPLY_TYPE_USB_PD_DRP, /* PD Dual Role Port */
|
||||
POWER_SUPPLY_TYPE_APPLE_BRICK_ID, /* Apple Charging Method */
|
||||
};
|
||||
|
||||
enum power_supply_notifier_events {
|
||||
|
|
@ -288,6 +290,25 @@ struct power_supply_info {
|
|||
int use_for_apm;
|
||||
};
|
||||
|
||||
/*
|
||||
* This is the recommended struct to manage static battery parameters,
|
||||
* populated by power_supply_get_battery_info(). Most platform drivers should
|
||||
* use these for consistency.
|
||||
* Its field names must correspond to elements in enum power_supply_property.
|
||||
* The default field value is -EINVAL.
|
||||
* Power supply class itself doesn't use this.
|
||||
*/
|
||||
|
||||
struct power_supply_battery_info {
|
||||
int energy_full_design_uwh; /* microWatt-hours */
|
||||
int charge_full_design_uah; /* microAmp-hours */
|
||||
int voltage_min_design_uv; /* microVolts */
|
||||
int precharge_current_ua; /* microAmps */
|
||||
int charge_term_current_ua; /* microAmps */
|
||||
int constant_charge_current_max_ua; /* microAmps */
|
||||
int constant_charge_voltage_max_uv; /* microVolts */
|
||||
};
|
||||
|
||||
extern struct atomic_notifier_head power_supply_notifier;
|
||||
extern int power_supply_reg_notifier(struct notifier_block *nb);
|
||||
extern void power_supply_unreg_notifier(struct notifier_block *nb);
|
||||
|
|
@ -306,6 +327,9 @@ static inline struct power_supply *
|
|||
devm_power_supply_get_by_phandle(struct device *dev, const char *property)
|
||||
{ return NULL; }
|
||||
#endif /* CONFIG_OF */
|
||||
|
||||
extern int power_supply_get_battery_info(struct power_supply *psy,
|
||||
struct power_supply_battery_info *info);
|
||||
extern void power_supply_changed(struct power_supply *psy);
|
||||
extern int power_supply_am_i_supplied(struct power_supply *psy);
|
||||
extern int power_supply_set_battery_charged(struct power_supply *psy);
|
||||
|
|
@ -359,6 +383,8 @@ static inline bool power_supply_is_amp_property(enum power_supply_property psp)
|
|||
case POWER_SUPPLY_PROP_CHARGE_NOW:
|
||||
case POWER_SUPPLY_PROP_CHARGE_AVG:
|
||||
case POWER_SUPPLY_PROP_CHARGE_COUNTER:
|
||||
case POWER_SUPPLY_PROP_PRECHARGE_CURRENT:
|
||||
case POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT:
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT:
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX:
|
||||
case POWER_SUPPLY_PROP_CURRENT_MAX:
|
||||
|
|
|
|||
18
include/linux/reboot-mode.h
Normal file
18
include/linux/reboot-mode.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef __REBOOT_MODE_H__
|
||||
#define __REBOOT_MODE_H__
|
||||
|
||||
struct reboot_mode_driver {
|
||||
struct device *dev;
|
||||
struct list_head head;
|
||||
int (*write)(struct reboot_mode_driver *reboot, unsigned int magic);
|
||||
struct notifier_block reboot_notifier;
|
||||
};
|
||||
|
||||
int reboot_mode_register(struct reboot_mode_driver *reboot);
|
||||
int reboot_mode_unregister(struct reboot_mode_driver *reboot);
|
||||
int devm_reboot_mode_register(struct device *dev,
|
||||
struct reboot_mode_driver *reboot);
|
||||
void devm_reboot_mode_unregister(struct device *dev,
|
||||
struct reboot_mode_driver *reboot);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue