Re: [v5 PATCH 1/5] extcon: Add Type-C and DP support

From: Chanwoo Choi
Date: Wed Jul 13 2016 - 21:15:13 EST


Hi Chris,

[snip]

>>>> Thanks,
>>>> Chanwoo Choi
>>> There are 4 modes for Type-C DP alt mode:
>>> 1) USB host only :
>>>
>>> extcon_set_cable_state(edev, EXTCON_USB_HOST, 1);
>>> extcon_set_cable_state(edev, EXTCON_USB, 0);
>>> extcon_set_cable_state(edev, EXTCON_DISP_DP, 0);
>>>
>>> 2) USB device only
>>>
>>> extcon_set_cable_state(edev, EXTCON_USB_HOST, 0);
>>> extcon_set_cable_state(edev, EXTCON_USB, 1);
>>> extcon_set_cable_state(edev, EXTCON_DISP_DP, 0);
>>>
>>> 3) DP only
>>>
>>> extcon_set_cable_state(edev, EXTCON_USB_HOST, 0);
>>> extcon_set_cable_state(edev, EXTCON_USB, 0);
>>> extcon_set_cable_state(edev, EXTCON_DISP_DP, 1);
>>>
>>> 4) USB + DP
>>>
>>> extcon_set_cable_state(edev, EXTCON_USB_HOST, 1);
>>> extcon_set_cable_state(edev, EXTCON_USB, 0);
>>> extcon_set_cable_state(edev, EXTCON_DISP_DP, 1);
>>>
>>>
>>> for 3rd mode: DP only, there is only EXTCON_DISP_DP is attached, the EXTCON_USB_HOST
>>> and EXTCON_USB are detached, Can I set the property into these 2 detached cable?
>>> or just call extcon_set_cable_state(edev, EXTCON_DISP_DP, EXTCON_PROP_TYPEC_POLARITY, 0 or 1);
>> I'm thinking to solve this issue. In result, we can add one more type to specific connector.
>> For EXTCON_DISP_DP, we can add the two type as following. And EXTCON_PROP_TYPEC_POLARITY property
>> should be added to EXTCON_TYPE_USB.
>>
>> + [EXTCON_DISP_DP] = {
>> + .type = EXTCON_TYPE_DISP | EXTCON_TYPE_USB,
>> + .id = EXTCON_DISP_DP,
>> + .name = "DP",
>> + },
>>
>> So, as you mentioned, EXTCON_DISP_DP can set the EXTCON_PROP_TYPEC_POLARITY property as following:
>> - extcon_set_cable_state(edev, EXTCON_DISP_DP, EXTCON_PROP_TYPEC_POLARITY, 0 or 1);
>>
>> I'll again developing the extcon property.
>>
>> Thanks,
>> Chanwoo Choi
>>
> Nice idea, But I am thinking about is it compatible with real DisplayPort without Type-C.
> Maybe we should add a new cable: EXTCON_DISP_DP_ALT
>
> + [EXTCON_DISP_DP] = {
> + .type = EXTCON_TYPE_DISP,
> + .id = EXTCON_DISP_DP,
> + .name = "DP",
> + },
>
> + [EXTCON_DISP_DP_ALT] = {
> + .type = EXTCON_TYPE_DISP | EXTCON_TYPE_USB,
> + .id = EXTCON_DISP_DP,
> + .name = "DP ALT",
> + },

EXTCON_DISP_DP_ALT means EXTCON_DISP_DP connector with EXTCON_PROP_TYPEC_POLARITY property.
So, we can explain the DP alternative mode without EXTCON_DISP_DP_ALT.

I'm wondering to add the new EXTCON_DISP_DP_ALT connector
because alternative mode was defined as mode instead of new h/w connector type.

Thanks,
Chanwoo Choi