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

From: Chris Zhong
Date: Wed Jul 13 2016 - 22:08:36 EST


Hi Chanwoo Choi

On 07/14/2016 09:15 AM, Chanwoo Choi wrote:
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


Okay, so I think some comment for EXTCON_DISP_DP is necessary and enough.