]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - board/karo/tx6/pmic.c
karo: tx6ul: disable the PMIC for '_noenv' U-Boot
[karo-tx-uboot.git] / board / karo / tx6 / pmic.c
index a29a74bd17cc5349fe3210fb5bb7499ad32a38af..75a0bf96c429adc197aca9e3af7e39c516211272 100644 (file)
 
 #include "pmic.h"
 
+#ifdef CONFIG_SYS_I2C
 static struct {
        uchar addr;
-       int (*init)(uchar addr);
+       pmic_setup_func *init;
+       const char *name;
 } i2c_addrs[] = {
 #ifdef CONFIG_LTC3676
-       { 0x3c, ltc3676_pmic_setup, },
+       { 0x3c, ltc3676_pmic_setup, "LTC3676", },
 #endif
 #ifdef CONFIG_RN5T618
-       { 0x32, rn5t618_pmic_setup, },
+       { 0x32, rn5t618_pmic_setup, "RN5T618", },
 #endif
 #ifdef CONFIG_RN5T567
-       { 0x33, rn5t567_pmic_setup, },
+       { 0x33, rn5t567_pmic_setup, "RN5T567", },
 #endif
 };
 
-int tx6_pmic_init(int addr)
+int tx6_pmic_init(int addr, struct pmic_regs *regs, size_t num_regs)
 {
        int ret = -ENODEV;
        int i;
 
+       printf("PMIC: ");
+
        debug("Probing for I2C dev 0x%02x\n", addr);
        for (i = 0; i < ARRAY_SIZE(i2c_addrs); i++) {
                u8 i2c_addr = i2c_addrs[i].addr;
@@ -51,9 +55,17 @@ int tx6_pmic_init(int addr)
                ret = i2c_probe(i2c_addr);
                if (ret == 0) {
                        debug("Initializing PMIC at I2C addr 0x%02x\n", i2c_addr);
-                       ret = i2c_addrs[i].init(i2c_addr);
+                       ret = i2c_addrs[i].init(i2c_addr, regs, num_regs);
                        break;
                }
        }
+       printf("%s\n", i == ARRAY_SIZE(i2c_addrs) ? "N/A" : i2c_addrs[i].name);
        return ret;
 }
+#else
+int tx6_pmic_init(int addr, struct pmic_regs *regs, size_t num_regs)
+{
+       printf("PMIC: N/A\n");
+       return 0;
+}
+#endif