Re: [PATCH] extcon: Modify the id and name of external connector
From: Chanwoo Choi
Date: Mon Oct 05 2015 - 23:11:22 EST
Roger,
On 2015ë 10ì 05ì 19:49, Roger Quadros wrote:
> 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
Thanks for your help and guide.
I'l look at the battery charging spec for adding the ACA.
Thanks,
Chanwoo Choi
--
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/