prism: added diag command 'sff vcc'.
Reads and prints bytes 98 - 99 of SFF address A2h.
Change-Id: I8fe4e4af7b8843f28e2b6df62bbf369050a5ee8d
diff --git a/board/mv_feroceon/mv_kw2/prism_cmd.c b/board/mv_feroceon/mv_kw2/prism_cmd.c
index 8714f97..3b45c71 100644
--- a/board/mv_feroceon/mv_kw2/prism_cmd.c
+++ b/board/mv_feroceon/mv_kw2/prism_cmd.c
@@ -20,6 +20,8 @@
* | | ------- vei
* | | |
* | | ------- csum
+ * | | |
+ * | | ------- vcc
* | |
* | ------ leds
* |
@@ -151,11 +153,15 @@
"ccd - verify CC_DMI at offset 95 of 0xA2 addr",
"<checksum types - ccb cce ccd>\n");
+PRISM_CMD_LEAF(prism_diag_sff, vcc,
+ "internally measured supply voltage in transceiver", NULL);
+
static const struct prism_cmd_entry *prism_diag_sff_sub_cmds[] =
{
&prism_diag_sff_vbi,
&prism_diag_sff_vei,
&prism_diag_sff_csum,
+ &prism_diag_sff_vcc,
NULL
};
@@ -506,6 +512,18 @@
return(ret);
}
+static int do_prism_diag_sff_vcc(int level, int argc, char *argv[])
+{
+ int ret;
+ u16 vcc;
+
+ ret = i2c_read(SFF_ADDR_A2, 98, 1, &vcc, sizeof(vcc));
+ if (!ret)
+ printf("%hu\n", __be16_to_cpu(vcc));
+
+ return ret;
+}
+
static void config_led(MV_U8 gpio, MV_U8 polarity,
int mode /* 0 = off, 1 = on, 2 = blink */, int hz)
{