Skip to content
  • Rafael J. Wysocki's avatar
    PM: Add support for device power domains · 7538e3db
    Rafael J. Wysocki authored
    
    
    The platform bus type is often used to handle Systems-on-a-Chip (SoC)
    where all devices are represented by objects of type struct
    platform_device.  In those cases the same "platform" device driver
    may be used with multiple different system configurations, but the
    actions needed to put the devices it handles into a low-power state
    and back into the full-power state may depend on the design of the
    given SoC.  The driver, however, cannot possibly include all the
    information necessary for the power management of its device on all
    the systems it is used with.  Moreover, the device hierarchy in its
    current form also is not suitable for representing this kind of
    information.
    
    The patch below attempts to address this problem by introducing
    objects of type struct dev_power_domain that can be used for
    representing power domains within a SoC.  Every struct
    dev_power_domain object provides a sets of device power
    management callbacks that can be used to perform what's needed for
    device power management in addition to the operations carried out by
    the device's driver and subsystem.
    
    Namely, if a struct dev_power_domain object is pointed to by the
    pwr_domain field in a struct device, the callbacks provided by its
    ops member will be executed in addition to the corresponding
    callbacks provided by the device's subsystem and driver during all
    power transitions.
    
    Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Tested-and-acked-by: default avatarKevin Hilman <khilman@ti.com>
    7538e3db