We handle i2c_write return code and complain in case of error. We propagate the
error, too, to allow better handling at the upper level in the future.

Signed-off-by: Vincent Stehlé <[email protected]>
---
 drivers/power/twl6035.c |   17 +++++++++++++----
 include/twl6035.h       |    2 +-
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/power/twl6035.c b/drivers/power/twl6035.c
index 624c09e..d3de698 100644
--- a/drivers/power/twl6035.c
+++ b/drivers/power/twl6035.c
@@ -50,16 +50,25 @@ void twl6035_init_settings(void)
        return;
 }
 
-void twl6035_mmc1_poweron_ldo(void)
+int twl6035_mmc1_poweron_ldo(void)
 {
        u8 val = 0;
 
        /* set LDO9 TWL6035 to 3V */
        val = 0x2b; /* (3 -.9)*28 +1 */
-       palmas_write_u8(0x48, LDO9_VOLTAGE, val);
+
+       if (palmas_write_u8(0x48, LDO9_VOLTAGE, val)) {
+               printf("twl6035: could not set LDO9 voltage.\n");
+               return 1;
+       }
 
        /* TURN ON LDO9 */
        val = LDO_ON | LDO_MODE_SLEEP | LDO_MODE_ACTIVE;
-       palmas_write_u8(0x48, LDO9_CTRL, val);
-       return;
+
+       if (palmas_write_u8(0x48, LDO9_CTRL, val)) {
+               printf("twl6035: could not turn on LDO9.\n");
+               return 1;
+       }
+
+       return 0;
 }
diff --git a/include/twl6035.h b/include/twl6035.h
index e21ddba..ce74348 100644
--- a/include/twl6035.h
+++ b/include/twl6035.h
@@ -39,4 +39,4 @@
 int twl6035_i2c_write_u8(u8 chip_no, u8 val, u8 reg);
 int twl6035_i2c_read_u8(u8 chip_no, u8 *val, u8 reg);
 void twl6035_init_settings(void);
-void twl6035_mmc1_poweron_ldo(void);
+int twl6035_mmc1_poweron_ldo(void);
-- 
1.7.9.5

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to