aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/intel-lpss.h
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2015-07-27 11:04:03 -0400
committerLee Jones <lee.jones@linaro.org>2015-07-28 04:56:47 -0400
commit4b45efe8526359a11ca60a299bef3aebf413fd77 (patch)
treee17e646d07b2959ce6fbe038abcecc8eb4e444e8 /drivers/mfd/intel-lpss.h
parent667dfed98615ae1fc4cc05b0763078435598c0f5 (diff)
mfd: Add support for Intel Sunrisepoint LPSS devices
The new coming Intel platforms such as Skylake will contain Sunrisepoint PCH. The main difference to the previous platforms is that the LPSS devices are compound devices where usually main (SPI, HSUART, or I2C) and DMA IPs are present. This patch brings the driver for such devices found on Sunrisepoint PCH. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/intel-lpss.h')
-rw-r--r--drivers/mfd/intel-lpss.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/drivers/mfd/intel-lpss.h b/drivers/mfd/intel-lpss.h
new file mode 100644
index 000000000000..f28cb28a62f8
--- /dev/null
+++ b/drivers/mfd/intel-lpss.h
@@ -0,0 +1,62 @@
1/*
2 * Intel LPSS core support.
3 *
4 * Copyright (C) 2015, Intel Corporation
5 *
6 * Authors: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
7 * Mika Westerberg <mika.westerberg@linux.intel.com>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 */
13
14#ifndef __MFD_INTEL_LPSS_H
15#define __MFD_INTEL_LPSS_H
16
17struct device;
18struct resource;
19
20struct intel_lpss_platform_info {
21 struct resource *mem;
22 int irq;
23 unsigned long clk_rate;
24 const char *clk_con_id;
25};
26
27int intel_lpss_probe(struct device *dev,
28 const struct intel_lpss_platform_info *info);
29void intel_lpss_remove(struct device *dev);
30
31#ifdef CONFIG_PM
32int intel_lpss_prepare(struct device *dev);
33int intel_lpss_suspend(struct device *dev);
34int intel_lpss_resume(struct device *dev);
35
36#ifdef CONFIG_PM_SLEEP
37#define INTEL_LPSS_SLEEP_PM_OPS \
38 .prepare = intel_lpss_prepare, \
39 .suspend = intel_lpss_suspend, \
40 .resume = intel_lpss_resume, \
41 .freeze = intel_lpss_suspend, \
42 .thaw = intel_lpss_resume, \
43 .poweroff = intel_lpss_suspend, \
44 .restore = intel_lpss_resume,
45#endif
46
47#define INTEL_LPSS_RUNTIME_PM_OPS \
48 .runtime_suspend = intel_lpss_suspend, \
49 .runtime_resume = intel_lpss_resume,
50
51#else /* !CONFIG_PM */
52#define INTEL_LPSS_SLEEP_PM_OPS
53#define INTEL_LPSS_RUNTIME_PM_OPS
54#endif /* CONFIG_PM */
55
56#define INTEL_LPSS_PM_OPS(name) \
57const struct dev_pm_ops name = { \
58 INTEL_LPSS_SLEEP_PM_OPS \
59 INTEL_LPSS_RUNTIME_PM_OPS \
60}
61
62#endif /* __MFD_INTEL_LPSS_H */