diff options
-rw-r--r-- | driver/tcpm/ccgxxf.c | 19 | ||||
-rw-r--r-- | driver/tcpm/ccgxxf.h | 4 |
2 files changed, 22 insertions, 1 deletions
diff --git a/driver/tcpm/ccgxxf.c b/driver/tcpm/ccgxxf.c index 61985d90ae..ee1754ce08 100644 --- a/driver/tcpm/ccgxxf.c +++ b/driver/tcpm/ccgxxf.c @@ -6,6 +6,7 @@ */ #include "ccgxxf.h" +#include "console.h" #include "tcpm/tcpci.h" #ifdef CONFIG_USB_PD_TCPM_SBU @@ -15,6 +16,22 @@ static int ccgxxf_tcpc_set_sbu(int port, bool enable) } #endif +#ifdef CONFIG_CMD_TCPC_DUMP +static void ccgxxf_dump_registers(int port) +{ + int fw_ver, fw_build; + + tcpc_dump_std_registers(port); + + /* Get the F/W version and build ID */ + if (!tcpc_read16(port, CCGXXF_REG_FW_VERSION, &fw_ver) && + !tcpc_read16(port, CCGXXF_REG_FW_VERSION_BUILD, &fw_build)) { + ccprintf(" FW_VERSION(build.major.minor) = %d.%d.%d\n", + fw_build & 0xFF, (fw_ver >> 8) & 0xFF, fw_ver & 0xFF); + } +} +#endif + const struct tcpm_drv ccgxxf_tcpm_drv = { .init = &tcpci_tcpm_init, .release = &tcpci_tcpm_release, @@ -57,6 +74,6 @@ const struct tcpm_drv ccgxxf_tcpm_drv = { #endif .set_bist_test_mode = &tcpci_set_bist_test_mode, #ifdef CONFIG_CMD_TCPC_DUMP - .dump_registers = &tcpc_dump_std_registers, + .dump_registers = &ccgxxf_dump_registers, #endif }; diff --git a/driver/tcpm/ccgxxf.h b/driver/tcpm/ccgxxf.h index 9d4e3ca0ed..246a231d04 100644 --- a/driver/tcpm/ccgxxf.h +++ b/driver/tcpm/ccgxxf.h @@ -16,6 +16,10 @@ /* SBU FET control register */ #define CCGXXF_REG_SBU_MUX_CTL 0xBB +/* F/W info register */ +#define CCGXXF_REG_FW_VERSION 0x94 +#define CCGXXF_REG_FW_VERSION_BUILD 0x96 + extern const struct tcpm_drv ccgxxf_tcpm_drv; /* CCGXXF built in I/O expander definitions */ |