// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef TYPECD_PD_VDO_CONSTANTS_H_
#define TYPECD_PD_VDO_CONSTANTS_H_

// Declare fields/values associated with Power Delivery (PD) discovery. These
// are used during various USB Type C mode entry checks.
namespace typecd {

// USB PD spec rev 3.0, v 2.0.
// Table 6-29 ID Header VDO.
// Modal operation bit field.
constexpr uint32_t kIDHeaderVDOModalOperationBitField = (1 << 26);
// Bit Masks for Cable type.
constexpr uint8_t kIDHeaderVDOProductTypeBitOffset = 27;
constexpr uint8_t kIDHeaderVDOProductTypeMask = 0x7;
constexpr uint8_t kIDHeaderVDOProductTypeCablePassive = 0x3;
constexpr uint8_t kIDHeaderVDOProductTypeCableActive = 0x4;
constexpr uint8_t kIDHeaderVDOProductTypeUFPHub = 0x1;
constexpr uint8_t kIDHeaderVDOProductTypeUFPPeripheral = 0x2;
constexpr uint8_t kIDHeaderVDOProductTypeUFPAMA = 0x5;
constexpr uint32_t kIdHeaderVDOVidMask = 0x0000ffff;

// Bit Masks for Product VDO
// USB PD spec rev 3.0, v 2.0.
// Table 6-34 Product VDO
constexpr uint32_t kProductVDOPidMask = 0xffff0000;

// Bit Masks for Product Type VDOs
// USB PD spec rev 3.0, v 2.0.
// Table 6-35 UFP VDO 1
constexpr uint32_t kDeviceCapabilityBitOffset = 24;
constexpr uint8_t kDeviceCapabilityMask = 0xF;
constexpr uint8_t kDeviceCapabilityBillboard = 0x2;
constexpr uint8_t kDeviceCapabilityUSB4 = 0x8;
constexpr uint32_t kUSBSpeedBitMask = 0x3;
constexpr uint32_t kUSBSpeed20 = 0x0;
constexpr uint32_t kUSBSuperSpeed32Gen1 = 0x1;
constexpr uint32_t kUSBSuperSpeed32Or40Gen2 = 0x2;
constexpr uint32_t kUSB40SuperSpeedGen3 = 0x3;
// Speed values for PD rev 2.0
constexpr uint32_t kUSBSuperSpeed31Gen1 = 0x1;
constexpr uint32_t kUSBSuperSpeed31Gen2 = 0x2;

// Bit Masks for Active Cable VDO1
// USB PD spec rev 3.0, v 2.0.
// Table 6-39 Active Cable VDO1
constexpr uint8_t kActiveCableVDO1VDOVersionOffset = 21;
constexpr uint8_t kActiveCableVDO1VDOVersionBitMask = 0x7;
constexpr uint8_t kActiveCableVDO1VDOVersion13 = 0x3;

//  Bit Masks for Active Cable VDO2
//  US PD spec rev 3.0, v 2.0.
//  Table 6-40 Active Cable VDO2
constexpr uint32_t kActiveCableVDO2USB4SupportedBitField = (1 << 8);

// Bit Masks for TBT3 Cables
// USB Type-C Cable & Connector spec release 2.0
// Table F-11 TBT3 Cable Discover Mode VDO Responses
constexpr uint8_t kTBT3CableDiscModeVDORoundedSupportOffset = 19;
constexpr uint8_t kTBT3CableDiscModeVDORoundedSupportMask = 0x3;
constexpr uint8_t kTBT3CableDiscModeVDO_3_4_Gen_Rounded_Non_Rounded = 0x1;
constexpr uint8_t kTBT3CableDiscModeVDOSpeedOffset = 16;
constexpr uint8_t kTBT3CableDiscModeVDOSpeedMask = 0x7;
constexpr uint8_t kTBT3CableDiscModeVDOSpeed10G20G = 0x3;

// Standard and Vendor Indentifications commonly expected in cables and partners
constexpr uint16_t kDPAltModeSID = 0xff01;
// DP altmode VDO capabilities.
// NOTE: We only include the bit fields we are interested in.
constexpr uint32_t kDPModeSnk = 0x1;

constexpr uint16_t kTBTAltModeVID = 0x8087;

// Bit Masks for Alternate Mode Adapter (AMA) VDO
// USB PD spec rev 3.0, v 2.0.
// Table 6-41 AMA VDO
constexpr uint32_t kAMAVDOUSBSpeedBitMask = 0x7;
constexpr uint32_t kAMAVDOUSBSpeedBillboard = 0x3;

}  // namespace typecd

#endif  // TYPECD_PD_VDO_CONSTANTS_H_
