forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* Intel LPSS core support. |
|
* |
|
* Copyright (C) 2015, Intel Corporation |
|
* |
|
* Authors: Andy Shevchenko <[email protected]> |
|
* Mika Westerberg <[email protected]> |
|
*/ |
|
|
|
#ifndef __MFD_INTEL_LPSS_H |
|
#define __MFD_INTEL_LPSS_H |
|
|
|
#include <linux/pm.h> |
|
|
|
struct device; |
|
struct resource; |
|
struct property_entry; |
|
|
|
struct intel_lpss_platform_info { |
|
struct resource *mem; |
|
int irq; |
|
unsigned long clk_rate; |
|
const char *clk_con_id; |
|
struct property_entry *properties; |
|
}; |
|
|
|
int intel_lpss_probe(struct device *dev, |
|
const struct intel_lpss_platform_info *info); |
|
void intel_lpss_remove(struct device *dev); |
|
|
|
#ifdef CONFIG_PM |
|
int intel_lpss_prepare(struct device *dev); |
|
int intel_lpss_suspend(struct device *dev); |
|
int intel_lpss_resume(struct device *dev); |
|
|
|
#ifdef CONFIG_PM_SLEEP |
|
#define INTEL_LPSS_SLEEP_PM_OPS \ |
|
.prepare = intel_lpss_prepare, \ |
|
SET_LATE_SYSTEM_SLEEP_PM_OPS(intel_lpss_suspend, intel_lpss_resume) |
|
#else |
|
#define INTEL_LPSS_SLEEP_PM_OPS |
|
#endif |
|
|
|
#define INTEL_LPSS_RUNTIME_PM_OPS \ |
|
.runtime_suspend = intel_lpss_suspend, \ |
|
.runtime_resume = intel_lpss_resume, |
|
|
|
#else /* !CONFIG_PM */ |
|
#define INTEL_LPSS_SLEEP_PM_OPS |
|
#define INTEL_LPSS_RUNTIME_PM_OPS |
|
#endif /* CONFIG_PM */ |
|
|
|
#define INTEL_LPSS_PM_OPS(name) \ |
|
const struct dev_pm_ops name = { \ |
|
INTEL_LPSS_SLEEP_PM_OPS \ |
|
INTEL_LPSS_RUNTIME_PM_OPS \ |
|
} |
|
|
|
#endif /* __MFD_INTEL_LPSS_H */
|
|
|