Re: [PATCH v2 5/6] usb: pd: Add captive Type C cable type

2020-11-09 Thread Heikki Krogerus
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 
> Signed-off-by: Prashant Malani 

Reviewed-by: Heikki Krogerus 

> ---
> 
> 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_CAPTIVE3
>  #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,

-- 
heikki


Re: [PATCH v2 5/6] usb: pd: Add captive Type C cable type

2020-11-06 Thread Benson Leung
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 
> Signed-off-by: Prashant Malani 

Reviewed-by: Benson Leung 

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_CAPTIVE3
>  #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
> 

-- 
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
ble...@google.com
Chromium OS Project
ble...@chromium.org


signature.asc
Description: PGP signature


[PATCH v2 5/6] usb: pd: Add captive Type C cable type

2020-11-06 Thread Prashant Malani
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 
Signed-off-by: Prashant Malani 
---

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_ATYPE0
 #define CABLE_BTYPE1
 #define CABLE_CTYPE2
+#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