Re: [PATCH] extcon: Add EXTCON_BATTERY type for battery presence

From: Chanwoo Choi
Date: Mon Jan 30 2023 - 09:18:04 EST


On 23. 1. 11. 18:00, Andrew Lien/WHQ/Wistron wrote:
> Sorry I didn't describe it in detail enough
>
> we have a standalone driver to do battery detection, this driver is separate from power_supply device driver
> and not just report uevet to userspace, we also need a method to notify other kernel driver "battery removal event"

As I commented, it is not good to detect the battery status by extcon
which only handle the external connector.
It means that you just try to use extcon subsystem to support 'publisher - subscriber'.


> it will be better if using same battery detection driver to support different platform charger driver.
>
> by the way, swappable battery usually have 4 pin connector (power / ground / ID / THERMAL)
> you can find some phone that support battery swap feature (like Samsung xcover 6 pro)
>
> -----Original Message-----
> From: Chanwoo Choi <cwchoi00@xxxxxxxxx>
> Sent: Tuesday, January 10, 2023 9:40 PM
> To: Andrew Lien/WHQ/Wistron <Andrew_Lien@xxxxxxxxxxx>; myungjoo.ham@xxxxxxxxxxx
> Cc: cw00.choi@xxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] extcon: Add EXTCON_BATTERY type for battery presence
>
> On 23. 1. 10. 11:36, andrew lien/WHQ/Wistron wrote:
>> This information can be useful to device that support battery swap,
>> for example allowing them to indicate that a battery is present or
>> not, so provide a standard way to report it to userspace.
>>
>> Signed-off-by: andrew lien/WHQ/Wistron <andrew_lien@xxxxxxxxxxx>
>> ---
>> drivers/extcon/extcon.c | 5 +++++
>> include/linux/extcon.h | 3 ++-
>> 2 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c index
>> b4df4372f097..6c47d23244c3 100644
>> --- a/drivers/extcon/extcon.c
>> +++ b/drivers/extcon/extcon.c
>> @@ -184,6 +184,11 @@ static const struct __extcon_info {
>> .id = EXTCON_MECHANICAL,
>> .name = "MECHANICAL",
>> },
>> + [EXTCON_BATTERY] = {
>> + .type = EXTCON_TYPE_MISC,
>> + .id = EXTCON_BATTERY,
>> + .name = "BATTERY",
>> + },
>>
>> { /* sentinel */ }
>> };
>> diff --git a/include/linux/extcon.h b/include/linux/extcon.h index
>> b0b4abb018ee..88210b481b6c 100644
>> --- a/include/linux/extcon.h
>> +++ b/include/linux/extcon.h
>> @@ -81,8 +81,9 @@
>> #define EXTCON_DOCK 60
>> #define EXTCON_JIG 61
>> #define EXTCON_MECHANICAL 62
>> +#define EXTCON_BATTERY 63
>>
>> -#define EXTCON_NUM 63
>> +#define EXTCON_NUM 64
>>
>> /*
>> * Define the properties of supported external connectors.
>
> Actually, battery is not external connector. The power_supply subsystem already provided the POWER_SUPPLY_PROP_PRESENT for the battery present. You have to develop the power_supply device driver and then use power_supply_changed() to send the uevent to user-space.
>
> --
> Best Regards,
> Samsung Electronics
> Chanwoo Choi
>
>
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
> This email contains confidential or legally privileged information and is for the sole use of its intended recipient.
> Any unauthorized review, use, copying or distribution of this email or the content of this email is strictly prohibited.
> If you are not the intended recipient, you may reply to the sender and should delete this e-mail immediately.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------

--
Best Regards,
Samsung Electronics
Chanwoo Choi