summaryrefslogtreecommitdiff
path: root/drivers/soc/samsung/exynos-pmu.h
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2016-03-13 01:10:20 (GMT)
committerOlof Johansson <olof@lixom.net>2016-03-13 01:10:20 (GMT)
commit2a993a587e268459e376303aa894a6b236565b6d (patch)
tree1113a819c60ffa7113c2d3afae4c27419c6b4d84 /drivers/soc/samsung/exynos-pmu.h
parent0d8ec17ca34ba9dad6932c32ee2d114b37744c23 (diff)
parent15925cfcf83361b4eb8c7ffb51ad29b5f1e32a23 (diff)
downloadlinux-2a993a587e268459e376303aa894a6b236565b6d.tar.xz
Merge tag 'samsung-soc-4.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/soc
Samsung Exynos (and older platforms) improvements for v4.6: 1. Split out Exynos PMU driver implementation from arm/mach-exynos to the drivers/soc/samsung which will allow re-use of it on ARM64. 2. Use generic DT cpufreq driver on Exynos542x/5800. 3. Minor cleanups. * tag 'samsung-soc-4.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: s3c24xx: Avoid warning for inb/outb ARM: SAMSUNG: Remove unused register offset definition ARM: EXYNOS: Cleanup header files inclusion drivers: soc: samsung: Enable COMPILE_TEST MAINTAINERS: Add maintainers entry for drivers/soc/samsung drivers: soc: Add support for Exynos PMU driver ARM: EXYNOS: Split up exynos5420 SoC specific PMU data ARM: EXYNOS: Split up exynos5250 SoC specific PMU data ARM: EXYNOS: Split up exynos4 SoC specific PMU data ARM: EXYNOS: Split up exynos3250 SoC specific PMU data ARM: EXYNOS: Move pmu specific headers under "linux/soc/samsung" ARM: EXYNOS: Correct header comment in Kconfig file ARM: EXYNOS: Use generic cpufreq driver for Exynos5422/5800 ARM: EXYNOS: Use generic cpufreq driver for Exynos5420 ARM: s3c64xx: use "depends on" instead of "if" after prompt ARM: plat-samsung: use to_platform_device() ARM: EXYNOS: Code cleanup in map.h ARM: EXYNOS: Remove unused static mapping of CMU for exynos5 Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/soc/samsung/exynos-pmu.h')
-rw-r--r--drivers/soc/samsung/exynos-pmu.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/drivers/soc/samsung/exynos-pmu.h b/drivers/soc/samsung/exynos-pmu.h
new file mode 100644
index 0000000..a469e36
--- /dev/null
+++ b/drivers/soc/samsung/exynos-pmu.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com
+ *
+ * Header for EXYNOS PMU Driver support
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef __EXYNOS_PMU_H
+#define __EXYNOS_PMU_H
+
+#include <linux/io.h>
+
+#define PMU_TABLE_END (-1U)
+
+struct exynos_pmu_conf {
+ unsigned int offset;
+ u8 val[NUM_SYS_POWERDOWN];
+};
+
+struct exynos_pmu_data {
+ const struct exynos_pmu_conf *pmu_config;
+ const struct exynos_pmu_conf *pmu_config_extra;
+
+ void (*pmu_init)(void);
+ void (*powerdown_conf)(enum sys_powerdown);
+ void (*powerdown_conf_extra)(enum sys_powerdown);
+};
+
+extern void __iomem *pmu_base_addr;
+/* list of all exported SoC specific data */
+extern const struct exynos_pmu_data exynos3250_pmu_data;
+extern const struct exynos_pmu_data exynos4210_pmu_data;
+extern const struct exynos_pmu_data exynos4212_pmu_data;
+extern const struct exynos_pmu_data exynos4412_pmu_data;
+extern const struct exynos_pmu_data exynos5250_pmu_data;
+extern const struct exynos_pmu_data exynos5420_pmu_data;
+
+extern void pmu_raw_writel(u32 val, u32 offset);
+extern u32 pmu_raw_readl(u32 offset);
+#endif /* __EXYNOS_PMU_H */