• Andres Salomon's avatar
    mfd: add platform_device sharing support for mfd · a9bbba99
    Andres Salomon authored
    This adds functions to enable platform_device sharing for mfd clients.
    
    Each platform driver (mfd client) that wants to share an mfd_cell's
    platform_device uses the mfd_shared_platform_driver_{un,}register()
    functions instead of platform_driver_{un,}register().  Along with
    registering the platform driver, these also register a new platform
    device with the same characteristics as the original cell, but a different
    name.  Given an mfd_cell with the name "foo", drivers that want to
    share access to its resources can call mfd_shared_platform_driver_register
    with platform drivers named (for example) "bar" and "baz".  This
    will register two platform devices and drivers named "bar" and "baz"
    that share the same cell as the platform device "foo".  The drivers
    can then call "foo" cell's enable hooks (or mfd_shared_cell_enable)
    to enable resources, and obtain platform resources as they normally
    would.
    
    This deals with platform handling only; mfd driver-specific details,
    hardware handling, refcounting, etc are all dealt with separately.
    Signed-off-by: default avatarAndres Salomon <dilinger@queued.net>
    Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
    a9bbba99
mfd-core.c 5.96 KB