linux/include/linux/pm_clock.h
<<
>>
Prefs
   1/*
   2 * pm_clock.h - Definitions and headers related to device clocks.
   3 *
   4 * Copyright (C) 2011 Rafael J. Wysocki <rjw@sisk.pl>, Renesas Electronics Corp.
   5 *
   6 * This file is released under the GPLv2.
   7 */
   8
   9#ifndef _LINUX_PM_CLOCK_H
  10#define _LINUX_PM_CLOCK_H
  11
  12#include <linux/device.h>
  13#include <linux/notifier.h>
  14
  15struct pm_clk_notifier_block {
  16        struct notifier_block nb;
  17        struct dev_pm_domain *pm_domain;
  18        char *con_ids[];
  19};
  20
  21#ifdef CONFIG_PM_CLK
  22static inline bool pm_clk_no_clocks(struct device *dev)
  23{
  24        return dev && dev->power.subsys_data
  25                && list_empty(&dev->power.subsys_data->clock_list);
  26}
  27
  28extern void pm_clk_init(struct device *dev);
  29extern int pm_clk_create(struct device *dev);
  30extern void pm_clk_destroy(struct device *dev);
  31extern int pm_clk_add(struct device *dev, const char *con_id);
  32extern void pm_clk_remove(struct device *dev, const char *con_id);
  33extern int pm_clk_suspend(struct device *dev);
  34extern int pm_clk_resume(struct device *dev);
  35#else
  36static inline bool pm_clk_no_clocks(struct device *dev)
  37{
  38        return true;
  39}
  40static inline void pm_clk_init(struct device *dev)
  41{
  42}
  43static inline int pm_clk_create(struct device *dev)
  44{
  45        return -EINVAL;
  46}
  47static inline void pm_clk_destroy(struct device *dev)
  48{
  49}
  50static inline int pm_clk_add(struct device *dev, const char *con_id)
  51{
  52        return -EINVAL;
  53}
  54static inline void pm_clk_remove(struct device *dev, const char *con_id)
  55{
  56}
  57#define pm_clk_suspend  NULL
  58#define pm_clk_resume   NULL
  59#endif
  60
  61#ifdef CONFIG_HAVE_CLK
  62extern void pm_clk_add_notifier(struct bus_type *bus,
  63                                        struct pm_clk_notifier_block *clknb);
  64#else
  65static inline void pm_clk_add_notifier(struct bus_type *bus,
  66                                        struct pm_clk_notifier_block *clknb)
  67{
  68}
  69#endif
  70
  71#endif
  72