power: Add support for LTC3676 PMIC

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>
Acked-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
Tim Harvey
2014-04-22 21:53:58 -07:00
committed by Stefano Babic
parent 17449272a0
commit 5e2f01772a
3 changed files with 84 additions and 0 deletions

View File

@@ -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

View File

@@ -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;
}