• Tony Lindgren's avatar
    PM / AVS: SmartReflex: Prepare to use device tree based probing · 2ad1ec0d
    Tony Lindgren authored
    We are currently probing smartreflex with omap_device while we are
    already probing smartreflex related interconnect target module with
    ti-sysc driver and dts data.
    
    Before we can flip things on for ti-sysc, we need to prepare the
    smartreflex driver a bit:
    
    1. The smartreflex clock is really for the whole interconnect target
       module. So it may be configured at the parent device level with
       ti-sysc
    
    2. With ti-sysc, we have the child device manage interconnect target
       module directly if pm_runtime_irq_safe() is set and there is only
       one child. In that case nobody else is going to call pm_runtime_get
       and put, so we need to add these calls to idle smartreflex properly
       after probe if not fully configured
    
    3. With ti-sysc, the parent driver may rebind. So we want to use
       platform_driver_register() and don't want probe to be __init
    
    Note that this patch depends on the related changes to ti-sysc driver
    and omap_device probing to prevent both ti-sysc and omap_device to
    try to probe smartreflex.
    
    Cc: linux-pm@vger.kernel.org
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: default avatarKevin Hilman <khilman@baylibre.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    2ad1ec0d
smartreflex.c 28.9 KB