summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2022-05-26 15:38:25 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-06-07 18:58:22 +0000
commit3263365e34bc8b3e594917feb6acd8c5351a9f76 (patch)
tree0602618b004c1129e319c1da840bbc9b281a826c
parent8e41b1691e8e600bcdc2986bf55d6539a88b19a7 (diff)
downloadchrome-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.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 */