Message ID | 20201106184104.939284-6-pmalani@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | platform/chrome: cros_ec_typec: Add cable | expand |
Hi Prashant, On Fri, Nov 06, 2020 at 10:41:08AM -0800, Prashant Malani wrote: > The USB Power Delivery Specification R3.0 adds a captive cable type > to the "USB Type-C plug to USB Type-C/Captive" field (Bits 19-18, > Passive/Active Cable VDO, Table 6-38 & 6-39). > > Add the corresponding definition to the Cable VDO header. Also add a > helper macro to get the Type C cable connector type, when provided > the cable VDO. > > Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com> > Signed-off-by: Prashant Malani <pmalani@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org> Looks good, to modify the Cable VDO decoding to bring it up to date to PD 3.0. I should also note that the ID Header VDO also has a new field (that I added to the PD spec) that marks whether or not SOP/SOP' is a captive plug versus a receptacle as well. Nothing depends on it yet, but we should keep this in mind for future changes to the connector class. Thanks, Benson > --- > > Changes in v2: > - No changes. > > include/linux/usb/pd_vdo.h | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/include/linux/usb/pd_vdo.h b/include/linux/usb/pd_vdo.h > index 68bdc4e2f5a9..8c5cb5830754 100644 > --- a/include/linux/usb/pd_vdo.h > +++ b/include/linux/usb/pd_vdo.h > @@ -177,7 +177,7 @@ > * <31:28> :: Cable HW version > * <27:24> :: Cable FW version > * <23:20> :: Reserved, Shall be set to zero > - * <19:18> :: type-C to Type-A/B/C (00b == A, 01 == B, 10 == C) > + * <19:18> :: type-C to Type-A/B/C/Captive (00b == A, 01 == B, 10 == C, 11 == Captive) > * <17> :: Type-C to Plug/Receptacle (0b == plug, 1b == receptacle) > * <16:13> :: cable latency (0001 == <10ns(~1m length)) > * <12:11> :: cable termination type (11b == both ends active VCONN req) > @@ -193,6 +193,7 @@ > #define CABLE_ATYPE 0 > #define CABLE_BTYPE 1 > #define CABLE_CTYPE 2 > +#define CABLE_CAPTIVE 3 > #define CABLE_PLUG 0 > #define CABLE_RECEPTACLE 1 > #define CABLE_CURR_1A5 0 > @@ -208,6 +209,7 @@ > | (tx1d) << 10 | (tx2d) << 9 | (rx1d) << 8 | (rx2d) << 7 \ > | ((cur) & 0x3) << 5 | (vps) << 4 | (sopp) << 3 \ > | ((usbss) & 0x7)) > +#define VDO_TYPEC_CABLE_TYPE(vdo) (((vdo) >> 18) & 0x3) > > /* > * AMA VDO > -- > 2.29.1.341.ge80a0c044ae-goog >
On Fri, Nov 06, 2020 at 10:41:08AM -0800, Prashant Malani wrote: > The USB Power Delivery Specification R3.0 adds a captive cable type > to the "USB Type-C plug to USB Type-C/Captive" field (Bits 19-18, > Passive/Active Cable VDO, Table 6-38 & 6-39). > > Add the corresponding definition to the Cable VDO header. Also add a > helper macro to get the Type C cable connector type, when provided > the cable VDO. > > Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com> > Signed-off-by: Prashant Malani <pmalani@chromium.org> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > > Changes in v2: > - No changes. > > include/linux/usb/pd_vdo.h | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/include/linux/usb/pd_vdo.h b/include/linux/usb/pd_vdo.h > index 68bdc4e2f5a9..8c5cb5830754 100644 > --- a/include/linux/usb/pd_vdo.h > +++ b/include/linux/usb/pd_vdo.h > @@ -177,7 +177,7 @@ > * <31:28> :: Cable HW version > * <27:24> :: Cable FW version > * <23:20> :: Reserved, Shall be set to zero > - * <19:18> :: type-C to Type-A/B/C (00b == A, 01 == B, 10 == C) > + * <19:18> :: type-C to Type-A/B/C/Captive (00b == A, 01 == B, 10 == C, 11 == Captive) > * <17> :: Type-C to Plug/Receptacle (0b == plug, 1b == receptacle) > * <16:13> :: cable latency (0001 == <10ns(~1m length)) > * <12:11> :: cable termination type (11b == both ends active VCONN req) > @@ -193,6 +193,7 @@ > #define CABLE_ATYPE 0 > #define CABLE_BTYPE 1 > #define CABLE_CTYPE 2 > +#define CABLE_CAPTIVE 3 > #define CABLE_PLUG 0 > #define CABLE_RECEPTACLE 1 > #define CABLE_CURR_1A5 0 > @@ -208,6 +209,7 @@ > | (tx1d) << 10 | (tx2d) << 9 | (rx1d) << 8 | (rx2d) << 7 \ > | ((cur) & 0x3) << 5 | (vps) << 4 | (sopp) << 3 \ > | ((usbss) & 0x7)) > +#define VDO_TYPEC_CABLE_TYPE(vdo) (((vdo) >> 18) & 0x3) > > /* > * AMA VDO > -- > 2.29.1.341.ge80a0c044ae-goog thanks,
diff --git a/include/linux/usb/pd_vdo.h b/include/linux/usb/pd_vdo.h index 68bdc4e2f5a9..8c5cb5830754 100644 --- a/include/linux/usb/pd_vdo.h +++ b/include/linux/usb/pd_vdo.h @@ -177,7 +177,7 @@ * <31:28> :: Cable HW version * <27:24> :: Cable FW version * <23:20> :: Reserved, Shall be set to zero - * <19:18> :: type-C to Type-A/B/C (00b == A, 01 == B, 10 == C) + * <19:18> :: type-C to Type-A/B/C/Captive (00b == A, 01 == B, 10 == C, 11 == Captive) * <17> :: Type-C to Plug/Receptacle (0b == plug, 1b == receptacle) * <16:13> :: cable latency (0001 == <10ns(~1m length)) * <12:11> :: cable termination type (11b == both ends active VCONN req) @@ -193,6 +193,7 @@ #define CABLE_ATYPE 0 #define CABLE_BTYPE 1 #define CABLE_CTYPE 2 +#define CABLE_CAPTIVE 3 #define CABLE_PLUG 0 #define CABLE_RECEPTACLE 1 #define CABLE_CURR_1A5 0 @@ -208,6 +209,7 @@ | (tx1d) << 10 | (tx2d) << 9 | (rx1d) << 8 | (rx2d) << 7 \ | ((cur) & 0x3) << 5 | (vps) << 4 | (sopp) << 3 \ | ((usbss) & 0x7)) +#define VDO_TYPEC_CABLE_TYPE(vdo) (((vdo) >> 18) & 0x3) /* * AMA VDO
The USB Power Delivery Specification R3.0 adds a captive cable type to the "USB Type-C plug to USB Type-C/Captive" field (Bits 19-18, Passive/Active Cable VDO, Table 6-38 & 6-39). Add the corresponding definition to the Cable VDO header. Also add a helper macro to get the Type C cable connector type, when provided the cable VDO. Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Prashant Malani <pmalani@chromium.org> --- Changes in v2: - No changes. include/linux/usb/pd_vdo.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)