Skip to contentSkip to conversation

power/pmic.h: Add prototype for power_init_board.

PATCH New Tom Rini 1 participant 4 messages Jun 23, 2014 – Jul 26, 2014

lore
Share & tools
lore

Tom Rini

author
#0 lore raw

PATCH 1/2 power/pmic.h: Add prototype for power_init_board.

As this is a weak function that we may override, provide a prototype for it.

Cc ?ukasz Majewski <[email protected]>
---
 include/power/pmic.h |    1 +
 1 file changed, 1 insertion(+)
include/power/pmic.h +1 -0
index a62e6c9..afbc5aa 100644
@@ -79,6 +79,7 @@ struct pmic {
 };
 
 int pmic_init(unsigned char bus);
+int power_init_board(void);
 int pmic_dialog_init(unsigned char bus);
 int check_reg(struct pmic *p, u32 reg);
 struct pmic *pmic_alloc(void);
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 1/2 power/pmic.h: Add prototype for power_init_board.

Quoted 5 lines · Tom Rini

As this is a weak function that we may override, provide a prototype for it.

Cc ?ukasz Majewski <[email protected]>

Applied to u-boot-ti/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140725/13e0aa64/attachment.pgp>
author
#2 lore raw

PATCH 2/2 tps65218/am43xx_evm: Add power framework support to TPS65218

In reply to Tom Rini

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

Cc ?ukasz Majewski <[email protected]>

---
This is as far as we can take the framework on this family as in order to make use of the pmic struct we need malloc. We need to talk with the PMIC before we have DDR setup so we don't have a malloc pool. We can address this later possibly once an "early malloc" patch is in as part of device model support.

---
 board/ti/am43xx/board.c            |   14 ++++++++++++++
 drivers/power/pmic/pmic_tps65218.c |   22 ++++++++++++++++++++++
 include/configs/am43xx_evm.h       |    2 ++
 include/power/tps65218.h           |    1 +
 4 files changed, 39 insertions(+)
board/ti/am43xx/board.c +14 -0
index 71af1ae..eb4e52f 100644
@@ -19,6 +19,7 @@
 #include <asm/arch/gpio.h>
 #include <asm/emif.h>
 #include "board.h"
+#include <power/pmic.h>
 #include <power/tps65218.h>
 #include <miiphy.h>
 #include <cpsw.h>
@@ -414,6 +415,19 @@ void sdram_init(void)
 }
 #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)
 {
 	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
drivers/power/pmic/pmic_tps65218.c +22 -0
index 0952456..dbc7a73 100644
@@ -7,6 +7,8 @@
 
 #include <common.h>
 #include <i2c.h>
+#include <asm/errno.h>
+#include <power/pmic.h>
 #include <power/tps65218.h>
 
 /**
@@ -95,3 +97,23 @@ int tps65218_voltage_update(uchar dc_cntrl_reg, uchar volt_sel)
 
 	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;
+}
include/configs/am43xx_evm.h +2 -0
index 823cba6..71f13e6 100644
@@ -33,6 +33,8 @@
 #define CONFIG_SYS_I2C_MULTI_EEPROMS
 
 /* Power */
+#define CONFIG_POWER
+#define CONFIG_POWER_I2C
 #define CONFIG_POWER_TPS65218
 
 /* SPL defines. */
include/power/tps65218.h +1 -0
index 67aa2f8..f8f33b8 100644
@@ -60,4 +60,5 @@ enum {
 int tps65218_reg_write(uchar prot_level, uchar dest_reg, uchar dest_val,
 		       uchar mask);
 int tps65218_voltage_update(uchar dc_cntrl_reg, uchar volt_sel);
+int power_tps65218_init(unsigned char bus);
 #endif	/* __POWER_TPS65218_H__ */
Signature · 1 line
1.7.9.5
author
#3 lore raw

PATCH 2/2 tps65218/am43xx_evm: Add power framework support to TPS65218

Quoted 5 lines · Tom Rini

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

Cc ?ukasz Majewski <[email protected]>

Applied to u-boot-ti/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140725/be30d4a4/attachment.pgp>