src/soc/intel/cannonlake: Define USB configuration params
Define USB2, USB3 and Type-C configuration for CannonLake. Change-Id: I42243950366d672e886158eb1934350f47b4ff1f Signed-off-by: Pratik Prajapati <pratikkumar.v.prajapati@intel.com> Reviewed-on: https://review.coreboot.org/21339 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
committed by
Aaron Durbin
parent
efd0eb35af
commit
c82e1fbcab
@@ -19,6 +19,25 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
/* Per Port HS Transmitter Emphasis */
|
||||||
|
#define USB2_EMP_OFF 0
|
||||||
|
#define USB2_DE_EMP_ON 1
|
||||||
|
#define USB2_PRE_EMP_ON 2
|
||||||
|
#define USB2_DE_EMP_ON_PRE_EMP_ON 3
|
||||||
|
|
||||||
|
/* Per Port Half Bit Pre-emphasis */
|
||||||
|
#define USB2_FULL_BIT_PRE_EMP 0
|
||||||
|
#define USB2_HALF_BIT_PRE_EMP 1
|
||||||
|
|
||||||
|
/* Per Port HS Preemphasis Bias */
|
||||||
|
#define USB2_BIAS_0MV 0
|
||||||
|
#define USB2_BIAS_11P25MV 1
|
||||||
|
#define USB2_BIAS_16P9MV 2
|
||||||
|
#define USB2_BIAS_28P15MV 3
|
||||||
|
#define USB2_BIAS_39P35MV 5
|
||||||
|
#define USB2_BIAS_45MV 6
|
||||||
|
#define USB2_BIAS_56P3MV 7
|
||||||
|
|
||||||
struct usb2_port_config {
|
struct usb2_port_config {
|
||||||
uint8_t enable;
|
uint8_t enable;
|
||||||
uint8_t ocpin;
|
uint8_t ocpin;
|
||||||
@@ -28,6 +47,87 @@ struct usb2_port_config {
|
|||||||
uint8_t pre_emp_bit;
|
uint8_t pre_emp_bit;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* USB Overcurrent pins definition */
|
||||||
|
enum {
|
||||||
|
OC0 = 0,
|
||||||
|
OC1,
|
||||||
|
OC2,
|
||||||
|
OC3,
|
||||||
|
OC4,
|
||||||
|
OC5,
|
||||||
|
OC6,
|
||||||
|
OC7,
|
||||||
|
OCMAX,
|
||||||
|
OC_SKIP = 0xff, /* Skip OC programming */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Standard USB Port based on length:
|
||||||
|
* - External
|
||||||
|
* - Back Panel
|
||||||
|
* - OTG
|
||||||
|
* - M.2
|
||||||
|
* - Internal device down */
|
||||||
|
|
||||||
|
#define USB2_PORT_EMPTY { \
|
||||||
|
.enable = 0, \
|
||||||
|
.ocpin = OC_SKIP, \
|
||||||
|
.tx_bias = USB2_BIAS_0MV, \
|
||||||
|
.tx_emp_enable = USB2_EMP_OFF, \
|
||||||
|
.pre_emp_bias = USB2_BIAS_0MV, \
|
||||||
|
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP, \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Length = 11.5"-12" */
|
||||||
|
#define USB2_PORT_LONG(pin) { \
|
||||||
|
.enable = 1, \
|
||||||
|
.ocpin = (pin), \
|
||||||
|
.tx_bias = USB2_BIAS_39P35MV, \
|
||||||
|
.tx_emp_enable = USB2_PRE_EMP_ON, \
|
||||||
|
.pre_emp_bias = USB2_BIAS_56P3MV, \
|
||||||
|
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP, \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Length = 6"-11.49" */
|
||||||
|
#define USB2_PORT_MID(pin) { \
|
||||||
|
.enable = 1, \
|
||||||
|
.ocpin = (pin), \
|
||||||
|
.tx_bias = USB2_BIAS_0MV, \
|
||||||
|
.tx_emp_enable = USB2_PRE_EMP_ON, \
|
||||||
|
.pre_emp_bias = USB2_BIAS_56P3MV, \
|
||||||
|
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP, \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Length = 3"-5.99" */
|
||||||
|
#define USB2_PORT_SHORT(pin) { \
|
||||||
|
.enable = 1, \
|
||||||
|
.ocpin = (pin), \
|
||||||
|
.tx_bias = USB2_BIAS_39P35MV, \
|
||||||
|
.tx_emp_enable = USB2_PRE_EMP_ON | USB2_DE_EMP_ON, \
|
||||||
|
.pre_emp_bias = USB2_BIAS_39P35MV, \
|
||||||
|
.pre_emp_bit = USB2_FULL_BIT_PRE_EMP, \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Max TX and Pre-emp settings */
|
||||||
|
#define USB2_PORT_MAX(pin) { \
|
||||||
|
.enable = 1, \
|
||||||
|
.ocpin = (pin), \
|
||||||
|
.tx_bias = USB2_BIAS_56P3MV, \
|
||||||
|
.tx_emp_enable = USB2_PRE_EMP_ON, \
|
||||||
|
.pre_emp_bias = USB2_BIAS_56P3MV, \
|
||||||
|
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP, \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Type-C Port, no BC1.2 charge detect module / MUX
|
||||||
|
* Length = 3.0" - 9.00" */
|
||||||
|
#define USB2_PORT_TYPE_C(pin) { \
|
||||||
|
.enable = 1, \
|
||||||
|
.ocpin = (pin), \
|
||||||
|
.tx_bias = USB2_BIAS_0MV, \
|
||||||
|
.tx_emp_enable = USB2_PRE_EMP_ON, \
|
||||||
|
.pre_emp_bias = USB2_BIAS_56P3MV, \
|
||||||
|
.pre_emp_bit = USB2_HALF_BIT_PRE_EMP, \
|
||||||
|
}
|
||||||
|
|
||||||
struct usb3_port_config {
|
struct usb3_port_config {
|
||||||
uint8_t enable;
|
uint8_t enable;
|
||||||
uint8_t ocpin;
|
uint8_t ocpin;
|
||||||
@@ -35,4 +135,18 @@ struct usb3_port_config {
|
|||||||
uint8_t tx_downscale_amp;
|
uint8_t tx_downscale_amp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define USB3_PORT_EMPTY { \
|
||||||
|
.enable = 0, \
|
||||||
|
.ocpin = OC_SKIP, \
|
||||||
|
.tx_de_emp = 0x00, \
|
||||||
|
.tx_downscale_amp = 0x00, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define USB3_PORT_DEFAULT(pin) { \
|
||||||
|
.enable = 1, \
|
||||||
|
.ocpin = (pin), \
|
||||||
|
.tx_de_emp = 0x0, \
|
||||||
|
.tx_downscale_amp = 0x00, \
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user