On 2014ë 12ì 01ì 01:16, Pankaj Dubey wrote:
This patch splits up exynos-pmu.c file, and moves PMU configuration data
and functions handing those data into SoC specific PMU files, keeping
driver structure and common functionality into exynos-pmu.c.
At the same time it also separates compilation of these different SoC PMU files
based on CONFIG_ARM64 and CONFIG_ARM. This way we can reduce overhead of ARM64
SoC's PMU getting compiled when kernel is built for ARM and vice-versa.
This patch also removes .owner field from exynos-pmu.c as it's redundant for
drivers calling platform_driver_register to register platform_driver.
Signed-off-by: Pankaj Dubey <pankaj.dubey@xxxxxxxxxxx>
This patch is prepared on top of kgene/for-next and following patch  from
This patch tries to address some of concerns raised for using exynos-pmu.c for
ARM and ARM64 based SoC at these threads , .
Since Exynos SoC's has similar PMU IP, and already existing bindings can be
used, it makes sense to keep single driver for both ARM and ARM64 based SoCs.
All common functionalties are in exynos-pmu.c whereas SoC specific data and
handling are moved into SoC specific exynosNNNN-pmu files.
All changes are compiled tested only. Any improvements/suggestions are most
drivers/soc/samsung/Makefile | 9 +-
drivers/soc/samsung/exynos-pmu.c | 1293 +---------------------------------
drivers/soc/samsung/exynos-pmu.h | 63 ++
drivers/soc/samsung/exynos3250-pmu.c | 176 +++++
drivers/soc/samsung/exynos4-pmu.c | 223 ++++++
drivers/soc/samsung/exynos5250-pmu.c | 196 ++++++
drivers/soc/samsung/exynos5420-pmu.c | 298 ++++++++
drivers/soc/samsung/exynos7-pmu.c | 441 ++++++++++++
8 files changed, 1412 insertions(+), 1287 deletions(-)
create mode 100644 drivers/soc/samsung/exynos-pmu.h
create mode 100644 drivers/soc/samsung/exynos3250-pmu.c
create mode 100644 drivers/soc/samsung/exynos4-pmu.c
create mode 100644 drivers/soc/samsung/exynos5250-pmu.c
create mode 100644 drivers/soc/samsung/exynos5420-pmu.c
create mode 100644 drivers/soc/samsung/exynos7-pmu.c
diff --git a/drivers/soc/samsung/exynos-pmu.h b/drivers/soc/samsung/exynos-pmu.h
new file mode 100644
@@ -0,0 +1,63 @@
+ * Copyright (c) 2014 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.
+#define PMU_TABLE_END (-1U)
+static void __iomem *pmu_base_addr;
AFAIK, static variable in header file can't be used globally. It would be placed
in exynos-pmu.c or elsewhere and then only extern declaration is allowed here.
If I'm wrong, please let me know.