u-boot-brain/drivers/power/pmic/pmic_pca9450.c
Ye Li 22172f6b7f power: Add new PMIC PCA9450 driver
PCA9450 PMIC series is used to support iMX8MM (PCA9450A) and
iMX8MN (PCA9450B). Add the PMIC driver for both PCA9450A and PCA9450B.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2020-01-08 13:20:08 +01:00

51 lines
881 B
C

// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright 2019 NXP
*/
#include <common.h>
#include <errno.h>
#include <i2c.h>
#include <power/pmic.h>
#include <power/pca9450.h>
static const char pca9450_name[] = "PCA9450";
int power_pca9450a_init(unsigned char bus)
{
struct pmic *p = pmic_alloc();
if (!p) {
printf("%s: POWER allocation error!\n", __func__);
return -ENOMEM;
}
p->name = pca9450_name;
p->interface = PMIC_I2C;
p->number_of_regs = PCA9450_REG_NUM;
p->hw.i2c.addr = 0x35;
p->hw.i2c.tx_num = 1;
p->bus = bus;
return 0;
}
int power_pca9450b_init(unsigned char bus)
{
struct pmic *p = pmic_alloc();
if (!p) {
printf("%s: POWER allocation error!\n", __func__);
return -ENOMEM;
}
p->name = pca9450_name;
p->interface = PMIC_I2C;
p->number_of_regs = PCA9450_REG_NUM;
p->hw.i2c.addr = 0x25;
p->hw.i2c.tx_num = 1;
p->bus = bus;
return 0;
}