162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Runtime PM support code for OMAP1 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Author: Kevin Hilman, Deep Root Systems, LLC 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Copyright (C) 2010 Texas Instruments, Inc. 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci#include <linux/init.h> 1062306a36Sopenharmony_ci#include <linux/kernel.h> 1162306a36Sopenharmony_ci#include <linux/io.h> 1262306a36Sopenharmony_ci#include <linux/pm_runtime.h> 1362306a36Sopenharmony_ci#include <linux/pm_clock.h> 1462306a36Sopenharmony_ci#include <linux/platform_device.h> 1562306a36Sopenharmony_ci#include <linux/mutex.h> 1662306a36Sopenharmony_ci#include <linux/clk.h> 1762306a36Sopenharmony_ci#include <linux/err.h> 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#include "soc.h" 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_cistatic struct dev_pm_domain default_pm_domain = { 2262306a36Sopenharmony_ci .ops = { 2362306a36Sopenharmony_ci USE_PM_CLK_RUNTIME_OPS 2462306a36Sopenharmony_ci USE_PLATFORM_PM_SLEEP_OPS 2562306a36Sopenharmony_ci }, 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cistatic struct pm_clk_notifier_block platform_bus_notifier = { 2962306a36Sopenharmony_ci .pm_domain = &default_pm_domain, 3062306a36Sopenharmony_ci .con_ids = { "ick", "fck", NULL, }, 3162306a36Sopenharmony_ci}; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cistatic int __init omap1_pm_runtime_init(void) 3462306a36Sopenharmony_ci{ 3562306a36Sopenharmony_ci if (!cpu_class_is_omap1()) 3662306a36Sopenharmony_ci return -ENODEV; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci pm_clk_add_notifier(&platform_bus_type, &platform_bus_notifier); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci return 0; 4162306a36Sopenharmony_ci} 4262306a36Sopenharmony_cicore_initcall(omap1_pm_runtime_init); 43