Hello Lee, On 09/18/2014 09:49 AM, Javier Martinez Canillas wrote: >>> int cros_ec_register(struct cros_ec_device *ec_dev) >>> { >>> struct device *dev = ec_dev->dev; >>> + struct device_node *node = dev->of_node; >>> int err = 0; >>> >>> if (ec_dev->din_size) { >>> @@ -140,12 +129,12 @@ int cros_ec_register(struct cros_ec_device *ec_dev) >>> >>> mutex_init(&ec_dev->lock); >>> >>> - err = mfd_add_devices(dev, 0, cros_devs, >>> - ARRAY_SIZE(cros_devs), >>> - NULL, ec_dev->irq, NULL); >>> - if (err) { >>> - dev_err(dev, "failed to add mfd devices\n"); >>> - return err; >> >> So these devices will only ever probe with DT now ... >> > > Well, these are preparatory patches to reduce the delta between upstream and > the downstream so the missing functionality could be added. One of the missing > drivers is the cros_ec_dev.c [0] which allows user-space to access the > ChromeOS Embedded Controller using a virtual character device (/dev/cros_ec). > > Since that is a virtual device, it does not fit on the DT which only describes > hw and also is used on x86 machines so that subdevice is still probed using > mfd_add_devices() and the mfd_cells array is not empty in the downstream > cros_ec driver [1]. > I posted a new revision (v4) of the series but dropped this patch since this change probably makes more sense once the cros_ec_dev driver lands. Since then the mfd cells array will not be empty and not all subdevices will be probed with of_platform_populate(). Best regards, Javier -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html