soc/intel/common: Add IOE SBI access for TCSS functions
Meteor Lake has the IOE Die for TCSS. This change adds IOE SBI access for TCSS pad configuration and Thunderbolt authentication. BUG=b:213574324 TEST=Build platforms coreboot images successfully. Change-Id: I324242a018fb47207dd426fc8acd103f677d5cab Signed-off-by: John Zhao <john.zhao@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/63128 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
parent
848b42558c
commit
2bcc5f39c1
|
@ -146,6 +146,7 @@ extern const struct soc_tcss_ops tcss_ops;
|
||||||
|
|
||||||
/* Method to configure pads */
|
/* Method to configure pads */
|
||||||
void tcss_configure_aux_bias_pads_regbar(const struct typec_aux_bias_pads *pads);
|
void tcss_configure_aux_bias_pads_regbar(const struct typec_aux_bias_pads *pads);
|
||||||
|
void ioe_tcss_configure_aux_bias_pads_sbi(const struct typec_aux_bias_pads *pads);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 1) Initialize TCSS muxes to disconnected state
|
* 1) Initialize TCSS muxes to disconnected state
|
||||||
|
@ -163,5 +164,6 @@ const struct tcss_port_map *tcss_get_port_info(size_t *num_ports);
|
||||||
|
|
||||||
/* Method to validate the Thunderbolt authentication */
|
/* Method to validate the Thunderbolt authentication */
|
||||||
bool tcss_valid_tbt_auth(void);
|
bool tcss_valid_tbt_auth(void);
|
||||||
|
bool ioe_tcss_valid_tbt_auth(void);
|
||||||
|
|
||||||
#endif /* _TCSS_H_ */
|
#endif /* _TCSS_H_ */
|
||||||
|
|
|
@ -368,6 +368,19 @@ void tcss_configure_aux_bias_pads_regbar(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ioe_tcss_configure_aux_bias_pads_sbi(
|
||||||
|
const struct typec_aux_bias_pads *pads)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < MAX_TYPE_C_PORTS; i++) {
|
||||||
|
if (pads[i].pad_auxn_dc && pads[i].pad_auxp_dc) {
|
||||||
|
ioe_p2sb_sbi_write(PID_IOM, IOM_AUX_BIAS_CTRL_PULLUP_OFFSET(i),
|
||||||
|
calc_bias_ctrl_reg_value(pads[i].pad_auxp_dc));
|
||||||
|
ioe_p2sb_sbi_write(PID_IOM, IOM_AUX_BIAS_CTRL_PULLDOWN_OFFSET(i),
|
||||||
|
calc_bias_ctrl_reg_value(pads[i].pad_auxn_dc));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const struct tcss_port_map *tcss_get_port_info(size_t *num_ports)
|
const struct tcss_port_map *tcss_get_port_info(size_t *num_ports)
|
||||||
{
|
{
|
||||||
static struct tcss_port_map port_map[MAX_TYPE_C_PORTS];
|
static struct tcss_port_map port_map[MAX_TYPE_C_PORTS];
|
||||||
|
@ -424,3 +437,8 @@ bool tcss_valid_tbt_auth(void)
|
||||||
{
|
{
|
||||||
return REGBAR32(PID_IOM, IOM_CSME_IMR_TBT_STATUS) & TBT_VALID_AUTHENTICATION;
|
return REGBAR32(PID_IOM, IOM_CSME_IMR_TBT_STATUS) & TBT_VALID_AUTHENTICATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ioe_tcss_valid_tbt_auth(void)
|
||||||
|
{
|
||||||
|
return ioe_p2sb_sbi_read(PID_IOM, IOM_CSME_IMR_TBT_STATUS) & TBT_VALID_AUTHENTICATION;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue