Hi Tim, On 23/04/2014 06:53, Tim Harvey wrote: > The LTC3676 PMIC includes four DC/DC converters, and three 300mA > LDO Regulators (two Adjustable). The DC/DC converters are adjustable based > on a resistor devider (board-specific). > > This adds support for the LTC3676 by creating a namespace unique init function > that uses the PMIC API to allocate a pmic and defines the registers. > > Signed-off-by: Tim Harvey <thar...@gateworks.com> > --- > drivers/power/pmic/Makefile | 1 + > drivers/power/pmic/pmic_ltc3676.c | 32 ++++++++++++++++++++++++ > include/power/ltc3676_pmic.h | 51 > +++++++++++++++++++++++++++++++++++++++ > 3 files changed, 84 insertions(+) > create mode 100644 drivers/power/pmic/pmic_ltc3676.c > create mode 100644 include/power/ltc3676_pmic.h > > diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile > index 4129bda..920bbdc 100644 > --- a/drivers/power/pmic/Makefile > +++ b/drivers/power/pmic/Makefile > @@ -5,6 +5,7 @@ > # SPDX-License-Identifier: GPL-2.0+ > # > > +obj-$(CONFIG_POWER_LTC3676) += pmic_ltc3676.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_ltc3676.c > b/drivers/power/pmic/pmic_ltc3676.c > new file mode 100644 > index 0000000..9b874cb > --- /dev/null > +++ b/drivers/power/pmic/pmic_ltc3676.c > @@ -0,0 +1,32 @@ > +/* > + * Copyright (C) 2014 Gateworks Corporation > + * Tim Harvey <thar...@gateworks.com> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <common.h> > +#include <errno.h> > +#include <i2c.h> > +#include <power/pmic.h> > +#include <power/ltc3676_pmic.h> > + > +int power_ltc3676_init(unsigned char bus) > +{ > + static const char name[] = "LTC3676_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 = LTC3676_NUM_OF_REGS; > + p->hw.i2c.addr = CONFIG_POWER_LTC3676_I2C_ADDR; > + p->hw.i2c.tx_num = 1; > + p->bus = bus; > + > + return 0; > +} > diff --git a/include/power/ltc3676_pmic.h b/include/power/ltc3676_pmic.h > new file mode 100644 > index 0000000..dcaa985 > --- /dev/null > +++ b/include/power/ltc3676_pmic.h > @@ -0,0 +1,51 @@ > +/* > + * Copyright (C) 2014 Gateworks Corporation > + * Tim Harvey <thar...@gateworks.com> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef __LTC3676_PMIC_H_ > +#define __LTC3676_PMIC_H_ > + > +/* LTC3676 registers */ > +enum { > + LTC3676_BUCK1 = 0x01, > + LTC3676_BUCK2 = 0x02, > + LTC3676_BUCK3 = 0x03, > + LTC3676_BUCK4 = 0x04, > + LTC3676_LDOA = 0x05, > + LTC3676_LDOB = 0x06, > + LTC3676_SQD1 = 0x07, > + LTC3676_SQD2 = 0x08, > + LTC3676_CNTRL = 0x09, > + LTC3676_DVB1A = 0x0A, > + LTC3676_DVB1B = 0x0B, > + LTC3676_DVB2A = 0x0C, > + LTC3676_DVB2B = 0x0D, > + LTC3676_DVB3A = 0x0E, > + LTC3676_DVB3B = 0x0F, > + LTC3676_DVB4A = 0x10, > + LTC3676_DVB4B = 0x11, > + LTC3676_MSKIRQ = 0x12, > + LTC3676_MSKPG = 0x13, > + LTC3676_USER = 0x14, > + LTC3676_HRST = 0x1E, > + LTC3676_CLIRQ = 0x1F, > + LTC3676_IRQSTAT = 0x15, > + LTC3676_PGSTATL = 0x16, > + LTC3676_PGSTATR = 0x17, > + LTC3676_NUM_OF_REGS = 0x20, > +}; > + > +/* > + * SW Configuration > + */ > + > +#define LTC3676_DVB_MASK 0x1f > +#define LTC3676_PGOOD_MASK (1<<5) > +#define LTC3676_REF_SELA (0<<5) > +#define LTC3676_REF_SELB (1<<5) > + > +int power_ltc3676_init(unsigned char bus); > +#endif >
Acked-by: Stefano Babic <sba...@denx.de> Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot