|
@@ -0,0 +1,71 @@
|
|
|
+/*
|
|
|
+ * pm_clock.h - Definitions and headers related to device clocks.
|
|
|
+ *
|
|
|
+ * Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Renesas Electronics Corp.
|
|
|
+ *
|
|
|
+ * This file is released under the GPLv2.
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef _LINUX_PM_CLOCK_H
|
|
|
+#define _LINUX_PM_CLOCK_H
|
|
|
+
|
|
|
+#include <linux/device.h>
|
|
|
+#include <linux/notifier.h>
|
|
|
+
|
|
|
+struct pm_clk_notifier_block {
|
|
|
+ struct notifier_block nb;
|
|
|
+ struct dev_pm_domain *pm_domain;
|
|
|
+ char *con_ids[];
|
|
|
+};
|
|
|
+
|
|
|
+#ifdef CONFIG_PM_CLK
|
|
|
+static inline bool pm_clk_no_clocks(struct device *dev)
|
|
|
+{
|
|
|
+ return dev && dev->power.subsys_data
|
|
|
+ && list_empty(&dev->power.subsys_data->clock_list);
|
|
|
+}
|
|
|
+
|
|
|
+extern void pm_clk_init(struct device *dev);
|
|
|
+extern int pm_clk_create(struct device *dev);
|
|
|
+extern void pm_clk_destroy(struct device *dev);
|
|
|
+extern int pm_clk_add(struct device *dev, const char *con_id);
|
|
|
+extern void pm_clk_remove(struct device *dev, const char *con_id);
|
|
|
+extern int pm_clk_suspend(struct device *dev);
|
|
|
+extern int pm_clk_resume(struct device *dev);
|
|
|
+#else
|
|
|
+static inline bool pm_clk_no_clocks(struct device *dev)
|
|
|
+{
|
|
|
+ return true;
|
|
|
+}
|
|
|
+static inline void pm_clk_init(struct device *dev)
|
|
|
+{
|
|
|
+}
|
|
|
+static inline int pm_clk_create(struct device *dev)
|
|
|
+{
|
|
|
+ return -EINVAL;
|
|
|
+}
|
|
|
+static inline void pm_clk_destroy(struct device *dev)
|
|
|
+{
|
|
|
+}
|
|
|
+static inline int pm_clk_add(struct device *dev, const char *con_id)
|
|
|
+{
|
|
|
+ return -EINVAL;
|
|
|
+}
|
|
|
+static inline void pm_clk_remove(struct device *dev, const char *con_id)
|
|
|
+{
|
|
|
+}
|
|
|
+#define pm_clk_suspend NULL
|
|
|
+#define pm_clk_resume NULL
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_HAVE_CLK
|
|
|
+extern void pm_clk_add_notifier(struct bus_type *bus,
|
|
|
+ struct pm_clk_notifier_block *clknb);
|
|
|
+#else
|
|
|
+static inline void pm_clk_add_notifier(struct bus_type *bus,
|
|
|
+ struct pm_clk_notifier_block *clknb)
|
|
|
+{
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
+#endif
|