diff options
author | Vijay Hiremath <vijay.p.hiremath@intel.com> | 2022-05-26 15:38:25 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-06-07 18:58:22 +0000 |
commit | 3263365e34bc8b3e594917feb6acd8c5351a9f76 (patch) | |
tree | 0602618b004c1129e319c1da840bbc9b281a826c | |
parent | 8e41b1691e8e600bcdc2986bf55d6539a88b19a7 (diff) | |
download | chrome-ec-3263365e34bc8b3e594917feb6acd8c5351a9f76.tar.gz |
ccgxxf: Add firmware version info in TCPCI dump command
CCGXXF follows standard TCPCI spec registers however firmware
version and build ID are vendor specific hence added a custom
TCPCI dump register function.
BUG=none
BRANCH=none
TEST=Tested on MTLRVP, correct firmware version is printed
Change-Id: I8f9bf43756c607f8c5ebae4524dcf1e1d1ef43ab
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3669971
Reviewed-by: Diana Z <dzigterman@chromium.org>
-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 */ |