Message ID | 1437526042-15118-1-git-send-email-festevam@gmail.com |
---|---|
State | Awaiting Upstream |
Delegated to: | Stefano Babic |
Headers | show |
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 --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