summaryrefslogtreecommitdiff
path: root/board/toradex/colibri_imx6/pf0100.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/toradex/colibri_imx6/pf0100.c')
-rw-r--r--board/toradex/colibri_imx6/pf0100.c82
1 files changed, 41 insertions, 41 deletions
diff --git a/board/toradex/colibri_imx6/pf0100.c b/board/toradex/colibri_imx6/pf0100.c
index 618c571805..5fb7e45210 100644
--- a/board/toradex/colibri_imx6/pf0100.c
+++ b/board/toradex/colibri_imx6/pf0100.c
@@ -34,7 +34,7 @@ unsigned pmic_init(void)
uchar bus = 1;
uchar devid, revid, val;
- puts("PMIC: ");
+ puts("PMIC: ");
if (!((0 == i2c_set_bus_num(bus)) &&
(0 == i2c_probe(PFUZE100_I2C_ADDR)))) {
puts("i2c bus failed\n");
@@ -49,7 +49,46 @@ unsigned pmic_init(void)
puts("i2c pmic revid read failed\n");
return 0;
}
- printf("device id: 0x%.2x, revision id: 0x%.2x\n", devid, revid);
+ printf("device id: 0x%.2x, revision id: 0x%.2x, ", devid, revid);
+
+ /* get device programmed state */
+ val = PFUZE100_PAGE_REGISTER_PAGE1;
+ if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1, &val, 1)) {
+ puts("i2c write failed\n");
+ return 0;
+ }
+ if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR1, 1, &val, 1) < 0) {
+ puts("i2c fuse_por read failed\n");
+ return 0;
+ }
+ if (val & PFUZE100_FUSE_POR_M)
+ programmed++;
+
+ if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR2, 1, &val, 1) < 0) {
+ puts("i2c fuse_por read failed\n");
+ return programmed;
+ }
+ if (val & PFUZE100_FUSE_POR_M)
+ programmed++;
+
+ if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR3, 1, &val, 1) < 0) {
+ puts("i2c fuse_por read failed\n");
+ return programmed;
+ }
+ if (val & PFUZE100_FUSE_POR_M)
+ programmed++;
+
+ switch (programmed) {
+ case 0:
+ puts("not programmed\n");
+ break;
+ case 3:
+ puts("programmed\n");
+ break;
+ default:
+ puts("undefined programming state\n");
+ break;
+ }
#ifdef DEBUG
{
@@ -102,45 +141,6 @@ unsigned pmic_init(void)
printf("\n");
}
#endif
- /* get device programmed state */
- val = PFUZE100_PAGE_REGISTER_PAGE1;
- if (i2c_write(PFUZE100_I2C_ADDR, PFUZE100_PAGE_REGISTER, 1, &val, 1)) {
- puts("i2c write failed\n");
- return 0;
- }
- if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR1, 1, &val, 1) < 0) {
- puts("i2c fuse_por read failed\n");
- return 0;
- }
- if (val & PFUZE100_FUSE_POR_M)
- programmed++;
-
- if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR2, 1, &val, 1) < 0) {
- puts("i2c fuse_por read failed\n");
- return programmed;
- }
- if (val & PFUZE100_FUSE_POR_M)
- programmed++;
-
- if (i2c_read(PFUZE100_I2C_ADDR, PFUZE100_FUSE_POR3, 1, &val, 1) < 0) {
- puts("i2c fuse_por read failed\n");
- return programmed;
- }
- if (val & PFUZE100_FUSE_POR_M)
- programmed++;
-
- switch (programmed) {
- case 0:
- printf("PMIC: not programmed\n");
- break;
- case 3:
- printf("PMIC: programmed\n");
- break;
- default:
- printf("PMIC: undefined programming state\n");
- break;
- }
-
return programmed;
}