From: Aaron Durbin <[email protected]> The TSP65090 is a PMIC on some exynos5 boards. The init function is called for the TPS65090 pmic. If that device is not a part of the device tree (returns -ENODEV) then continue. Otherwise return a failure.
Signed-off-by: Aaron Durbin <[email protected]> Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Simon Glass <[email protected]> --- board/samsung/smdk5250/smdk5250.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/board/samsung/smdk5250/smdk5250.c b/board/samsung/smdk5250/smdk5250.c index 217c6df..06f9ea6 100644 --- a/board/samsung/smdk5250/smdk5250.c +++ b/board/samsung/smdk5250/smdk5250.c @@ -37,6 +37,7 @@ #include <asm/arch/dp_info.h> #include <power/pmic.h> #include <power/max77686_pmic.h> +#include <power/tps65090_pmic.h> #include <tmu.h> DECLARE_GLOBAL_DATA_PTR; @@ -155,17 +156,10 @@ static int pmic_reg_update(struct pmic *p, int reg, uint regval) return 0; } -int power_init_board(void) +int max77686_init(void) { struct pmic *p; - set_ps_hold_ctrl(); - - i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); - - if (pmic_init(I2C_PMIC)) - return -1; - p = pmic_get("MAX77686_PMIC"); if (!p) return -ENODEV; @@ -250,6 +244,29 @@ int power_init_board(void) return 0; } + +int power_init_board(void) +{ + int ret; + + set_ps_hold_ctrl(); + + i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); + + if (pmic_init(I2C_PMIC)) + return -1; + + if (max77686_init()) + return -1; + + /* The TPS65090 may not be in the device tree. If so, it is not + * an error. */ + ret = tps65090_init(); + if (ret == 0 || ret == -ENODEV) + return 0; + + return -1; +} #endif void dram_init_banksize(void) -- 1.8.1.3 _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

