Message ID | 20210204005036.1555294-1-kyletso@google.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 2a1673f0f1de78b146bfdbe8c8a773c4a0499790 |
Headers | show |
Series | usb: pd: Reland VDO definitions of PD2.0 | expand |
Hi, Benson and Prashant, On Thu, Feb 4, 2021 at 8:50 AM Kyle Tso <kyletso@google.com> wrote: > > Reland VDO definitions of PD Revision 2.0 as they are still used in > PD2.0 products. > > Fixes: 0e1d6f55a12e ("usb: pd: Update VDO definitions") > Signed-off-by: Kyle Tso <kyletso@google.com> > --- > include/linux/usb/pd_vdo.h | 69 ++++++++++++++++++++++++++++++++++++-- > 1 file changed, 66 insertions(+), 3 deletions(-) > Is there any chance that you have free time to verify this patch with CrOS configuration? thanks, Kyle > diff --git a/include/linux/usb/pd_vdo.h b/include/linux/usb/pd_vdo.h > index e9b6822c54c2..5de7f550f93e 100644 > --- a/include/linux/usb/pd_vdo.h > +++ b/include/linux/usb/pd_vdo.h > @@ -110,6 +110,10 @@ > * <20:16> :: Reserved, Shall be set to zero > * <15:0> :: USB-IF assigned VID for this cable vendor > */ > + > +/* PD Rev2.0 definition */ > +#define IDH_PTYPE_UNDEF 0 > + > /* SOP Product Type (UFP) */ > #define IDH_PTYPE_NOT_UFP 0 > #define IDH_PTYPE_HUB 1 > @@ -248,7 +252,25 @@ > | ((pnum) & 0x1f)) > > /* > - * Passive Cable VDO > + * Cable VDO (for both Passive and Active Cable VDO in PD Rev2.0) > + * --------- > + * <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/Captive (00b == A, 01 == B, 10 == C, 11 == Captive) > + * <17> :: Reserved, Shall be set to zero > + * <16:13> :: cable latency (0001 == <10ns(~1m length)) > + * <12:11> :: cable termination type (11b == both ends active VCONN req) > + * <10> :: SSTX1 Directionality support (0b == fixed, 1b == cfgable) > + * <9> :: SSTX2 Directionality support > + * <8> :: SSRX1 Directionality support > + * <7> :: SSRX2 Directionality support > + * <6:5> :: Vbus current handling capability (01b == 3A, 10b == 5A) > + * <4> :: Vbus through cable (0b == no, 1b == yes) > + * <3> :: SOP" controller present? (0b == no, 1b == yes) > + * <2:0> :: USB SS Signaling support > + * > + * Passive Cable VDO (PD Rev3.0+) > * --------- > * <31:28> :: Cable HW version > * <27:24> :: Cable FW version > @@ -264,7 +286,7 @@ > * <4:3> :: Reserved, Shall be set to zero > * <2:0> :: USB highest speed > * > - * Active Cable VDO 1 > + * Active Cable VDO 1 (PD Rev3.0+) > * --------- > * <31:28> :: Cable HW version > * <27:24> :: Cable FW version > @@ -286,7 +308,9 @@ > #define CABLE_VDO_VER1_0 0 > #define CABLE_VDO_VER1_3 3 > > -/* Connector Type */ > +/* Connector Type (_ATYPE and _BTYPE are for PD Rev2.0 only) */ > +#define CABLE_ATYPE 0 > +#define CABLE_BTYPE 1 > #define CABLE_CTYPE 2 > #define CABLE_CAPTIVE 3 > > @@ -323,12 +347,22 @@ > #define CABLE_CURR_3A 1 > #define CABLE_CURR_5A 2 > > +/* USB SuperSpeed Signaling Support (PD Rev2.0) */ > +#define CABLE_USBSS_U2_ONLY 0 > +#define CABLE_USBSS_U31_GEN1 1 > +#define CABLE_USBSS_U31_GEN2 2 > + > /* USB Highest Speed */ > #define CABLE_USB2_ONLY 0 > #define CABLE_USB32_GEN1 1 > #define CABLE_USB32_4_GEN2 2 > #define CABLE_USB4_GEN3 3 > > +#define VDO_CABLE(hw, fw, cbl, lat, term, tx1d, tx2d, rx1d, rx2d, cur, vps, sopp, usbss) \ > + (((hw) & 0x7) << 28 | ((fw) & 0x7) << 24 | ((cbl) & 0x3) << 18 \ > + | ((lat) & 0x7) << 13 | ((term) & 0x3) << 11 | (tx1d) << 10 \ > + | (tx2d) << 9 | (rx1d) << 8 | (rx2d) << 7 | ((cur) & 0x3) << 5 \ > + | (vps) << 4 | (sopp) << 3 | ((usbss) & 0x7)) > #define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \ > (((hw) & 0xf) << 28 | ((fw) & 0xf) << 24 | ((ver) & 0x7) << 21 \ > | ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \ > @@ -395,6 +429,35 @@ > | ((hops) & 0x3) << 6 | (u2) << 5 | (u32) << 4 | (lane) << 3 \ > | (iso) << 2 | (gen)) > > +/* > + * AMA VDO (PD Rev2.0) > + * --------- > + * <31:28> :: Cable HW version > + * <27:24> :: Cable FW version > + * <23:12> :: Reserved, Shall be set to zero > + * <11> :: SSTX1 Directionality support (0b == fixed, 1b == cfgable) > + * <10> :: SSTX2 Directionality support > + * <9> :: SSRX1 Directionality support > + * <8> :: SSRX2 Directionality support > + * <7:5> :: Vconn power > + * <4> :: Vconn power required > + * <3> :: Vbus power required > + * <2:0> :: USB SS Signaling support > + */ > +#define VDO_AMA(hw, fw, tx1d, tx2d, rx1d, rx2d, vcpwr, vcr, vbr, usbss) \ > + (((hw) & 0x7) << 28 | ((fw) & 0x7) << 24 \ > + | (tx1d) << 11 | (tx2d) << 10 | (rx1d) << 9 | (rx2d) << 8 \ > + | ((vcpwr) & 0x7) << 5 | (vcr) << 4 | (vbr) << 3 \ > + | ((usbss) & 0x7)) > + > +#define PD_VDO_AMA_VCONN_REQ(vdo) (((vdo) >> 4) & 1) > +#define PD_VDO_AMA_VBUS_REQ(vdo) (((vdo) >> 3) & 1) > + > +#define AMA_USBSS_U2_ONLY 0 > +#define AMA_USBSS_U31_GEN1 1 > +#define AMA_USBSS_U31_GEN2 2 > +#define AMA_USBSS_BBONLY 3 > + > /* > * VPD VDO > * --------- > -- > 2.30.0.365.g02bc693789-goog >
On Thu, Feb 4, 2021 at 8:55 AM Kyle Tso <kyletso@google.com> wrote: > > Hi, Benson and Prashant, > > On Thu, Feb 4, 2021 at 8:50 AM Kyle Tso <kyletso@google.com> wrote: > > > > Reland VDO definitions of PD Revision 2.0 as they are still used in > > PD2.0 products. > > > > Fixes: 0e1d6f55a12e ("usb: pd: Update VDO definitions") > > Signed-off-by: Kyle Tso <kyletso@google.com> > > --- > > include/linux/usb/pd_vdo.h | 69 ++++++++++++++++++++++++++++++++++++-- > > 1 file changed, 66 insertions(+), 3 deletions(-) > > > Is there any chance that you have free time to verify this patch with > CrOS configuration? > > thanks, > Kyle > Hi, I tried to enable the config "CONFIG_CROS_EC_TYPEC=m" and it can make now. thanks, Kyle > > diff --git a/include/linux/usb/pd_vdo.h b/include/linux/usb/pd_vdo.h > > index e9b6822c54c2..5de7f550f93e 100644 > > --- a/include/linux/usb/pd_vdo.h > > +++ b/include/linux/usb/pd_vdo.h > > @@ -110,6 +110,10 @@ > > * <20:16> :: Reserved, Shall be set to zero > > * <15:0> :: USB-IF assigned VID for this cable vendor > > */ > > + > > +/* PD Rev2.0 definition */ > > +#define IDH_PTYPE_UNDEF 0 > > + > > /* SOP Product Type (UFP) */ > > #define IDH_PTYPE_NOT_UFP 0 > > #define IDH_PTYPE_HUB 1 > > @@ -248,7 +252,25 @@ > > | ((pnum) & 0x1f)) > > > > /* > > - * Passive Cable VDO > > + * Cable VDO (for both Passive and Active Cable VDO in PD Rev2.0) > > + * --------- > > + * <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/Captive (00b == A, 01 == B, 10 == C, 11 == Captive) > > + * <17> :: Reserved, Shall be set to zero > > + * <16:13> :: cable latency (0001 == <10ns(~1m length)) > > + * <12:11> :: cable termination type (11b == both ends active VCONN req) > > + * <10> :: SSTX1 Directionality support (0b == fixed, 1b == cfgable) > > + * <9> :: SSTX2 Directionality support > > + * <8> :: SSRX1 Directionality support > > + * <7> :: SSRX2 Directionality support > > + * <6:5> :: Vbus current handling capability (01b == 3A, 10b == 5A) > > + * <4> :: Vbus through cable (0b == no, 1b == yes) > > + * <3> :: SOP" controller present? (0b == no, 1b == yes) > > + * <2:0> :: USB SS Signaling support > > + * > > + * Passive Cable VDO (PD Rev3.0+) > > * --------- > > * <31:28> :: Cable HW version > > * <27:24> :: Cable FW version > > @@ -264,7 +286,7 @@ > > * <4:3> :: Reserved, Shall be set to zero > > * <2:0> :: USB highest speed > > * > > - * Active Cable VDO 1 > > + * Active Cable VDO 1 (PD Rev3.0+) > > * --------- > > * <31:28> :: Cable HW version > > * <27:24> :: Cable FW version > > @@ -286,7 +308,9 @@ > > #define CABLE_VDO_VER1_0 0 > > #define CABLE_VDO_VER1_3 3 > > > > -/* Connector Type */ > > +/* Connector Type (_ATYPE and _BTYPE are for PD Rev2.0 only) */ > > +#define CABLE_ATYPE 0 > > +#define CABLE_BTYPE 1 > > #define CABLE_CTYPE 2 > > #define CABLE_CAPTIVE 3 > > > > @@ -323,12 +347,22 @@ > > #define CABLE_CURR_3A 1 > > #define CABLE_CURR_5A 2 > > > > +/* USB SuperSpeed Signaling Support (PD Rev2.0) */ > > +#define CABLE_USBSS_U2_ONLY 0 > > +#define CABLE_USBSS_U31_GEN1 1 > > +#define CABLE_USBSS_U31_GEN2 2 > > + > > /* USB Highest Speed */ > > #define CABLE_USB2_ONLY 0 > > #define CABLE_USB32_GEN1 1 > > #define CABLE_USB32_4_GEN2 2 > > #define CABLE_USB4_GEN3 3 > > > > +#define VDO_CABLE(hw, fw, cbl, lat, term, tx1d, tx2d, rx1d, rx2d, cur, vps, sopp, usbss) \ > > + (((hw) & 0x7) << 28 | ((fw) & 0x7) << 24 | ((cbl) & 0x3) << 18 \ > > + | ((lat) & 0x7) << 13 | ((term) & 0x3) << 11 | (tx1d) << 10 \ > > + | (tx2d) << 9 | (rx1d) << 8 | (rx2d) << 7 | ((cur) & 0x3) << 5 \ > > + | (vps) << 4 | (sopp) << 3 | ((usbss) & 0x7)) > > #define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \ > > (((hw) & 0xf) << 28 | ((fw) & 0xf) << 24 | ((ver) & 0x7) << 21 \ > > | ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \ > > @@ -395,6 +429,35 @@ > > | ((hops) & 0x3) << 6 | (u2) << 5 | (u32) << 4 | (lane) << 3 \ > > | (iso) << 2 | (gen)) > > > > +/* > > + * AMA VDO (PD Rev2.0) > > + * --------- > > + * <31:28> :: Cable HW version > > + * <27:24> :: Cable FW version > > + * <23:12> :: Reserved, Shall be set to zero > > + * <11> :: SSTX1 Directionality support (0b == fixed, 1b == cfgable) > > + * <10> :: SSTX2 Directionality support > > + * <9> :: SSRX1 Directionality support > > + * <8> :: SSRX2 Directionality support > > + * <7:5> :: Vconn power > > + * <4> :: Vconn power required > > + * <3> :: Vbus power required > > + * <2:0> :: USB SS Signaling support > > + */ > > +#define VDO_AMA(hw, fw, tx1d, tx2d, rx1d, rx2d, vcpwr, vcr, vbr, usbss) \ > > + (((hw) & 0x7) << 28 | ((fw) & 0x7) << 24 \ > > + | (tx1d) << 11 | (tx2d) << 10 | (rx1d) << 9 | (rx2d) << 8 \ > > + | ((vcpwr) & 0x7) << 5 | (vcr) << 4 | (vbr) << 3 \ > > + | ((usbss) & 0x7)) > > + > > +#define PD_VDO_AMA_VCONN_REQ(vdo) (((vdo) >> 4) & 1) > > +#define PD_VDO_AMA_VBUS_REQ(vdo) (((vdo) >> 3) & 1) > > + > > +#define AMA_USBSS_U2_ONLY 0 > > +#define AMA_USBSS_U31_GEN1 1 > > +#define AMA_USBSS_U31_GEN2 2 > > +#define AMA_USBSS_BBONLY 3 > > + > > /* > > * VPD VDO > > * --------- > > -- > > 2.30.0.365.g02bc693789-goog > >
On Thu, Feb 04, 2021 at 02:17:56PM +0800, Kyle Tso wrote: > On Thu, Feb 4, 2021 at 8:55 AM Kyle Tso <kyletso@google.com> wrote: > > > > Hi, Benson and Prashant, > > > > On Thu, Feb 4, 2021 at 8:50 AM Kyle Tso <kyletso@google.com> wrote: > > > > > > Reland VDO definitions of PD Revision 2.0 as they are still used in > > > PD2.0 products. > > > > > > Fixes: 0e1d6f55a12e ("usb: pd: Update VDO definitions") > > > Signed-off-by: Kyle Tso <kyletso@google.com> > > > --- > > > include/linux/usb/pd_vdo.h | 69 ++++++++++++++++++++++++++++++++++++-- > > > 1 file changed, 66 insertions(+), 3 deletions(-) > > > > > Is there any chance that you have free time to verify this patch with > > CrOS configuration? > > > > thanks, > > Kyle > > > > Hi, > > I tried to enable the config "CONFIG_CROS_EC_TYPEC=m" and it can make now. Thanks for verifying, I'll go queue this up to keep the tree building properly. greg k-h
diff --git a/include/linux/usb/pd_vdo.h b/include/linux/usb/pd_vdo.h index e9b6822c54c2..5de7f550f93e 100644 --- a/include/linux/usb/pd_vdo.h +++ b/include/linux/usb/pd_vdo.h @@ -110,6 +110,10 @@ * <20:16> :: Reserved, Shall be set to zero * <15:0> :: USB-IF assigned VID for this cable vendor */ + +/* PD Rev2.0 definition */ +#define IDH_PTYPE_UNDEF 0 + /* SOP Product Type (UFP) */ #define IDH_PTYPE_NOT_UFP 0 #define IDH_PTYPE_HUB 1 @@ -248,7 +252,25 @@ | ((pnum) & 0x1f)) /* - * Passive Cable VDO + * Cable VDO (for both Passive and Active Cable VDO in PD Rev2.0) + * --------- + * <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/Captive (00b == A, 01 == B, 10 == C, 11 == Captive) + * <17> :: Reserved, Shall be set to zero + * <16:13> :: cable latency (0001 == <10ns(~1m length)) + * <12:11> :: cable termination type (11b == both ends active VCONN req) + * <10> :: SSTX1 Directionality support (0b == fixed, 1b == cfgable) + * <9> :: SSTX2 Directionality support + * <8> :: SSRX1 Directionality support + * <7> :: SSRX2 Directionality support + * <6:5> :: Vbus current handling capability (01b == 3A, 10b == 5A) + * <4> :: Vbus through cable (0b == no, 1b == yes) + * <3> :: SOP" controller present? (0b == no, 1b == yes) + * <2:0> :: USB SS Signaling support + * + * Passive Cable VDO (PD Rev3.0+) * --------- * <31:28> :: Cable HW version * <27:24> :: Cable FW version @@ -264,7 +286,7 @@ * <4:3> :: Reserved, Shall be set to zero * <2:0> :: USB highest speed * - * Active Cable VDO 1 + * Active Cable VDO 1 (PD Rev3.0+) * --------- * <31:28> :: Cable HW version * <27:24> :: Cable FW version @@ -286,7 +308,9 @@ #define CABLE_VDO_VER1_0 0 #define CABLE_VDO_VER1_3 3 -/* Connector Type */ +/* Connector Type (_ATYPE and _BTYPE are for PD Rev2.0 only) */ +#define CABLE_ATYPE 0 +#define CABLE_BTYPE 1 #define CABLE_CTYPE 2 #define CABLE_CAPTIVE 3 @@ -323,12 +347,22 @@ #define CABLE_CURR_3A 1 #define CABLE_CURR_5A 2 +/* USB SuperSpeed Signaling Support (PD Rev2.0) */ +#define CABLE_USBSS_U2_ONLY 0 +#define CABLE_USBSS_U31_GEN1 1 +#define CABLE_USBSS_U31_GEN2 2 + /* USB Highest Speed */ #define CABLE_USB2_ONLY 0 #define CABLE_USB32_GEN1 1 #define CABLE_USB32_4_GEN2 2 #define CABLE_USB4_GEN3 3 +#define VDO_CABLE(hw, fw, cbl, lat, term, tx1d, tx2d, rx1d, rx2d, cur, vps, sopp, usbss) \ + (((hw) & 0x7) << 28 | ((fw) & 0x7) << 24 | ((cbl) & 0x3) << 18 \ + | ((lat) & 0x7) << 13 | ((term) & 0x3) << 11 | (tx1d) << 10 \ + | (tx2d) << 9 | (rx1d) << 8 | (rx2d) << 7 | ((cur) & 0x3) << 5 \ + | (vps) << 4 | (sopp) << 3 | ((usbss) & 0x7)) #define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \ (((hw) & 0xf) << 28 | ((fw) & 0xf) << 24 | ((ver) & 0x7) << 21 \ | ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \ @@ -395,6 +429,35 @@ | ((hops) & 0x3) << 6 | (u2) << 5 | (u32) << 4 | (lane) << 3 \ | (iso) << 2 | (gen)) +/* + * AMA VDO (PD Rev2.0) + * --------- + * <31:28> :: Cable HW version + * <27:24> :: Cable FW version + * <23:12> :: Reserved, Shall be set to zero + * <11> :: SSTX1 Directionality support (0b == fixed, 1b == cfgable) + * <10> :: SSTX2 Directionality support + * <9> :: SSRX1 Directionality support + * <8> :: SSRX2 Directionality support + * <7:5> :: Vconn power + * <4> :: Vconn power required + * <3> :: Vbus power required + * <2:0> :: USB SS Signaling support + */ +#define VDO_AMA(hw, fw, tx1d, tx2d, rx1d, rx2d, vcpwr, vcr, vbr, usbss) \ + (((hw) & 0x7) << 28 | ((fw) & 0x7) << 24 \ + | (tx1d) << 11 | (tx2d) << 10 | (rx1d) << 9 | (rx2d) << 8 \ + | ((vcpwr) & 0x7) << 5 | (vcr) << 4 | (vbr) << 3 \ + | ((usbss) & 0x7)) + +#define PD_VDO_AMA_VCONN_REQ(vdo) (((vdo) >> 4) & 1) +#define PD_VDO_AMA_VBUS_REQ(vdo) (((vdo) >> 3) & 1) + +#define AMA_USBSS_U2_ONLY 0 +#define AMA_USBSS_U31_GEN1 1 +#define AMA_USBSS_U31_GEN2 2 +#define AMA_USBSS_BBONLY 3 + /* * VPD VDO * ---------
Reland VDO definitions of PD Revision 2.0 as they are still used in PD2.0 products. Fixes: 0e1d6f55a12e ("usb: pd: Update VDO definitions") Signed-off-by: Kyle Tso <kyletso@google.com> --- include/linux/usb/pd_vdo.h | 69 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 3 deletions(-)