Re: [PATCH] extcon: Modify the id and name of external connector

From: Roger Quadros
Date: Mon Oct 05 2015 - 06:49:16 EST


Chanwoo,

On 05/10/15 12:04, Chanwoo Choi wrote:
> Hi Roger,
>
> On 2015ë 10ì 05ì 18:01, Chanwoo Choi wrote:
>> Hi Roger,
>>
>> On 2015ë 10ì 05ì 17:26, Roger Quadros wrote:
>>> Chanwoo,
>>>
>>> On 04/10/15 06:45, Chanwoo Choi wrote:
>>>> This patch modifies the id and name of external connector with the additional
>>>> prefix to clarify both attribute and meaning of external connector as following:
>>>> - EXTCON_CHG_* mean the charger connector.
>>>> - EXTCON_JACK_* mean the jack connector.
>>>> - EXTCON_DISP_* mean the display port connector.
>>>>
>>>> Following table show the new name of external connector with old name:
>>>> -------------------------------------------------
>>>> Old extcon name | New extcon name |
>>>> -------------------------------------------------
>>>> EXTCON_TA | EXTCON_CHG_USB_DCP |
>>>> EXTCON_FAST_CHARGER | EXTCON_CHG_USB_FAST |
>>>> EXTCON_SLOW_CHARGER | EXTCON_CHG_USB_SLOW |
>>>> EXTCON_CHARGE_DOWNSTREAM| EXTCON_CHG_USB_CDP |
>>>> -------------------------------------------------
>>>> EXTCON_MICROPHONE | EXTCON_JACK_MICROPHONE|
>>>> EXTCON_HEADPHONE | EXTCON_JACK_HEADPHONE |
>>>> EXTCON_LINE_IN | EXTCON_JACK_LINE_IN |
>>>> EXTCON_LINE_OUT | EXTCON_JACK_LINE_OUT |
>>>> EXTCON_VIDEO_IN | EXTCON_JACK_VIDEO_IN |
>>>> EXTCON_VIDEO_OUT | EXTCON_JACK_VIDEO_OUT |
>>>> EXTCON_SPDIF_IN | EXTCON_JACK_SPDIF_IN |
>>>> EXTCON_SPDIF_OUT | EXTCON_JACK_SPDIF_OUT |
>>>> -------------------------------------------------
>>>> EXTCON_HMDI | EXTCON_DISP_HDMI |
>>>> EXTCON_MHL | EXTCON_DISP_MHL |
>>>> EXTCON_DVI | EXTCON_DISP_DVI |
>>>> EXTCON_VGA | EXTCON_DISP_VGA |
>>>> -------------------------------------------------
>>>>
>>>> And, when altering the name of USB charger connector, EXTCON refers to the
>>>> "USB battery charging specification"[1] to use the standard name of USB
>>>> charging port as following. Following name of USB charging port are already used
>>>> in power_supply subsystem. We chan check it on patch[2].
>>>> - EXTCON_CHG_USB /* Standard Downstream Port */
>>>> - EXTCON_CHG_USB_DCP /* Dedicated Charging Port */
>>>> - EXTCON_CHG_USB_CDP /* Charging Downstream Port */
>>>> - EXTCON_CHG_USB_ACA /* Accessory Charging Adapter */
>>>>
>>>> [1] http://www.usb.org/developers/docs/devclass_docs/USB_Battery_Charging_1.2.pdf
>>>> [2] commit 85efc8a18ce ("[PATCH] power_supply: Add types for USB chargers")
>>>>
>>>> Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
>>>> ---
>>>> drivers/extcon/extcon-arizona.c | 18 ++++++------
>>>> drivers/extcon/extcon-axp288.c | 12 ++++----
>>>> drivers/extcon/extcon-max14577.c | 18 ++++++------
>>>> drivers/extcon/extcon-max77693.c | 32 +++++++++++----------
>>>> drivers/extcon/extcon-max77843.c | 27 ++++++++++--------
>>>> drivers/extcon/extcon-max8997.c | 21 +++++++-------
>>>> drivers/extcon/extcon-rt8973a.c | 4 +--
>>>> drivers/extcon/extcon-sm5502.c | 4 +--
>>>> drivers/extcon/extcon.c | 60 ++++++++++++++++++++-------------------
>>>> include/linux/extcon.h | 61 +++++++++++++++++++++++-----------------
>>>> 10 files changed, 138 insertions(+), 119 deletions(-)
>>>>
>>>
>>> <snip>
>>>
>>>> diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
>>>> index 8dd0af1..505a028 100644
>>>> --- a/drivers/extcon/extcon.c
>>>> +++ b/drivers/extcon/extcon.c
>>>> @@ -39,37 +39,39 @@
>>>> #define CABLE_NAME_MAX 30
>>>>
>>>> static const char *extcon_name[] = {
>>>> - [EXTCON_NONE] = "NONE",
>>>> + [EXTCON_NONE] = "EXTCON_NONE",
>>>>
>>>> /* USB external connector */
>>>> - [EXTCON_USB] = "USB",
>>>> - [EXTCON_USB_HOST] = "USB-HOST",
>>>> -
>>>> - /* Charger external connector */
>>>> - [EXTCON_TA] = "TA",
>>>> - [EXTCON_FAST_CHARGER] = "FAST-CHARGER",
>>>> - [EXTCON_SLOW_CHARGER] = "SLOW-CHARGER",
>>>> - [EXTCON_CHARGE_DOWNSTREAM] = "CHARGE-DOWNSTREAM",
>>>> -
>>>> - /* Audio/Video external connector */
>>>> - [EXTCON_LINE_IN] = "LINE-IN",
>>>> - [EXTCON_LINE_OUT] = "LINE-OUT",
>>>> - [EXTCON_MICROPHONE] = "MICROPHONE",
>>>> - [EXTCON_HEADPHONE] = "HEADPHONE",
>>>> -
>>>> - [EXTCON_HDMI] = "HDMI",
>>>> - [EXTCON_MHL] = "MHL",
>>>> - [EXTCON_DVI] = "DVI",
>>>> - [EXTCON_VGA] = "VGA",
>>>> - [EXTCON_SPDIF_IN] = "SPDIF-IN",
>>>> - [EXTCON_SPDIF_OUT] = "SPDIF-OUT",
>>>> - [EXTCON_VIDEO_IN] = "VIDEO-IN",
>>>> - [EXTCON_VIDEO_OUT] = "VIDEO-OUT",
>>>> -
>>>> - /* Etc external connector */
>>>> - [EXTCON_DOCK] = "DOCK",
>>>> - [EXTCON_JIG] = "JIG",
>>>> - [EXTCON_MECHANICAL] = "MECHANICAL",
>>>> + [EXTCON_USB] = "EXTCON_USB",
>>>> + [EXTCON_USB_HOST] = "EXTCON_USB_HOST",
>>>> +
>>>> + /* Charging external connector */
>>>> + [EXTCON_CHG_USB] = "EXTCON_CHG_USB",
>>>> + [EXTCON_CHG_USB_FAST] = "EXTCON_CHG_USB_FAST",
>>>> + [EXTCON_CHG_USB_SLOW] = "EXTCON_CHG_USB_SLOW",
>>>
>>> How does FAST & SLOW correlate to USB specifications?
>>
>> There is no specification about FAST & SLOW USB charger.
>> Just, the datasheet of MUIC (Micro-USB Interface Circuit) device
>> can detect the DCP (Dedicated Charging Port) and more two type charger
>> according to current value as following:
>>
>> For example,
>> max77693 MUIC device (is used on Samsung Galaxy S3)
>> - CHG_USB_DCP: current up to 1.5A
>> - CHG_USB_SLOW : current up to 500mA
>> - CHG_USB_FAST : current up to 1A or 2A
>>
>> max77836 MUIC device (is used on Samsung gear 2)
>> - CHG_USB_DCP: current up to 1.5A
>> - CHG_USB_SLOW : current up to 500mA
>> - CHG_USB_FAST : current up to 1A or 2A
>>
>> max77843 MUIC device (is used on Samsung Galaxy Note4)
>> - CHG_USB_DCP: current up to 1.5A
>> - CHG_USB_SLOW : current up to 500mA
>> - CHG_USB_FAST : current up to 1A or 2A
>>
>> If MUIC device detects the some USB charger which
>> has the more maximum current than DCP, this muic device
>> call the FAST charger. Also, there is oppsite case for SLOW charger.
>
> I think that following name is more appropriate than old name.
> - EXTCON_CHG_USB_SLOW -> EXTCON_CHG_USB_DCP_SLOW
> - EXTCON_CHG_USB_FAST -> EXTCON_CHG_USB_DCP_FAST
>

Yes that looks more appropriate.

>
>>
>>>
>>>> + [EXTCON_CHG_USB_DCP] = "EXTCON_CHG_USB_DCP",
>>>> + [EXTCON_CHG_USB_CDP] = "EXTCON_CHG_USB_CDP",
>>>
>>> What about USB ACA?
>>
>> ACA is "Accessory Charging Adapter". But, I didn't understand the role
>> of ACA charger type. I'll drop ACA type on next version.

ACA is typically used by a docking station which can charge the
embedded host (e.g. mobile phone) as well as allow connecting a
USB peripheral to it.

The link you gave above for Battery charging spec is in fact just the compliance plan.
The spec is actually available here
http://www.usb.org/developers/docs/devclass_docs/BCv1.2_070312.zip

cheers,
-roger
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/