/** @file
USB2 PHY configuration policy
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _USB2_PHY_CONFIG_H_
#define _USB2_PHY_CONFIG_H_
#include
#define USB2_PHY_CONFIG_REVISION 1
extern EFI_GUID gUsb2PhyConfigGuid;
#pragma pack (push,1)
/**
This structure configures per USB2 AFE settings.
It allows to setup the port electrical parameters.
**/
typedef struct {
/** Per Port HS Preemphasis Bias (PERPORTPETXISET)
000b - 0mV
001b - 11.25mV
010b - 16.9mV
011b - 28.15mV
100b - 28.15mV
101b - 39.35mV
110b - 45mV
111b - 56.3mV
**/
UINT8 Petxiset;
/** Per Port HS Transmitter Bias (PERPORTTXISET)
000b - 0mV
001b - 11.25mV
010b - 16.9mV
011b - 28.15mV
100b - 28.15mV
101b - 39.35mV
110b - 45mV
111b - 56.3mV
**/
UINT8 Txiset;
/**
Per Port HS Transmitter Emphasis (IUSBTXEMPHASISEN)
00b - Emphasis OFF
01b - De-emphasis ON
10b - Pre-emphasis ON
11b - Pre-emphasis & De-emphasis ON
**/
UINT8 Predeemp;
/**
Per Port Half Bit Pre-emphasis (PERPORTTXPEHALF)
1b - half-bit pre-emphasis
0b - full-bit pre-emphasis
**/
UINT8 Pehalfbit;
} USB2_PHY_PARAMETERS;
/**
This structure holds info on how to tune electrical parameters of USB2 ports based on board layout
Revision 1:
- Initial version.
**/
typedef struct {
CONFIG_BLOCK_HEADER Header; ///< Config Block Header
/**
This structure configures per USB2 port physical settings.
It allows to setup the port location and port length, and configures the port strength accordingly.
Changing this policy values from default ones may require disabling USB2 PHY Sus Well Power Gating
through Usb2PhySusPgEnable on PCH-LP
**/
USB2_PHY_PARAMETERS Port[MAX_USB2_PORTS];
} USB2_PHY_CONFIG;
#pragma pack (pop)
#endif // _USB2_PHY_CONFIG_H_