2023-01-10 03:51:09

by Andrew Lien/WHQ/Wistron

[permalink] [raw]
Subject: [PATCH] extcon: Add EXTCON_BATTERY type for battery presence

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 <[email protected]>
---
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.
--
2.25.1


2023-01-10 13:52:27

by Chanwoo Choi

[permalink] [raw]
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 <[email protected]>
> ---
> 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

2023-01-11 09:22:19

by Andrew Lien/WHQ/Wistron

[permalink] [raw]
Subject: RE: [PATCH] extcon: Add EXTCON_BATTERY type for battery presence

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"
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 <[email protected]>
Sent: Tuesday, January 10, 2023 9:40 PM
To: Andrew Lien/WHQ/Wistron <[email protected]>; [email protected]
Cc: [email protected]; [email protected]
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 <[email protected]>
> ---
> 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

2023-01-30 14:18:04

by Chanwoo Choi

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

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 <[email protected]>
> Sent: Tuesday, January 10, 2023 9:40 PM
> To: Andrew Lien/WHQ/Wistron <[email protected]>; [email protected]
> Cc: [email protected]; [email protected]
> 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 <[email protected]>
>> ---
>> 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