Skip to content
  • Fabio Estevam's avatar
    mfd: da9052-core: Fix platform-device id collision · b3f6c73d
    Fabio Estevam authored
    Allow multiple DA9052 regulators be registered by registering with
    PLATFORM_DEVID_AUTO instead of PLATFORM_DEVID_NONE.
    
    The subdevices are currently registered with PLATFORM_DEVID_NONE, which
    will cause a name collision on the platform bus when multiple regulators
    are registered:
    
    [    0.128855] da9052-regulator da9052-regulator: invalid regulator ID specified
    [    0.128973] da9052-regulator: probe of da9052-regulator failed with error -22
    [    0.129148] ------------[ cut here ]------------
    [    0.129200] WARNING: CPU: 0 PID: 1 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x5c/0x7c()
    [    0.129233] sysfs: cannot create duplicate filename '/devices/platform/soc/60000000.aips/63fc8000.i2c/i2c-0/0-0048/da9052-regulator
    ...
    [    0.132891] ------------[ cut here ]------------
    [    0.132924] WARNING: CPU: 0 PID: 1 at lib/kobject.c:240 kobject_add_internal+0x24c/0x2cc()
    [    0.132957] kobject_add_internal failed for da9052-regulator with -EEXIST, don't try to register things with the same name in the same directory.
    ...
    [    0.137000] da9052 0-0048: mfd_add_devices failed: -17
    [    0.138486] da9052: probe of 0-0048 failed with error -17
    
    Based on the fix done by Johan Hovold at commit b6684228
    
     ("mfd:
    viperboard: Fix platform-device id collision").
    
    Tested on a imx53-qsb board, where multiple DA9053 regulators can be
    successfully probed.
    
    Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    b3f6c73d