From 18e0f4ff9f131dca16c552906069b69da27aedc9 Mon Sep 17 00:00:00 2001 From: shengfei Xu Date: Sat, 11 Jun 2022 06:43:47 +0000 Subject: [PATCH] power_supply: Add power supply type "Charge Pump" Introduce a new power supply type "Charge Pump" under the power_supply class. Also, add power supply properties corresponding to power supply type charge pump. Signed-off-by: shengfei Xu Change-Id: Ib51bfd7c69b549cad4a254bd0c3f50629ea211a3 --- drivers/power/supply/power_supply_sysfs.c | 38 +++++++++++++++++++++++ include/linux/power_supply.h | 38 +++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c index a5e65636057d..aba8246cb0f7 100644 --- a/drivers/power/supply/power_supply_sysfs.c +++ b/drivers/power/supply/power_supply_sysfs.c @@ -57,6 +57,9 @@ static const char * const POWER_SUPPLY_TYPE_TEXT[] = { [POWER_SUPPLY_TYPE_USB_PD_DRP] = "USB_PD_DRP", [POWER_SUPPLY_TYPE_APPLE_BRICK_ID] = "BrickID", [POWER_SUPPLY_TYPE_WIRELESS] = "Wireless", +#if defined(CONFIG_NO_GKI) + [POWER_SUPPLY_TYPE_CHARGE_PUMP] = "Charge_Pump", +#endif }; static const char * const POWER_SUPPLY_USB_TYPE_TEXT[] = { @@ -208,6 +211,41 @@ static struct power_supply_attr power_supply_attrs[] = { POWER_SUPPLY_ATTR(MANUFACTURE_YEAR), POWER_SUPPLY_ATTR(MANUFACTURE_MONTH), POWER_SUPPLY_ATTR(MANUFACTURE_DAY), +#if defined(CONFIG_NO_GKI) + /* Charge pump properties */ + POWER_SUPPLY_ATTR(CP_ALARM_STATUS), + POWER_SUPPLY_ATTR(CP_BAT_OVP_ALARM), + POWER_SUPPLY_ATTR(CP_BAT_OCP_ALARM), + POWER_SUPPLY_ATTR(CP_BAT_UCP_ALARM), + POWER_SUPPLY_ATTR(CP_BUS_OVP_ALARM), + POWER_SUPPLY_ATTR(CP_BUS_OCP_ALARM), + POWER_SUPPLY_ATTR(CP_BAT_THERM_ALARM), + POWER_SUPPLY_ATTR(CP_BUS_THERM_ALARM), + POWER_SUPPLY_ATTR(CP_DIE_THERM_ALARM), + POWER_SUPPLY_ATTR(CP_FAULT_STATUS), + POWER_SUPPLY_ATTR(CP_BAT_OVP_FAULT), + POWER_SUPPLY_ATTR(CP_BAT_OCP_FAULT), + POWER_SUPPLY_ATTR(CP_BUS_OVP_FAULT), + POWER_SUPPLY_ATTR(CP_BUS_OCP_FAULT), + POWER_SUPPLY_ATTR(CP_BAT_THERM_FAULT), + POWER_SUPPLY_ATTR(CP_BUS_THERM_FAULT), + POWER_SUPPLY_ATTR(CP_DIE_THERM_FAULT), + POWER_SUPPLY_ATTR(CP_VBUS_ERROR_STATUS), + POWER_SUPPLY_ATTR(CP_VBUS_HERROR_STATUS), + POWER_SUPPLY_ATTR(CP_VBUS_LERROR_STATUS), + POWER_SUPPLY_ATTR(CP_CHARGING_ENABLED), + POWER_SUPPLY_ATTR(CP_WDT_EN), + POWER_SUPPLY_ATTR(CP_VBUS), + POWER_SUPPLY_ATTR(CP_IBUS), + POWER_SUPPLY_ATTR(CP_SWITCHER_EN), + POWER_SUPPLY_ATTR(CP_BAT_TEMPERATURE), + POWER_SUPPLY_ATTR(CP_BUS_TEMPERATURE), + POWER_SUPPLY_ATTR(CP_DIE_TEMPERATURE), + POWER_SUPPLY_ATTR(CP_ISNS), + POWER_SUPPLY_ATTR(CP_TOGGLE_SWITCHER), + POWER_SUPPLY_ATTR(CP_IRQ_STATUS), + POWER_SUPPLY_ATTR(CP_ILIM), +#endif /* Properties of type `const char *' */ POWER_SUPPLY_ATTR(MODEL_NAME), POWER_SUPPLY_ATTR(MANUFACTURER), diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index a8fa073a09b6..c452d59e0cad 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -174,6 +174,41 @@ enum power_supply_property { POWER_SUPPLY_PROP_MANUFACTURE_YEAR, POWER_SUPPLY_PROP_MANUFACTURE_MONTH, POWER_SUPPLY_PROP_MANUFACTURE_DAY, +#if defined(CONFIG_NO_GKI) + /* Charge pump properties */ + POWER_SUPPLY_PROP_CP_ALARM_STATUS, + POWER_SUPPLY_PROP_CP_BAT_OVP_ALARM, + POWER_SUPPLY_PROP_CP_BAT_OCP_ALARM, + POWER_SUPPLY_PROP_CP_BAT_UCP_ALARM, + POWER_SUPPLY_PROP_CP_BUS_OVP_ALARM, + POWER_SUPPLY_PROP_CP_BUS_OCP_ALARM, + POWER_SUPPLY_PROP_CP_BAT_THERM_ALARM, + POWER_SUPPLY_PROP_CP_BUS_THERM_ALARM, + POWER_SUPPLY_PROP_CP_DIE_THERM_ALARM, + POWER_SUPPLY_PROP_CP_FAULT_STATUS, + POWER_SUPPLY_PROP_CP_BAT_OVP_FAULT, + POWER_SUPPLY_PROP_CP_BAT_OCP_FAULT, + POWER_SUPPLY_PROP_CP_BUS_OVP_FAULT, + POWER_SUPPLY_PROP_CP_BUS_OCP_FAULT, + POWER_SUPPLY_PROP_CP_BAT_THERM_FAULT, + POWER_SUPPLY_PROP_CP_BUS_THERM_FAULT, + POWER_SUPPLY_PROP_CP_DIE_THERM_FAULT, + POWER_SUPPLY_PROP_CP_VBUS_ERROR_STATUS, + POWER_SUPPLY_PROP_CP_VBUS_HERROR_STATUS, + POWER_SUPPLY_PROP_CP_VBUS_LERROR_STATUS, + POWER_SUPPLY_PROP_CP_CHARGING_ENABLED, + POWER_SUPPLY_PROP_CP_WDT_EN, + POWER_SUPPLY_PROP_CP_VBUS, + POWER_SUPPLY_PROP_CP_IBUS, + POWER_SUPPLY_PROP_CP_SWITCHER_EN, + POWER_SUPPLY_PROP_CP_BAT_TEMPERATURE, + POWER_SUPPLY_PROP_CP_BUS_TEMPERATURE, + POWER_SUPPLY_PROP_CP_DIE_TEMPERATURE, + POWER_SUPPLY_PROP_CP_ISNS, + POWER_SUPPLY_PROP_CP_TOGGLE_SWITCHER, + POWER_SUPPLY_PROP_CP_IRQ_STATUS, + POWER_SUPPLY_PROP_CP_ILIM, +#endif /* Properties of type `const char *' */ POWER_SUPPLY_PROP_MODEL_NAME, POWER_SUPPLY_PROP_MANUFACTURER, @@ -194,6 +229,9 @@ enum power_supply_type { POWER_SUPPLY_TYPE_USB_PD_DRP, /* PD Dual Role Port */ POWER_SUPPLY_TYPE_APPLE_BRICK_ID, /* Apple Charging Method */ POWER_SUPPLY_TYPE_WIRELESS, /* Wireless */ +#if defined(CONFIG_NO_GKI) + POWER_SUPPLY_TYPE_CHARGE_PUMP, /* Charge Pump */ +#endif }; enum power_supply_usb_type {