diff mbox

[U-Boot,v2,1/2] power: pmic: Add support for MAX77696 PMIC

Message ID 1437526042-15118-1-git-send-email-festevam@gmail.com
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Commit Message

Fabio Estevam July 22, 2015, 12:47 a.m. UTC
From: Fabio Estevam <fabio.estevam@freescale.com>

Add support for MAX77696 PMIC.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v1:
- Fix the range of PMIC registers

 drivers/power/pmic/Makefile        |  1 +
 drivers/power/pmic/pmic_max77696.c | 32 ++++++++++++++++++++
 include/power/max77696_pmic.h      | 61 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 94 insertions(+)
 create mode 100644 drivers/power/pmic/pmic_max77696.c
 create mode 100644 include/power/max77696_pmic.h

Comments

Stefano Babic July 26, 2015, 10:13 a.m. UTC | #1
On 22/07/2015 02:47, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
> 
> Add support for MAX77696 PMIC.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> Changes since v1:
> - Fix the range of PMIC registers
> 
>  drivers/power/pmic/Makefile        |  1 +
>  drivers/power/pmic/pmic_max77696.c | 32 ++++++++++++++++++++
>  include/power/max77696_pmic.h      | 61 ++++++++++++++++++++++++++++++++++++++
>  3 files changed, 94 insertions(+)
>  create mode 100644 drivers/power/pmic/pmic_max77696.c
>  create mode 100644 include/power/max77696_pmic.h
> 
> diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile
> index ae86f04..4ad6df3 100644
> --- a/drivers/power/pmic/Makefile
> +++ b/drivers/power/pmic/Makefile
> @@ -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
> index 0000000..93d92f5
> --- /dev/null
> +++ b/drivers/power/pmic/pmic_max77696.c
> @@ -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
> index 0000000..58f295c
> --- /dev/null
> +++ b/include/power/max77696_pmic.h
> @@ -0,0 +1,61 @@
> +/*
> + *  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,
> +	EPDDIS = 	0xb5,
> +	PMIC_NUM_OF_REGS,
> +};
> +
> +int power_max77696_init(unsigned char bus);
> +
> +#endif
> 

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic
diff mbox

Patch

diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile
index ae86f04..4ad6df3 100644
--- a/drivers/power/pmic/Makefile
+++ b/drivers/power/pmic/Makefile
@@ -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
index 0000000..93d92f5
--- /dev/null
+++ b/drivers/power/pmic/pmic_max77696.c
@@ -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
index 0000000..58f295c
--- /dev/null
+++ b/include/power/max77696_pmic.h
@@ -0,0 +1,61 @@ 
+/*
+ *  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,
+	EPDDIS = 	0xb5,
+	PMIC_NUM_OF_REGS,
+};
+
+int power_max77696_init(unsigned char bus);
+
+#endif