mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-19 19:28:36 +00:00
22172f6b7f
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>
50 lines
881 B
C
50 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;
|
|
}
|