
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 tharvey@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 tharvey@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 tharvey@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 sbabic@denx.de
Best regards, Stefano Babic