X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=blobdiff_plain;f=board%2Fkaro%2Ftx6%2Fpmic.c;h=6e5b84c6d88573bca2c2a8f682accc6bf594b43f;hp=bf319902017d8e3586b03da7f6fb13a64dd41358;hb=b613e722f29c16b73805731b93c405b391f34708;hpb=6128b0deae2481daa611731ee5ebbae05e8cd3dd diff --git a/board/karo/tx6/pmic.c b/board/karo/tx6/pmic.c index bf31990201..6e5b84c6d8 100644 --- a/board/karo/tx6/pmic.c +++ b/board/karo/tx6/pmic.c @@ -14,15 +14,15 @@ * GNU General Public License for more details. * */ - #include +#include #include #include "pmic.h" static struct { uchar addr; - int (*init)(uchar addr); + pmic_setup_func *init; } i2c_addrs[] = { #ifdef CONFIG_LTC3676 { 0x3c, ltc3676_pmic_setup, }, @@ -35,15 +35,23 @@ static struct { #endif }; -int tx6_pmic_init(void) +int tx6_pmic_init(int addr, struct pmic_regs *regs, size_t num_regs) { - int ret; + int ret = -ENODEV; int i; + debug("Probing for I2C dev 0x%02x\n", addr); for (i = 0; i < ARRAY_SIZE(i2c_addrs); i++) { - ret = i2c_probe(i2c_addrs[i].addr); + u8 i2c_addr = i2c_addrs[i].addr; + + if (i2c_addr != addr) + continue; + + debug("Probing for I2C dev 0x%02x\n", i2c_addr); + ret = i2c_probe(i2c_addr); if (ret == 0) { - i2c_addrs[i].init(i2c_addrs[i].addr); + debug("Initializing PMIC at I2C addr 0x%02x\n", i2c_addr); + ret = i2c_addrs[i].init(i2c_addr, regs, num_regs); break; } }