* [PATCH 1/2] platform/x86: x86-android-tablets: Add generic_lipo_4v2_battery info @ 2025-06-08 20:41 Hans de Goede 2025-06-08 20:41 ` [PATCH 2/2] platform/x86: x86-android-tablets: Add ovc-capacity-table info Hans de Goede 0 siblings, 1 reply; 4+ messages in thread From: Hans de Goede @ 2025-06-08 20:41 UTC (permalink / raw) To: Ilpo Järvinen, Andy Shevchenko; +Cc: Hans de Goede, platform-driver-x86 Move the asus_tf103c_battery_node to shared-psy-info.c and rename it to generic_lipo_4v2_battery_node. This is a preparation patch for adding ovc-capacity-table info to the battery nodes. Signed-off-by: Hans de Goede <hansg@kernel.org> --- .../platform/x86/x86-android-tablets/asus.c | 21 +++---------------- .../x86/x86-android-tablets/shared-psy-info.c | 16 ++++++++++++++ .../x86/x86-android-tablets/shared-psy-info.h | 1 + 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/drivers/platform/x86/x86-android-tablets/asus.c b/drivers/platform/x86/x86-android-tablets/asus.c index 7dde63b9943f..97cd14c1fd23 100644 --- a/drivers/platform/x86/x86-android-tablets/asus.c +++ b/drivers/platform/x86/x86-android-tablets/asus.c @@ -206,24 +206,9 @@ static const struct software_node asus_tf103c_touchscreen_node = { .properties = asus_tf103c_touchscreen_props, }; -static const struct property_entry asus_tf103c_battery_props[] = { - PROPERTY_ENTRY_STRING("compatible", "simple-battery"), - PROPERTY_ENTRY_STRING("device-chemistry", "lithium-ion-polymer"), - PROPERTY_ENTRY_U32("precharge-current-microamp", 256000), - PROPERTY_ENTRY_U32("charge-term-current-microamp", 128000), - PROPERTY_ENTRY_U32("constant-charge-current-max-microamp", 2048000), - PROPERTY_ENTRY_U32("constant-charge-voltage-max-microvolt", 4208000), - PROPERTY_ENTRY_U32("factory-internal-resistance-micro-ohms", 150000), - { } -}; - -static const struct software_node asus_tf103c_battery_node = { - .properties = asus_tf103c_battery_props, -}; - static const struct property_entry asus_tf103c_bq24190_props[] = { PROPERTY_ENTRY_STRING_ARRAY_LEN("supplied-from", tusb1211_chg_det_psy, 1), - PROPERTY_ENTRY_REF("monitored-battery", &asus_tf103c_battery_node), + PROPERTY_ENTRY_REF("monitored-battery", &generic_lipo_4v2_battery_node), PROPERTY_ENTRY_U32("ti,system-minimum-microvolt", 3600000), PROPERTY_ENTRY_BOOL("omit-battery-class"), PROPERTY_ENTRY_BOOL("disable-reset"), @@ -236,7 +221,7 @@ static const struct software_node asus_tf103c_bq24190_node = { static const struct property_entry asus_tf103c_ug3105_props[] = { PROPERTY_ENTRY_STRING_ARRAY_LEN("supplied-from", bq24190_psy, 1), - PROPERTY_ENTRY_REF("monitored-battery", &asus_tf103c_battery_node), + PROPERTY_ENTRY_REF("monitored-battery", &generic_lipo_4v2_battery_node), PROPERTY_ENTRY_U32("upisemi,rsns-microohm", 5000), { } }; @@ -321,6 +306,6 @@ const struct x86_dev_info asus_tf103c_info __initconst = { .gpio_button = &asus_me176c_tf103c_lid, .gpio_button_count = 1, .gpiod_lookup_tables = asus_tf103c_gpios, - .bat_swnode = &asus_tf103c_battery_node, + .bat_swnode = &generic_lipo_4v2_battery_node, .modules = bq24190_modules, }; diff --git a/drivers/platform/x86/x86-android-tablets/shared-psy-info.c b/drivers/platform/x86/x86-android-tablets/shared-psy-info.c index a46fa15acfb1..55da57477153 100644 --- a/drivers/platform/x86/x86-android-tablets/shared-psy-info.c +++ b/drivers/platform/x86/x86-android-tablets/shared-psy-info.c @@ -39,6 +39,22 @@ const struct software_node fg_bq25890_supply_node = { .properties = fg_bq25890_supply_props, }; +/* Standard LiPo (max 4.2V) settings used by most devs with a LiPo battery */ +static const struct property_entry generic_lipo_4v2_battery_props[] = { + PROPERTY_ENTRY_STRING("compatible", "simple-battery"), + PROPERTY_ENTRY_STRING("device-chemistry", "lithium-ion-polymer"), + PROPERTY_ENTRY_U32("precharge-current-microamp", 256000), + PROPERTY_ENTRY_U32("charge-term-current-microamp", 128000), + PROPERTY_ENTRY_U32("constant-charge-current-max-microamp", 2048000), + PROPERTY_ENTRY_U32("constant-charge-voltage-max-microvolt", 4208000), + PROPERTY_ENTRY_U32("factory-internal-resistance-micro-ohms", 150000), + { } +}; + +const struct software_node generic_lipo_4v2_battery_node = { + .properties = generic_lipo_4v2_battery_props, +}; + /* LiPo HighVoltage (max 4.35V) settings used by most devs with a HV battery */ static const struct property_entry generic_lipo_hv_4v35_battery_props[] = { PROPERTY_ENTRY_STRING("compatible", "simple-battery"), diff --git a/drivers/platform/x86/x86-android-tablets/shared-psy-info.h b/drivers/platform/x86/x86-android-tablets/shared-psy-info.h index c2d2968cddc2..bcf9845ad275 100644 --- a/drivers/platform/x86/x86-android-tablets/shared-psy-info.h +++ b/drivers/platform/x86/x86-android-tablets/shared-psy-info.h @@ -21,6 +21,7 @@ extern const char * const bq25890_psy[]; extern const struct software_node fg_bq24190_supply_node; extern const struct software_node fg_bq25890_supply_node; +extern const struct software_node generic_lipo_4v2_battery_node; extern const struct software_node generic_lipo_hv_4v35_battery_node; extern struct bq24190_platform_data bq24190_pdata; -- 2.49.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] platform/x86: x86-android-tablets: Add ovc-capacity-table info 2025-06-08 20:41 [PATCH 1/2] platform/x86: x86-android-tablets: Add generic_lipo_4v2_battery info Hans de Goede @ 2025-06-08 20:41 ` Hans de Goede 2025-06-09 9:34 ` Andy Shevchenko 0 siblings, 1 reply; 4+ messages in thread From: Hans de Goede @ 2025-06-08 20:41 UTC (permalink / raw) To: Ilpo Järvinen, Andy Shevchenko; +Cc: Hans de Goede, platform-driver-x86 Add ovc-capacity-table info to the generic battery nodes. The values come from the ug3105 driver which currently hardcodes these values. The ug3105 driver will be modified to stop hardcoding this and instead get the values from device-properties. Signed-off-by: Hans de Goede <hansg@kernel.org> --- .../x86/x86-android-tablets/shared-psy-info.c | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/drivers/platform/x86/x86-android-tablets/shared-psy-info.c b/drivers/platform/x86/x86-android-tablets/shared-psy-info.c index 55da57477153..df6e95bd132f 100644 --- a/drivers/platform/x86/x86-android-tablets/shared-psy-info.c +++ b/drivers/platform/x86/x86-android-tablets/shared-psy-info.c @@ -39,6 +39,58 @@ const struct software_node fg_bq25890_supply_node = { .properties = fg_bq25890_supply_props, }; +static const u32 generic_lipo_battery_ovc_cap_celcius[] = { 25 }; + +static const u32 generic_lipo_4v2_battery_ovc_cap_table0[] = { + 4200000, 100, + 4150000, 95, + 4110000, 90, + 4075000, 85, + 4020000, 80, + 3982500, 75, + 3945000, 70, + 3907500, 65, + 3870000, 60, + 3853333, 55, + 3836667, 50, + 3820000, 45, + 3803333, 40, + 3786667, 35, + 3770000, 30, + 3750000, 25, + 3730000, 20, + 3710000, 15, + 3690000, 10, + 3610000, 5, + 3350000, 0, +}; + +static const u32 generic_lipo_hv_4v35_battery_ovc_cap_table0[] = { + 4300000, 100, + 4250000, 96, + 4200000, 91, + 4150000, 86, + 4110000, 82, + 4075000, 77, + 4020000, 73, + 3982500, 68, + 3945000, 64, + 3907500, 59, + 3870000, 55, + 3853333, 50, + 3836667, 45, + 3820000, 41, + 3803333, 36, + 3786667, 32, + 3770000, 27, + 3750000, 23, + 3730000, 18, + 3710000, 14, + 3690000, 9, + 3610000, 5, + 3350000, 0, +}; + /* Standard LiPo (max 4.2V) settings used by most devs with a LiPo battery */ static const struct property_entry generic_lipo_4v2_battery_props[] = { PROPERTY_ENTRY_STRING("compatible", "simple-battery"), @@ -48,6 +100,10 @@ static const struct property_entry generic_lipo_4v2_battery_props[] = { PROPERTY_ENTRY_U32("constant-charge-current-max-microamp", 2048000), PROPERTY_ENTRY_U32("constant-charge-voltage-max-microvolt", 4208000), PROPERTY_ENTRY_U32("factory-internal-resistance-micro-ohms", 150000), + PROPERTY_ENTRY_U32_ARRAY("ocv-capacity-celsius", + generic_lipo_battery_ovc_cap_celcius), + PROPERTY_ENTRY_U32_ARRAY("ocv-capacity-table-0", + generic_lipo_4v2_battery_ovc_cap_table0), { } }; @@ -64,6 +120,10 @@ static const struct property_entry generic_lipo_hv_4v35_battery_props[] = { PROPERTY_ENTRY_U32("constant-charge-current-max-microamp", 1856000), PROPERTY_ENTRY_U32("constant-charge-voltage-max-microvolt", 4352000), PROPERTY_ENTRY_U32("factory-internal-resistance-micro-ohms", 150000), + PROPERTY_ENTRY_U32_ARRAY("ocv-capacity-celsius", + generic_lipo_battery_ovc_cap_celcius), + PROPERTY_ENTRY_U32_ARRAY("ocv-capacity-table-0", + generic_lipo_hv_4v35_battery_ovc_cap_table0), { } }; -- 2.49.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] platform/x86: x86-android-tablets: Add ovc-capacity-table info 2025-06-08 20:41 ` [PATCH 2/2] platform/x86: x86-android-tablets: Add ovc-capacity-table info Hans de Goede @ 2025-06-09 9:34 ` Andy Shevchenko 2025-06-09 10:40 ` Hans de Goede 0 siblings, 1 reply; 4+ messages in thread From: Andy Shevchenko @ 2025-06-09 9:34 UTC (permalink / raw) To: Hans de Goede; +Cc: Ilpo Järvinen, Andy Shevchenko, platform-driver-x86 On Sun, Jun 8, 2025 at 11:41 PM Hans de Goede <hansg@kernel.org> wrote: > > Add ovc-capacity-table info to the generic battery nodes. > > The values come from the ug3105 driver which currently hardcodes these > values. The ug3105 driver will be modified to stop hardcoding this and > instead get the values from device-properties. Both looks good to me, Reviewed-by: Andy Shevchenko <andy@kernel.org> One minor question/nit-pick below. ... > +static const u32 generic_lipo_4v2_battery_ovc_cap_table0[] = { > + 4200000, 100, > + 4150000, 95, > + 4110000, 90, > + 4075000, 85, > + 4020000, 80, > + 3982500, 75, > + 3945000, 70, > + 3907500, 65, > + 3870000, 60, > + 3853333, 55, > + 3836667, 50, > + 3820000, 45, > + 3803333, 40, > + 3786667, 35, > + 3770000, 30, > + 3750000, 25, > + 3730000, 20, > + 3710000, 15, > + 3690000, 10, > + 3610000, 5, > + 3350000, 0, To me it sounds like a percentage and can't go below 0, meaning that this is actually a terminator, so no trailing comma is required. > +}; > + > +static const u32 generic_lipo_hv_4v35_battery_ovc_cap_table0[] = { > + 4300000, 100, > + 4250000, 96, > + 4200000, 91, > + 4150000, 86, > + 4110000, 82, > + 4075000, 77, > + 4020000, 73, > + 3982500, 68, > + 3945000, 64, > + 3907500, 59, > + 3870000, 55, > + 3853333, 50, > + 3836667, 45, > + 3820000, 41, > + 3803333, 36, > + 3786667, 32, > + 3770000, 27, > + 3750000, 23, > + 3730000, 18, > + 3710000, 14, > + 3690000, 9, > + 3610000, 5, > + 3350000, 0, Ditto. > +}; -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] platform/x86: x86-android-tablets: Add ovc-capacity-table info 2025-06-09 9:34 ` Andy Shevchenko @ 2025-06-09 10:40 ` Hans de Goede 0 siblings, 0 replies; 4+ messages in thread From: Hans de Goede @ 2025-06-09 10:40 UTC (permalink / raw) To: Andy Shevchenko; +Cc: Ilpo Järvinen, Andy Shevchenko, platform-driver-x86 Hi Andy, On 9-Jun-25 11:34 AM, Andy Shevchenko wrote: > On Sun, Jun 8, 2025 at 11:41 PM Hans de Goede <hansg@kernel.org> wrote: >> >> Add ovc-capacity-table info to the generic battery nodes. >> >> The values come from the ug3105 driver which currently hardcodes these >> values. The ug3105 driver will be modified to stop hardcoding this and >> instead get the values from device-properties. > > Both looks good to me, > Reviewed-by: Andy Shevchenko <andy@kernel.org> > > One minor question/nit-pick below. > > ... > >> +static const u32 generic_lipo_4v2_battery_ovc_cap_table0[] = { >> + 4200000, 100, >> + 4150000, 95, >> + 4110000, 90, >> + 4075000, 85, >> + 4020000, 80, >> + 3982500, 75, >> + 3945000, 70, >> + 3907500, 65, >> + 3870000, 60, >> + 3853333, 55, >> + 3836667, 50, >> + 3820000, 45, >> + 3803333, 40, >> + 3786667, 35, >> + 3770000, 30, >> + 3750000, 25, >> + 3730000, 20, >> + 3710000, 15, >> + 3690000, 10, >> + 3610000, 5, >> + 3350000, 0, > > To me it sounds like a percentage and can't go below 0, meaning that > this is actually a terminator, so no trailing comma is required. I was already wondering whether to keep the comma or not. I kept it since this is not a "formal" terminator, like e.g. NULL at the end of a variable-length array of strings. Anyways I'm fine with removing it. I'll send a v2 removing it. Regards, Hans > >> +}; >> + >> +static const u32 generic_lipo_hv_4v35_battery_ovc_cap_table0[] = { >> + 4300000, 100, >> + 4250000, 96, >> + 4200000, 91, >> + 4150000, 86, >> + 4110000, 82, >> + 4075000, 77, >> + 4020000, 73, >> + 3982500, 68, >> + 3945000, 64, >> + 3907500, 59, >> + 3870000, 55, >> + 3853333, 50, >> + 3836667, 45, >> + 3820000, 41, >> + 3803333, 36, >> + 3786667, 32, >> + 3770000, 27, >> + 3750000, 23, >> + 3730000, 18, >> + 3710000, 14, >> + 3690000, 9, >> + 3610000, 5, >> + 3350000, 0, > > Ditto. > >> +}; > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-06-09 10:40 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-08 20:41 [PATCH 1/2] platform/x86: x86-android-tablets: Add generic_lipo_4v2_battery info Hans de Goede 2025-06-08 20:41 ` [PATCH 2/2] platform/x86: x86-android-tablets: Add ovc-capacity-table info Hans de Goede 2025-06-09 9:34 ` Andy Shevchenko 2025-06-09 10:40 ` Hans de Goede
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.