summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver/tcpm/ccgxxf.c19
-rw-r--r--driver/tcpm/ccgxxf.h4
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 */