forked from Minki/linux
dt-bindings: connector: Add PD rev 2.0 VDO definition
Add the VDO definition for USB PD rev 2.0 in the bindings and define a new property snk-vdos-v1 containing legacy VDOs as the responses to the port partner which only supports PD rev 2.0. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Kyle Tso <kyletso@google.com> Link: https://lore.kernel.org/r/20210601123151.3441914-3-kyletso@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f41bfc7e9c
commit
55b54c269b
@ -149,6 +149,17 @@ properties:
|
|||||||
maxItems: 6
|
maxItems: 6
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
|
||||||
|
sink-vdos-v1:
|
||||||
|
description: An array of u32 with each entry, a Vendor Defined Message Object (VDO),
|
||||||
|
providing additional information corresponding to the product, the detailed bit
|
||||||
|
definitions and the order of each VDO can be found in
|
||||||
|
"USB Power Delivery Specification Revision 2.0, Version 1.3" chapter 6.4.4.3.1 Discover
|
||||||
|
Identity. User can specify the VDO array via VDO_IDH/_CERT/_PRODUCT/_CABLE/_AMA defined in
|
||||||
|
dt-bindings/usb/pd.h.
|
||||||
|
minItems: 3
|
||||||
|
maxItems: 6
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
|
||||||
op-sink-microwatt:
|
op-sink-microwatt:
|
||||||
description: Sink required operating power in microwatt, if source can't
|
description: Sink required operating power in microwatt, if source can't
|
||||||
offer the power, Capability Mismatch is set. Required for power sink and
|
offer the power, Capability Mismatch is set. Required for power sink and
|
||||||
@ -207,6 +218,10 @@ properties:
|
|||||||
SNK_READY for non-pd link.
|
SNK_READY for non-pd link.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
sink-vdos-v1: [ 'sink-vdos' ]
|
||||||
|
sink-vdos: [ 'sink-vdos-v1' ]
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
|
||||||
|
@ -106,6 +106,10 @@
|
|||||||
* <20:16> :: Reserved, Shall be set to zero
|
* <20:16> :: Reserved, Shall be set to zero
|
||||||
* <15:0> :: USB-IF assigned VID for this cable vendor
|
* <15:0> :: USB-IF assigned VID for this cable vendor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* PD Rev2.0 definition */
|
||||||
|
#define IDH_PTYPE_UNDEF 0
|
||||||
|
|
||||||
/* SOP Product Type (UFP) */
|
/* SOP Product Type (UFP) */
|
||||||
#define IDH_PTYPE_NOT_UFP 0
|
#define IDH_PTYPE_NOT_UFP 0
|
||||||
#define IDH_PTYPE_HUB 1
|
#define IDH_PTYPE_HUB 1
|
||||||
@ -228,7 +232,25 @@
|
|||||||
| ((pnum) & 0x1f))
|
| ((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
|
* <31:28> :: Cable HW version
|
||||||
* <27:24> :: Cable FW version
|
* <27:24> :: Cable FW version
|
||||||
@ -244,7 +266,7 @@
|
|||||||
* <4:3> :: Reserved, Shall be set to zero
|
* <4:3> :: Reserved, Shall be set to zero
|
||||||
* <2:0> :: USB highest speed
|
* <2:0> :: USB highest speed
|
||||||
*
|
*
|
||||||
* Active Cable VDO 1
|
* Active Cable VDO 1 (PD Rev3.0+)
|
||||||
* ---------
|
* ---------
|
||||||
* <31:28> :: Cable HW version
|
* <31:28> :: Cable HW version
|
||||||
* <27:24> :: Cable FW version
|
* <27:24> :: Cable FW version
|
||||||
@ -266,7 +288,9 @@
|
|||||||
#define CABLE_VDO_VER1_0 0
|
#define CABLE_VDO_VER1_0 0
|
||||||
#define CABLE_VDO_VER1_3 3
|
#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_CTYPE 2
|
||||||
#define CABLE_CAPTIVE 3
|
#define CABLE_CAPTIVE 3
|
||||||
|
|
||||||
@ -303,12 +327,22 @@
|
|||||||
#define CABLE_CURR_3A 1
|
#define CABLE_CURR_3A 1
|
||||||
#define CABLE_CURR_5A 2
|
#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 */
|
/* USB Highest Speed */
|
||||||
#define CABLE_USB2_ONLY 0
|
#define CABLE_USB2_ONLY 0
|
||||||
#define CABLE_USB32_GEN1 1
|
#define CABLE_USB32_GEN1 1
|
||||||
#define CABLE_USB32_4_GEN2 2
|
#define CABLE_USB32_4_GEN2 2
|
||||||
#define CABLE_USB4_GEN3 3
|
#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) \
|
#define VDO_PCABLE(hw, fw, ver, conn, lat, term, vbm, cur, spd) \
|
||||||
(((hw) & 0xf) << 28 | ((fw) & 0xf) << 24 | ((ver) & 0x7) << 21 \
|
(((hw) & 0xf) << 28 | ((fw) & 0xf) << 24 | ((ver) & 0x7) << 21 \
|
||||||
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
|
| ((conn) & 0x3) << 18 | ((lat) & 0xf) << 13 | ((term) & 0x3) << 11 \
|
||||||
@ -373,6 +407,35 @@
|
|||||||
| ((hops) & 0x3) << 6 | (u2) << 5 | (u32) << 4 | (lane) << 3 \
|
| ((hops) & 0x3) << 6 | (u2) << 5 | (u32) << 4 | (lane) << 3 \
|
||||||
| (iso) << 2 | (gen))
|
| (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
|
* VPD VDO
|
||||||
* ---------
|
* ---------
|
||||||
|
Loading…
Reference in New Issue
Block a user