]> git.ipfire.org Git - thirdparty/u-boot.git/blobdiff - board/freescale/common/emc2305.c
boards: lx2160a: Add support of I2C driver model
[thirdparty/u-boot.git] / board / freescale / common / emc2305.c
index 8523084da9c94d99b32002e8f68c249b1a996c78..b1ca051db23b8bb0c1df9dc61a53e75d7a5f9ea3 100644 (file)
@@ -24,10 +24,22 @@ void set_fan_speed(u8 data)
                               I2C_EMC2305_FAN5};
 
        for (index = 0; index < NUM_OF_FANS; index++) {
+#ifndef CONFIG_DM_I2C
                if (i2c_write(I2C_EMC2305_ADDR, Fan[index], 1, &data, 1) != 0) {
                        printf("Error: failed to change fan speed @%x\n",
                               Fan[index]);
                }
+#else
+               struct udevice *dev;
+
+               if (i2c_get_chip_for_busnum(0, I2C_EMC2305_ADDR, 1, &dev))
+                       continue;
+
+               if (dm_i2c_write(dev, Fan[index], &data, 1) != 0) {
+                       printf("Error: failed to change fan speed @%x\n",
+                              Fan[index]);
+               }
+#endif
        }
 }
 
@@ -36,6 +48,15 @@ void emc2305_init(void)
        u8 data;
 
        data = I2C_EMC2305_CMD;
+#ifndef CONFIG_DM_I2C
        if (i2c_write(I2C_EMC2305_ADDR, I2C_EMC2305_CONF, 1, &data, 1) != 0)
                printf("Error: failed to configure EMC2305\n");
+#else
+       struct udevice *dev;
+
+       if (!i2c_get_chip_for_busnum(0, I2C_EMC2305_ADDR, 1, &dev))
+               if (dm_i2c_write(dev, I2C_EMC2305_CONF, &data, 1))
+                       printf("Error: failed to configure EMC2305\n");
+#endif
+
 }