提交 7aa5598a 编写于 作者: T Tom Rini

tps65218/am43xx_evm: Add power framework support to TPS65218

Add in an init function for the drivers/power framework so we can dump
and read the registers via i2c.

Cc: Łukasz Majewski <l.majewski@samsung.com>
Signed-off-by: NTom Rini <trini@ti.com>
上级 5c44dd6b
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <asm/arch/gpio.h> #include <asm/arch/gpio.h>
#include <asm/emif.h> #include <asm/emif.h>
#include "board.h" #include "board.h"
#include <power/pmic.h>
#include <power/tps65218.h> #include <power/tps65218.h>
#include <miiphy.h> #include <miiphy.h>
#include <cpsw.h> #include <cpsw.h>
...@@ -484,6 +485,19 @@ void sdram_init(void) ...@@ -484,6 +485,19 @@ void sdram_init(void)
} }
#endif #endif
/* setup board specific PMIC */
int power_init_board(void)
{
struct pmic *p;
power_tps65218_init(I2C_PMIC);
p = pmic_get("TPS65218_PMIC");
if (p && !pmic_probe(p))
puts("PMIC: TPS65218\n");
return 0;
}
int board_init(void) int board_init(void)
{ {
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
#include <common.h> #include <common.h>
#include <i2c.h> #include <i2c.h>
#include <asm/errno.h>
#include <power/pmic.h>
#include <power/tps65218.h> #include <power/tps65218.h>
/** /**
...@@ -95,3 +97,23 @@ int tps65218_voltage_update(uchar dc_cntrl_reg, uchar volt_sel) ...@@ -95,3 +97,23 @@ int tps65218_voltage_update(uchar dc_cntrl_reg, uchar volt_sel)
return 0; return 0;
} }
int power_tps65218_init(unsigned char bus)
{
static const char name[] = "TPS65218_PMIC";
struct pmic *p = pmic_alloc();
if (!p) {
printf("%s: POWER allocation error!\n", __func__);
return -ENOMEM;
}
p->name = name;
p->interface = PMIC_I2C;
p->number_of_regs = TPS65218_PMIC_NUM_OF_REGS;
p->hw.i2c.addr = TPS65218_CHIP_PM;
p->hw.i2c.tx_num = 1;
p->bus = bus;
return 0;
}
...@@ -33,6 +33,8 @@ ...@@ -33,6 +33,8 @@
#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_MULTI_EEPROMS
/* Power */ /* Power */
#define CONFIG_POWER
#define CONFIG_POWER_I2C
#define CONFIG_POWER_TPS65218 #define CONFIG_POWER_TPS65218
/* SPL defines. */ /* SPL defines. */
......
...@@ -60,4 +60,5 @@ enum { ...@@ -60,4 +60,5 @@ enum {
int tps65218_reg_write(uchar prot_level, uchar dest_reg, uchar dest_val, int tps65218_reg_write(uchar prot_level, uchar dest_reg, uchar dest_val,
uchar mask); uchar mask);
int tps65218_voltage_update(uchar dc_cntrl_reg, uchar volt_sel); int tps65218_voltage_update(uchar dc_cntrl_reg, uchar volt_sel);
int power_tps65218_init(unsigned char bus);
#endif /* __POWER_TPS65218_H__ */ #endif /* __POWER_TPS65218_H__ */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册