power: pmic: Add support for MAX77696 PMIC
authorFabio Estevam <fabio.estevam@freescale.com>
Tue, 21 Jul 2015 22:48:40 +0000 (19:48 -0300)
committerStefano Babic <sbabic@denx.de>
Sun, 26 Jul 2015 10:11:33 +0000 (12:11 +0200)
Add support for MAX77696 PMIC.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
drivers/power/pmic/Makefile
drivers/power/pmic/pmic_max77696.c [new file with mode: 0644]
include/power/max77696_pmic.h [new file with mode: 0644]

index ae86f041f3457a8875e0e7a9eccad6b4f4246f48..4ad6df36c2d7d81c1b975eae853a66dcce98f387 100644 (file)
@@ -9,6 +9,7 @@ obj-$(CONFIG_DM_PMIC) += pmic-uclass.o
 obj-$(CONFIG_DM_PMIC_MAX77686) += max77686.o
 obj-$(CONFIG_DM_PMIC_SANDBOX) += sandbox.o i2c_pmic_emul.o
 obj-$(CONFIG_POWER_LTC3676) += pmic_ltc3676.o
+obj-$(CONFIG_POWER_MAX77696) += pmic_max77696.o
 obj-$(CONFIG_POWER_MAX8998) += pmic_max8998.o
 obj-$(CONFIG_POWER_MAX8997) += pmic_max8997.o
 obj-$(CONFIG_POWER_MUIC_MAX8997) += muic_max8997.o
diff --git a/drivers/power/pmic/pmic_max77696.c b/drivers/power/pmic/pmic_max77696.c
new file mode 100644 (file)
index 0000000..93d92f5
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ *  Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *  Fabio Estevam <fabio.estevam@freescale.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <errno.h>
+#include <i2c.h>
+#include <power/pmic.h>
+#include <power/max77696_pmic.h>
+
+int power_max77696_init(unsigned char bus)
+{
+       static const char name[] = "MAX77696";
+       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 = PMIC_NUM_OF_REGS;
+       p->hw.i2c.addr = CONFIG_POWER_MAX77696_I2C_ADDR;
+       p->hw.i2c.tx_num = 1;
+       p->bus = bus;
+
+       return 0;
+}
diff --git a/include/power/max77696_pmic.h b/include/power/max77696_pmic.h
new file mode 100644 (file)
index 0000000..71cdf88
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ *  Copyright (C) 2015 Freescale Semiconductor, Inc.
+ *  Fabio Estevam <fabio.estevam@freescale.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#ifndef __MAX77696_PMIC_H__
+#define __MAX77696_PMIC_H__
+
+#define CONFIG_POWER_MAX77696_I2C_ADDR 0x3C
+
+enum {
+       L01_CNFG1 =     0x43,
+       L01_CNFG2,
+       L02_CNFG1,
+       L02_CNFG2,
+       L03_CNFG1,
+       L03_CNFG2,
+       L04_CNFG1,
+       L04_CNFG2,
+       L05_CNFG1,
+       L05_CNFG2,
+       L06_CNFG1,
+       L06_CNFG2,
+       L07_CNFG1,
+       L07_CNFG2,
+       L08_CNFG1,
+       L08_CNFG2,
+       L09_CNFG1,
+       L09_CNFG2,
+       L10_CNFG1,
+       L10_CNFG2,
+       LDO_INT1,
+       LDO_INT2,
+       LDO_INT1M,
+       LDO_INT2M,
+       LDO_CNFG3,
+       SW1_CNTRL,
+       SW2_CNTRL,
+       SW3_CNTRL,
+       SW4_CNTRL,
+       EPDCNFG,
+       EPDINTS,
+       EPDINT,
+       EPDINTM,
+       EPDVCOM,
+       EPDVEE,
+       EPDVNEG,
+       EPDVPOS,
+       EPDVDDH,
+       EPDSEQ,
+       EPDOKINTS,
+       CID =   0x9c,
+       PMIC_NUM_OF_REGS,
+};
+
+int power_max77696_init(unsigned char bus);
+
+#endif