This commit enables the max8998 PMIC to run with pmic_core.c generic
driver.

Signed-off-by: Lukasz Majewski <l.majew...@samsung.com>
---
 board/samsung/goni/goni.c  |   18 +++++++++
 include/configs/s5p_goni.h |    3 ++
 include/max8998_pmic.h     |   84 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 105 insertions(+), 0 deletions(-)
 create mode 100644 include/max8998_pmic.h

diff --git a/board/samsung/goni/goni.c b/board/samsung/goni/goni.c
index e24cd29..3e0cb74 100644
--- a/board/samsung/goni/goni.c
+++ b/board/samsung/goni/goni.c
@@ -25,6 +25,8 @@
 #include <common.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/mmc.h>
+#include <pmic.h>
+#include <max8998_pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -59,6 +61,22 @@ void dram_init_banksize(void)
        gd->bd->bi_dram[2].size = PHYS_SDRAM_3_SIZE;
 }
 
+int board_pmic_init(struct pmic *p)
+{
+       static char name[] = "MAX8998_PMIC";
+
+       puts("Board PMIC init\n");
+
+       p->name = name;
+       p->interface = PMIC_I2C;
+       p->number_of_regs = PMIC_NUM_OF_REGS;
+       p->hw.i2c.addr = MAX8998_I2C_ADDR;
+       p->hw.i2c.tx_num = 1;
+       p->hw.i2c.bus_num = I2C_PMIC;
+
+       return 0;
+}
+
 #ifdef CONFIG_DISPLAY_BOARDINFO
 int checkboard(void)
 {
diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
index 886c8be..e26dcb2 100644
--- a/include/configs/s5p_goni.h
+++ b/include/configs/s5p_goni.h
@@ -223,6 +223,9 @@
 
 #define CONFIG_SYS_INIT_SP_ADDR        (CONFIG_SYS_LOAD_ADDR - 0x1000000)
 
+#define CONFIG_PMIC
+#define CONFIG_PMIC_I2C
+
 #include <asm/arch/gpio.h>
 /*
  * I2C Settings
diff --git a/include/max8998_pmic.h b/include/max8998_pmic.h
new file mode 100644
index 0000000..bf28820
--- /dev/null
+++ b/include/max8998_pmic.h
@@ -0,0 +1,84 @@
+/*
+ *  Copyright (C) 2011 Samsung Electronics
+ *  Lukasz Majewski <l.majew...@samsung.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __MAX8998_PMIC_H_
+#define __MAX8998_PMIC_H_
+
+/* MAX 8998 registers */
+enum {
+       MAX8998_REG_IRQ1,
+       MAX8998_REG_IRQ2,
+       MAX8998_REG_IRQ3,
+       MAX8998_REG_IRQ4,
+       MAX8998_REG_IRQM1,
+       MAX8998_REG_IRQM2,
+       MAX8998_REG_IRQM3,
+       MAX8998_REG_IRQM4,
+       MAX8998_REG_STATUS1,
+       MAX8998_REG_STATUS2,
+       MAX8998_REG_STATUSM1,
+       MAX8998_REG_STATUSM2,
+       MAX8998_REG_CHGR1,
+       MAX8998_REG_CHGR2,
+       MAX8998_REG_LDO_ACTIVE_DISCHARGE1,
+       MAX8998_REG_LDO_ACTIVE_DISCHARGE2,
+       MAX8998_REG_BUCK_ACTIVE_DISCHARGE3,
+       MAX8998_REG_ONOFF1,
+       MAX8998_REG_ONOFF2,
+       MAX8998_REG_ONOFF3,
+       MAX8998_REG_ONOFF4,
+       MAX8998_REG_BUCK1_VOLTAGE1,
+       MAX8998_REG_BUCK1_VOLTAGE2,
+       MAX8998_REG_BUCK1_VOLTAGE3,
+       MAX8998_REG_BUCK1_VOLTAGE4,
+       MAX8998_REG_BUCK2_VOLTAGE1,
+       MAX8998_REG_BUCK2_VOLTAGE2,
+       MAX8998_REG_BUCK3,
+       MAX8998_REG_BUCK4,
+       MAX8998_REG_LDO2_LDO3,
+       MAX8998_REG_LDO4,
+       MAX8998_REG_LDO5,
+       MAX8998_REG_LDO6,
+       MAX8998_REG_LDO7,
+       MAX8998_REG_LDO8_LDO9,
+       MAX8998_REG_LDO10_LDO11,
+       MAX8998_REG_LDO12,
+       MAX8998_REG_LDO13,
+       MAX8998_REG_LDO14,
+       MAX8998_REG_LDO15,
+       MAX8998_REG_LDO16,
+       MAX8998_REG_LDO17,
+       MAX8998_REG_BKCHR,
+       MAX8998_REG_LBCNFG1,
+       MAX8998_REG_LBCNFG2,
+       PMIC_NUM_OF_REGS,
+};
+
+#define MAX8998_LDO3           (1 << 2)
+#define MAX8998_LDO8           (1 << 5)
+
+#define MAX8998_I2C_ADDR        (0xCC >> 1)
+
+enum { LDO_OFF, LDO_ON };
+
+#endif /* __MAX8998_PMIC_H_ */
-- 
1.7.2.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to