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: Tom Rini <trini@ti.com>
This commit is contained in:
parent
5c44dd6bbd
commit
7aa5598aac
@ -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)
|
|||||||
}
|
}
|
||||||
#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 @@
|
|||||||
|
|
||||||
#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)
|
|||||||
|
|
||||||
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 @@
|
|||||||
#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 {
|
|||||||
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__ */
|
||||||
|
Loading…
Reference in New Issue
Block a user