xref: /rk3399_rockchip-uboot/drivers/power/pmic/pmic_max77696.c (revision 7a1af7a79bd79ded6a78d0c1afdbc3353669e313)
1*a643acd4SFabio Estevam /*
2*a643acd4SFabio Estevam  *  Copyright (C) 2015 Freescale Semiconductor, Inc.
3*a643acd4SFabio Estevam  *  Fabio Estevam <fabio.estevam@freescale.com>
4*a643acd4SFabio Estevam  *
5*a643acd4SFabio Estevam  * SPDX-License-Identifier:	GPL-2.0+
6*a643acd4SFabio Estevam  */
7*a643acd4SFabio Estevam 
8*a643acd4SFabio Estevam #include <common.h>
9*a643acd4SFabio Estevam #include <errno.h>
10*a643acd4SFabio Estevam #include <i2c.h>
11*a643acd4SFabio Estevam #include <power/pmic.h>
12*a643acd4SFabio Estevam #include <power/max77696_pmic.h>
13*a643acd4SFabio Estevam 
power_max77696_init(unsigned char bus)14*a643acd4SFabio Estevam int power_max77696_init(unsigned char bus)
15*a643acd4SFabio Estevam {
16*a643acd4SFabio Estevam 	static const char name[] = "MAX77696";
17*a643acd4SFabio Estevam 	struct pmic *p = pmic_alloc();
18*a643acd4SFabio Estevam 
19*a643acd4SFabio Estevam 	if (!p) {
20*a643acd4SFabio Estevam 		printf("%s: POWER allocation error!\n", __func__);
21*a643acd4SFabio Estevam 		return -ENOMEM;
22*a643acd4SFabio Estevam 	}
23*a643acd4SFabio Estevam 
24*a643acd4SFabio Estevam 	p->name = name;
25*a643acd4SFabio Estevam 	p->interface = PMIC_I2C;
26*a643acd4SFabio Estevam 	p->number_of_regs = PMIC_NUM_OF_REGS;
27*a643acd4SFabio Estevam 	p->hw.i2c.addr = CONFIG_POWER_MAX77696_I2C_ADDR;
28*a643acd4SFabio Estevam 	p->hw.i2c.tx_num = 1;
29*a643acd4SFabio Estevam 	p->bus = bus;
30*a643acd4SFabio Estevam 
31*a643acd4SFabio Estevam 	return 0;
32*a643acd4SFabio Estevam }
33