linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
@ 2015-08-24  8:02 Pankaj Dubey
  2015-08-24  8:02 ` [PATCH v2 1/7] ARM: EXYNOS: remove unused static mapping of CMU for exynos5 Pankaj Dubey
                   ` (9 more replies)
  0 siblings, 10 replies; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

This patch set adds support for Exynos SROM controller DT based driver.
Currently SROM register sets are used only during S2R, so driver
basically added for taking care of S2R. It will help us in removing
static mapping from exynos.c and other extra code handline during S2R.

This patch set also updated exynos4 and exynos5 dtsi files for with device
node for srom, and added binding documentation for the same.

First two patches are some minor cleanup in mach-exynos.

Patchset v1 was posted here[1]
[1]: https://lkml.org/lkml/2015/4/29/98

Changes since v1:
 - Rebased to latest kgene tree.
 - Addressed review comments from Krzysztof Kozlowski.
 - Add two new patches for minor cleanup in exynos.c and map.h

Pankaj Dubey (7):
  ARM: EXYNOS: remove unused static mapping of CMU for exynos5
  ARM: EXYNOS: code cleanup in map.h
  drivers: soc: add support for exynos SROM driver
  ARM: EXYNOS: Remove SROM related register settings from mach-exynos
  ARM: dts: add SROM device node for exynos4
  ARM: dts: add SROM device node for exynos5
  Documentation: dt-bindings: add exynos-srom binding information

 .../bindings/arm/samsung/exynos-srom.txt           |  12 ++
 arch/arm/boot/dts/exynos4.dtsi                     |   5 +
 arch/arm/boot/dts/exynos5.dtsi                     |   5 +
 arch/arm/mach-exynos/Kconfig                       |   2 +
 arch/arm/mach-exynos/common.h                      |   2 -
 arch/arm/mach-exynos/exynos.c                      |  22 ----
 arch/arm/mach-exynos/include/mach/map.h            |   8 --
 arch/arm/mach-exynos/regs-srom.h                   |  53 --------
 arch/arm/mach-exynos/suspend.c                     |  20 +--
 arch/arm/plat-samsung/include/plat/map-s5p.h       |   1 -
 drivers/soc/Kconfig                                |   1 +
 drivers/soc/Makefile                               |   1 +
 drivers/soc/samsung/Kconfig                        |  13 ++
 drivers/soc/samsung/Makefile                       |   1 +
 drivers/soc/samsung/exynos-srom.c                  | 143 +++++++++++++++++++++
 drivers/soc/samsung/exynos-srom.h                  |  51 ++++++++
 16 files changed, 236 insertions(+), 104 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt
 delete mode 100644 arch/arm/mach-exynos/regs-srom.h
 create mode 100644 drivers/soc/samsung/Kconfig
 create mode 100644 drivers/soc/samsung/Makefile
 create mode 100644 drivers/soc/samsung/exynos-srom.c
 create mode 100644 drivers/soc/samsung/exynos-srom.h

-- 
2.4.5

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 1/7] ARM: EXYNOS: remove unused static mapping of CMU for exynos5
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
@ 2015-08-24  8:02 ` Pankaj Dubey
  2015-08-25  0:55   ` Krzysztof Kozlowski
  2015-08-24  8:02 ` [PATCH v2 2/7] ARM: EXYNOS: code cleanup in map.h Pankaj Dubey
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

Remove unused static mapping of exynos5 CMU and related code.

Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 arch/arm/mach-exynos/exynos.c           | 5 -----
 arch/arm/mach-exynos/include/mach/map.h | 1 -
 2 files changed, 6 deletions(-)

diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 1c47aee..524aa6f 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -70,11 +70,6 @@ static struct map_desc exynos5_iodesc[] __initdata = {
 		.pfn		= __phys_to_pfn(EXYNOS5_PA_SROMC),
 		.length		= SZ_4K,
 		.type		= MT_DEVICE,
-	}, {
-		.virtual	= (unsigned long)S5P_VA_CMU,
-		.pfn		= __phys_to_pfn(EXYNOS5_PA_CMU),
-		.length		= 144 * SZ_1K,
-		.type		= MT_DEVICE,
 	},
 };
 
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index de3ae59..a2acba3 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -25,7 +25,6 @@
 #define EXYNOS_PA_CHIPID		0x10000000
 
 #define EXYNOS4_PA_CMU			0x10030000
-#define EXYNOS5_PA_CMU			0x10010000
 
 #define EXYNOS4_PA_DMC0			0x10400000
 #define EXYNOS4_PA_DMC1			0x10410000
-- 
2.4.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 2/7] ARM: EXYNOS: code cleanup in map.h
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
  2015-08-24  8:02 ` [PATCH v2 1/7] ARM: EXYNOS: remove unused static mapping of CMU for exynos5 Pankaj Dubey
@ 2015-08-24  8:02 ` Pankaj Dubey
  2015-08-25  0:56   ` Krzysztof Kozlowski
  2015-08-24  8:02 ` [PATCH v2 3/7] drivers: soc: add support for exynos SROM driver Pankaj Dubey
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

Remove unused exynos5440 uart offset macro.

Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 arch/arm/mach-exynos/include/mach/map.h | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index a2acba3..86d8085 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -35,8 +35,4 @@
 #define EXYNOS4_PA_SROMC		0x12570000
 #define EXYNOS5_PA_SROMC		0x12250000
 
-/* Compatibility UART */
-
-#define EXYNOS5440_PA_UART0		0x000B0000
-
 #endif /* __ASM_ARCH_MAP_H */
-- 
2.4.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 3/7] drivers: soc: add support for exynos SROM driver
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
  2015-08-24  8:02 ` [PATCH v2 1/7] ARM: EXYNOS: remove unused static mapping of CMU for exynos5 Pankaj Dubey
  2015-08-24  8:02 ` [PATCH v2 2/7] ARM: EXYNOS: code cleanup in map.h Pankaj Dubey
@ 2015-08-24  8:02 ` Pankaj Dubey
  2015-08-25  1:26   ` Krzysztof Kozlowski
  2015-08-24  8:02 ` [PATCH v2 4/7] ARM: EXYNOS: Remove SROM related register settings from mach-exynos Pankaj Dubey
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds Exynos SROM controller driver which will handle
save restore of SROM registers during S2R.

Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 drivers/soc/Kconfig               |   1 +
 drivers/soc/Makefile              |   1 +
 drivers/soc/samsung/Kconfig       |  13 ++++
 drivers/soc/samsung/Makefile      |   1 +
 drivers/soc/samsung/exynos-srom.c | 143 ++++++++++++++++++++++++++++++++++++++
 drivers/soc/samsung/exynos-srom.h |  51 ++++++++++++++
 6 files changed, 210 insertions(+)
 create mode 100644 drivers/soc/samsung/Kconfig
 create mode 100644 drivers/soc/samsung/Makefile
 create mode 100644 drivers/soc/samsung/exynos-srom.c
 create mode 100644 drivers/soc/samsung/exynos-srom.h

diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
index 96ddecb..69107c9 100644
--- a/drivers/soc/Kconfig
+++ b/drivers/soc/Kconfig
@@ -2,6 +2,7 @@ menu "SOC (System On Chip) specific Drivers"
 
 source "drivers/soc/mediatek/Kconfig"
 source "drivers/soc/qcom/Kconfig"
+source "drivers/soc/samsung/Kconfig"
 source "drivers/soc/sunxi/Kconfig"
 source "drivers/soc/ti/Kconfig"
 source "drivers/soc/versatile/Kconfig"
diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index 7dc7c0d..34c4398 100644
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@ -4,6 +4,7 @@
 
 obj-$(CONFIG_ARCH_MEDIATEK)	+= mediatek/
 obj-$(CONFIG_ARCH_QCOM)		+= qcom/
+obj-$(CONFIG_SOC_SAMSUNG)	+= samsung/
 obj-$(CONFIG_ARCH_SUNXI)	+= sunxi/
 obj-$(CONFIG_ARCH_TEGRA)	+= tegra/
 obj-$(CONFIG_SOC_TI)		+= ti/
diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig
new file mode 100644
index 0000000..ea4bc2a
--- /dev/null
+++ b/drivers/soc/samsung/Kconfig
@@ -0,0 +1,13 @@
+#
+# SAMSUNG SoC drivers
+#
+menu "Samsung SOC driver support"
+
+config SOC_SAMSUNG
+	bool
+
+config EXYNOS_SROM
+	bool
+	depends on ARM && ARCH_EXYNOS
+
+endmenu
diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile
new file mode 100644
index 0000000..9c554d5
--- /dev/null
+++ b/drivers/soc/samsung/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_EXYNOS_SROM)	+= exynos-srom.o
diff --git a/drivers/soc/samsung/exynos-srom.c b/drivers/soc/samsung/exynos-srom.c
new file mode 100644
index 0000000..d7c4aa7
--- /dev/null
+++ b/drivers/soc/samsung/exynos-srom.c
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *	      http://www.samsung.com/
+ *
+ * EXYNOS - SROM Controller support
+ * Author: Pankaj Dubey <pankaj.dubey@samsung.com>
+ *
+ * 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.
+ */
+
+#include <linux/io.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+#include "exynos-srom.h"
+
+static void __iomem *exynos_srom_base;
+
+static const unsigned long exynos_srom_offsets[] = {
+	/* SROM side */
+	EXYNOS_SROM_BW,
+	EXYNOS_SROM_BC0,
+	EXYNOS_SROM_BC1,
+	EXYNOS_SROM_BC2,
+	EXYNOS_SROM_BC3,
+};
+
+/**
+ * struct exynos_srom_reg_dump: register dump of SROM Controller registers.
+ * @offset: srom register offset from the controller base address.
+ * @value: the value of register under the offset.
+ */
+struct exynos_srom_reg_dump {
+	u32     offset;
+	u32     value;
+};
+
+static struct exynos_srom_reg_dump *exynos_srom_regs;
+
+static struct exynos_srom_reg_dump *exynos_srom_alloc_reg_dump(
+		const unsigned long *rdump,
+		unsigned long nr_rdump)
+{
+	struct exynos_srom_reg_dump *rd;
+	unsigned int i;
+
+	rd = kcalloc(nr_rdump, sizeof(*rd), GFP_KERNEL);
+	if (!rd)
+		return NULL;
+
+	for (i = 0; i < nr_rdump; ++i)
+		rd[i].offset = rdump[i];
+
+	return rd;
+}
+
+static const struct of_device_id of_exynos_srom_ids[] = {
+	{
+		.compatible	= "samsung,exynos-srom",
+	},
+	{},
+};
+
+static int exynos_srom_probe(struct platform_device *pdev)
+{
+	struct device_node *np;
+	struct device *dev = &pdev->dev;
+
+	np = dev->of_node;
+	exynos_srom_base = of_iomap(np, 0);
+
+	if (!exynos_srom_base) {
+		pr_err("iomap of exynos srom controller failed\n");
+		return -ENOMEM;
+	}
+
+	exynos_srom_regs = exynos_srom_alloc_reg_dump(exynos_srom_offsets,
+			sizeof(exynos_srom_offsets));
+
+	if (!exynos_srom_regs) {
+		iounmap(exynos_srom_regs);
+		return -ENOMEM;
+	}
+
+	return 0;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static void exynos_srom_save(void __iomem *base,
+				    struct exynos_srom_reg_dump *rd,
+				    unsigned int num_regs)
+{
+	for (; num_regs > 0; --num_regs, ++rd)
+		rd->value = readl(base + rd->offset);
+
+}
+
+static void exynos_srom_restore(void __iomem *base,
+				      const struct exynos_srom_reg_dump *rd,
+				      unsigned int num_regs)
+{
+	for (; num_regs > 0; --num_regs, ++rd)
+		writel(rd->value, base + rd->offset);
+
+}
+
+static int exynos_srom_suspend(struct device *dev)
+{
+	exynos_srom_save(exynos_srom_base, exynos_srom_regs,
+				ARRAY_SIZE(exynos_srom_offsets));
+
+	return 0;
+}
+
+static int exynos_srom_resume(struct device *dev)
+{
+	exynos_srom_restore(exynos_srom_base, exynos_srom_regs,
+				ARRAY_SIZE(exynos_srom_offsets));
+
+	return 0;
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(exynos_srom_pm_ops, exynos_srom_suspend, exynos_srom_resume);
+
+static struct platform_driver exynos_srom_driver = {
+	.probe = exynos_srom_probe,
+	.driver = {
+		.name = "exynos-srom",
+		.of_match_table = of_exynos_srom_ids,
+		.pm = &exynos_srom_pm_ops,
+	},
+};
+
+static int __init exynos_srom_init(void)
+{
+	return platform_driver_register(&exynos_srom_driver);
+}
+device_initcall(exynos_srom_init);
diff --git a/drivers/soc/samsung/exynos-srom.h b/drivers/soc/samsung/exynos-srom.h
new file mode 100644
index 0000000..34660c6
--- /dev/null
+++ b/drivers/soc/samsung/exynos-srom.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ *
+ * Exynos SROMC register definitions
+ *
+ * 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_SROM_H
+#define __EXYNOS_SROM_H __FILE__
+
+#define EXYNOS_SROMREG(x)		(x)
+
+#define EXYNOS_SROM_BW		EXYNOS_SROMREG(0x0)
+#define EXYNOS_SROM_BC0		EXYNOS_SROMREG(0x4)
+#define EXYNOS_SROM_BC1		EXYNOS_SROMREG(0x8)
+#define EXYNOS_SROM_BC2		EXYNOS_SROMREG(0xc)
+#define EXYNOS_SROM_BC3		EXYNOS_SROMREG(0x10)
+#define EXYNOS_SROM_BC4		EXYNOS_SROMREG(0x14)
+#define EXYNOS_SROM_BC5		EXYNOS_SROMREG(0x18)
+
+/* one register BW holds 4 x 4-bit packed settings for NCS0 - NCS3 */
+
+#define EXYNOS_SROM_BW__DATAWIDTH__SHIFT	0
+#define EXYNOS_SROM_BW__ADDRMODE__SHIFT		1
+#define EXYNOS_SROM_BW__WAITENABLE__SHIFT	2
+#define EXYNOS_SROM_BW__BYTEENABLE__SHIFT	3
+
+#define EXYNOS_SROM_BW__CS_MASK			0xf
+
+#define EXYNOS_SROM_BW__NCS0__SHIFT		0
+#define EXYNOS_SROM_BW__NCS1__SHIFT		4
+#define EXYNOS_SROM_BW__NCS2__SHIFT		8
+#define EXYNOS_SROM_BW__NCS3__SHIFT		12
+#define EXYNOS_SROM_BW__NCS4__SHIFT		16
+#define EXYNOS_SROM_BW__NCS5__SHIFT		20
+
+/* applies to same to BCS0 - BCS3 */
+
+#define EXYNOS_SROM_BCX__PMC__SHIFT		0
+#define EXYNOS_SROM_BCX__TACP__SHIFT		4
+#define EXYNOS_SROM_BCX__TCAH__SHIFT		8
+#define EXYNOS_SROM_BCX__TCOH__SHIFT		12
+#define EXYNOS_SROM_BCX__TACC__SHIFT		16
+#define EXYNOS_SROM_BCX__TCOS__SHIFT		24
+#define EXYNOS_SROM_BCX__TACS__SHIFT		28
+
+#endif /* __EXYNOS_SROM_H */
-- 
2.4.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 4/7] ARM: EXYNOS: Remove SROM related register settings from mach-exynos
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
                   ` (2 preceding siblings ...)
  2015-08-24  8:02 ` [PATCH v2 3/7] drivers: soc: add support for exynos SROM driver Pankaj Dubey
@ 2015-08-24  8:02 ` Pankaj Dubey
  2015-08-25  1:53   ` Krzysztof Kozlowski
  2015-08-24  8:02 ` [PATCH v2 5/7] ARM: dts: add SROM device node for exynos4 Pankaj Dubey
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

As now we have dedicated driver for SROM controller, it will take care
of saving register banks during S2R so we can safely remove these
settings from mach-exynos.

Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 arch/arm/mach-exynos/Kconfig                 |  2 ++
 arch/arm/mach-exynos/common.h                |  2 --
 arch/arm/mach-exynos/exynos.c                | 17 ---------
 arch/arm/mach-exynos/include/mach/map.h      |  3 --
 arch/arm/mach-exynos/regs-srom.h             | 53 ----------------------------
 arch/arm/mach-exynos/suspend.c               | 20 ++---------
 arch/arm/plat-samsung/include/plat/map-s5p.h |  1 -
 7 files changed, 4 insertions(+), 94 deletions(-)
 delete mode 100644 arch/arm/mach-exynos/regs-srom.h

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 3a10f1a..7c917ef 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -27,6 +27,8 @@ menuconfig ARCH_EXYNOS
 	select SRAM
 	select THERMAL
 	select MFD_SYSCON
+	select SOC_SAMSUNG
+	select EXYNOS_SROM
 	help
 	  Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
 
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index 1534925..1c04741 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -108,8 +108,6 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
 
 #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
 			  soc_is_exynos4412())
-#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
-			  soc_is_exynos5420() || soc_is_exynos5800())
 
 extern u32 cp15_save_diag;
 extern u32 cp15_save_power;
diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 524aa6f..4ffb90e 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -37,11 +37,6 @@ void __iomem *pmu_base_addr;
 
 static struct map_desc exynos4_iodesc[] __initdata = {
 	{
-		.virtual	= (unsigned long)S5P_VA_SROMC,
-		.pfn		= __phys_to_pfn(EXYNOS4_PA_SROMC),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	}, {
 		.virtual	= (unsigned long)S5P_VA_CMU,
 		.pfn		= __phys_to_pfn(EXYNOS4_PA_CMU),
 		.length		= SZ_128K,
@@ -64,15 +59,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
 	},
 };
 
-static struct map_desc exynos5_iodesc[] __initdata = {
-	{
-		.virtual	= (unsigned long)S5P_VA_SROMC,
-		.pfn		= __phys_to_pfn(EXYNOS5_PA_SROMC),
-		.length		= SZ_4K,
-		.type		= MT_DEVICE,
-	},
-};
-
 static struct platform_device exynos_cpuidle = {
 	.name              = "exynos_cpuidle",
 #ifdef CONFIG_ARM_EXYNOS_CPUIDLE
@@ -144,9 +130,6 @@ static void __init exynos_map_io(void)
 {
 	if (soc_is_exynos4())
 		iotable_init(exynos4_iodesc, ARRAY_SIZE(exynos4_iodesc));
-
-	if (soc_is_exynos5())
-		iotable_init(exynos5_iodesc, ARRAY_SIZE(exynos5_iodesc));
 }
 
 static void __init exynos_init_io(void)
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index 86d8085..351e839 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -32,7 +32,4 @@
 #define EXYNOS4_PA_COREPERI		0x10500000
 #define EXYNOS4_PA_L2CC			0x10502000
 
-#define EXYNOS4_PA_SROMC		0x12570000
-#define EXYNOS5_PA_SROMC		0x12250000
-
 #endif /* __ASM_ARCH_MAP_H */
diff --git a/arch/arm/mach-exynos/regs-srom.h b/arch/arm/mach-exynos/regs-srom.h
deleted file mode 100644
index 5c4d442..0000000
--- a/arch/arm/mach-exynos/regs-srom.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2010 Samsung Electronics Co., Ltd.
- *		http://www.samsung.com
- *
- * S5P SROMC register definitions
- *
- * 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 __PLAT_SAMSUNG_REGS_SROM_H
-#define __PLAT_SAMSUNG_REGS_SROM_H __FILE__
-
-#include <mach/map.h>
-
-#define S5P_SROMREG(x)		(S5P_VA_SROMC + (x))
-
-#define S5P_SROM_BW		S5P_SROMREG(0x0)
-#define S5P_SROM_BC0		S5P_SROMREG(0x4)
-#define S5P_SROM_BC1		S5P_SROMREG(0x8)
-#define S5P_SROM_BC2		S5P_SROMREG(0xc)
-#define S5P_SROM_BC3		S5P_SROMREG(0x10)
-#define S5P_SROM_BC4		S5P_SROMREG(0x14)
-#define S5P_SROM_BC5		S5P_SROMREG(0x18)
-
-/* one register BW holds 4 x 4-bit packed settings for NCS0 - NCS3 */
-
-#define S5P_SROM_BW__DATAWIDTH__SHIFT		0
-#define S5P_SROM_BW__ADDRMODE__SHIFT		1
-#define S5P_SROM_BW__WAITENABLE__SHIFT		2
-#define S5P_SROM_BW__BYTEENABLE__SHIFT		3
-
-#define S5P_SROM_BW__CS_MASK			0xf
-
-#define S5P_SROM_BW__NCS0__SHIFT		0
-#define S5P_SROM_BW__NCS1__SHIFT		4
-#define S5P_SROM_BW__NCS2__SHIFT		8
-#define S5P_SROM_BW__NCS3__SHIFT		12
-#define S5P_SROM_BW__NCS4__SHIFT		16
-#define S5P_SROM_BW__NCS5__SHIFT		20
-
-/* applies to same to BCS0 - BCS3 */
-
-#define S5P_SROM_BCX__PMC__SHIFT		0
-#define S5P_SROM_BCX__TACP__SHIFT		4
-#define S5P_SROM_BCX__TCAH__SHIFT		8
-#define S5P_SROM_BCX__TCOH__SHIFT		12
-#define S5P_SROM_BCX__TACC__SHIFT		16
-#define S5P_SROM_BCX__TCOS__SHIFT		24
-#define S5P_SROM_BCX__TACS__SHIFT		28
-
-#endif /* __PLAT_SAMSUNG_REGS_SROM_H */
diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
index e00eb39..21abd9b 100644
--- a/arch/arm/mach-exynos/suspend.c
+++ b/arch/arm/mach-exynos/suspend.c
@@ -31,12 +31,13 @@
 #include <asm/smp_scu.h>
 #include <asm/suspend.h>
 
+#include <mach/map.h>
+
 #include <plat/pm-common.h>
 
 #include "common.h"
 #include "exynos-pmu.h"
 #include "regs-pmu.h"
-#include "regs-srom.h"
 
 #define REG_TABLE_END (-1U)
 
@@ -52,15 +53,6 @@ struct exynos_wkup_irq {
 	u32 mask;
 };
 
-static struct sleep_save exynos_core_save[] = {
-	/* SROM side */
-	SAVE_ITEM(S5P_SROM_BW),
-	SAVE_ITEM(S5P_SROM_BC0),
-	SAVE_ITEM(S5P_SROM_BC1),
-	SAVE_ITEM(S5P_SROM_BC2),
-	SAVE_ITEM(S5P_SROM_BC3),
-};
-
 struct exynos_pm_data {
 	const struct exynos_wkup_irq *wkup_irq;
 	unsigned int wake_disable_mask;
@@ -339,8 +331,6 @@ static void exynos_pm_prepare(void)
 	/* Set wake-up mask registers */
 	exynos_pm_set_wakeup_mask();
 
-	s3c_pm_do_save(exynos_core_save, ARRAY_SIZE(exynos_core_save));
-
 	exynos_pm_enter_sleep_mode();
 
 	/* ensure at least INFORM0 has the resume address */
@@ -371,8 +361,6 @@ static void exynos5420_pm_prepare(void)
 	/* Set wake-up mask registers */
 	exynos_pm_set_wakeup_mask();
 
-	s3c_pm_do_save(exynos_core_save, ARRAY_SIZE(exynos_core_save));
-
 	exynos_pmu_spare3 = pmu_raw_readl(S5P_PMU_SPARE3);
 	/*
 	 * The cpu state needs to be saved and restored so that the
@@ -463,8 +451,6 @@ static void exynos_pm_resume(void)
 	/* For release retention */
 	exynos_pm_release_retention();
 
-	s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save));
-
 	if (cpuid == ARM_CPU_PART_CORTEX_A9)
 		scu_enable(S5P_VA_SCU);
 
@@ -531,8 +517,6 @@ static void exynos5420_pm_resume(void)
 
 	pmu_raw_writel(exynos_pmu_spare3, S5P_PMU_SPARE3);
 
-	s3c_pm_do_restore_core(exynos_core_save, ARRAY_SIZE(exynos_core_save));
-
 early_wakeup:
 
 	tmp = pmu_raw_readl(EXYNOS5420_SFR_AXI_CGDIS1);
diff --git a/arch/arm/plat-samsung/include/plat/map-s5p.h b/arch/arm/plat-samsung/include/plat/map-s5p.h
index f5cf2bd..e555769 100644
--- a/arch/arm/plat-samsung/include/plat/map-s5p.h
+++ b/arch/arm/plat-samsung/include/plat/map-s5p.h
@@ -18,7 +18,6 @@
 
 #define S5P_VA_DMC0		S3C_ADDR(0x02440000)
 #define S5P_VA_DMC1		S3C_ADDR(0x02480000)
-#define S5P_VA_SROMC		S3C_ADDR(0x024C0000)
 
 #define S5P_VA_COREPERI_BASE	S3C_ADDR(0x02800000)
 #define S5P_VA_COREPERI(x)	(S5P_VA_COREPERI_BASE + (x))
-- 
2.4.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 5/7] ARM: dts: add SROM device node for exynos4
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
                   ` (3 preceding siblings ...)
  2015-08-24  8:02 ` [PATCH v2 4/7] ARM: EXYNOS: Remove SROM related register settings from mach-exynos Pankaj Dubey
@ 2015-08-24  8:02 ` Pankaj Dubey
  2015-08-25  1:57   ` Krzysztof Kozlowski
  2015-08-24  8:02 ` [PATCH v2 6/7] ARM: dts: add SROM device node for exynos5 Pankaj Dubey
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

Add device node of SROM controller for exynos4.

CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 arch/arm/boot/dts/exynos4.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 98c0a36..b0732d7 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -76,6 +76,11 @@
 		reg = <0x10000000 0x100>;
 	};
 
+	sromc at 12570000 {
+		compatible = "samsung,exynos-srom";
+		reg = <0x12570000 0x10>;
+	};
+
 	mipi_phy: video-phy at 10020710 {
 		compatible = "samsung,s5pv210-mipi-video-phy";
 		#phy-cells = <1>;
-- 
2.4.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 6/7] ARM: dts: add SROM device node for exynos5
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
                   ` (4 preceding siblings ...)
  2015-08-24  8:02 ` [PATCH v2 5/7] ARM: dts: add SROM device node for exynos4 Pankaj Dubey
@ 2015-08-24  8:02 ` Pankaj Dubey
  2015-08-25  2:03   ` Krzysztof Kozlowski
  2015-08-24  8:02 ` [PATCH v2 7/7] Documentation: dt-bindings: add exynos-srom binding information Pankaj Dubey
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

Add SROM controller device node for exynos5.

CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 arch/arm/boot/dts/exynos5.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi
index 110dbd4..b5d3437 100644
--- a/arch/arm/boot/dts/exynos5.dtsi
+++ b/arch/arm/boot/dts/exynos5.dtsi
@@ -30,6 +30,11 @@
 		reg = <0x10000000 0x100>;
 	};
 
+	sromc at 12250000 {
+		compatible = "samsung,exynos-srom";
+		reg = <0x12250000 0x10>;
+	};
+
 	combiner: interrupt-controller at 10440000 {
 		compatible = "samsung,exynos4210-combiner";
 		#interrupt-cells = <2>;
-- 
2.4.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 7/7] Documentation: dt-bindings: add exynos-srom binding information
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
                   ` (5 preceding siblings ...)
  2015-08-24  8:02 ` [PATCH v2 6/7] ARM: dts: add SROM device node for exynos5 Pankaj Dubey
@ 2015-08-24  8:02 ` Pankaj Dubey
  2015-08-25  2:03   ` Krzysztof Kozlowski
  2015-08-25  2:18 ` [PATCH v2 0/7] Add support for Exynos SROM Controller driver Krzysztof Kozlowski
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Pankaj Dubey @ 2015-08-24  8:02 UTC (permalink / raw)
  To: linux-arm-kernel

This patch adds exynos-srom binding information for SROM Controller
driver on Exynos SoCs.

CC: Rob Herring <robh+dt@kernel.org>
CC: Mark Rutland <mark.rutland@arm.com>
CC: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 .../devicetree/bindings/arm/samsung/exynos-srom.txt          | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt

diff --git a/Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt b/Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt
new file mode 100644
index 0000000..33886d5
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt
@@ -0,0 +1,12 @@
+SAMSUNG Exynos SoCs SROM Controller driver.
+
+Required properties:
+- compatible : Should contain "samsung,exynos-srom".
+
+- reg: offset and length of the register set
+
+Example:
+	sromc at 12570000 {
+		compatible = "samsung,exynos-srom";
+		reg = <0x12570000 0x10>;
+	};
-- 
2.4.5

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH v2 1/7] ARM: EXYNOS: remove unused static mapping of CMU for exynos5
  2015-08-24  8:02 ` [PATCH v2 1/7] ARM: EXYNOS: remove unused static mapping of CMU for exynos5 Pankaj Dubey
@ 2015-08-25  0:55   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  0:55 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> Remove unused static mapping of exynos5 CMU and related code.
> 
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>  arch/arm/mach-exynos/exynos.c           | 5 -----
>  arch/arm/mach-exynos/include/mach/map.h | 1 -
>  2 files changed, 6 deletions(-)

Looks good:

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 2/7] ARM: EXYNOS: code cleanup in map.h
  2015-08-24  8:02 ` [PATCH v2 2/7] ARM: EXYNOS: code cleanup in map.h Pankaj Dubey
@ 2015-08-25  0:56   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  0:56 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> Remove unused exynos5440 uart offset macro.
> 
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>  arch/arm/mach-exynos/include/mach/map.h | 4 ----
>  1 file changed, 4 deletions(-)

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 3/7] drivers: soc: add support for exynos SROM driver
  2015-08-24  8:02 ` [PATCH v2 3/7] drivers: soc: add support for exynos SROM driver Pankaj Dubey
@ 2015-08-25  1:26   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  1:26 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> This patch adds Exynos SROM controller driver which will handle
> save restore of SROM registers during S2R.
> 
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>

Hi,

Thanks for the fixes. I got some more questions. Sorry that I did not
bring up them before.


> ---
>  drivers/soc/Kconfig               |   1 +
>  drivers/soc/Makefile              |   1 +
>  drivers/soc/samsung/Kconfig       |  13 ++++
>  drivers/soc/samsung/Makefile      |   1 +
>  drivers/soc/samsung/exynos-srom.c | 143 ++++++++++++++++++++++++++++++++++++++
>  drivers/soc/samsung/exynos-srom.h |  51 ++++++++++++++
>  6 files changed, 210 insertions(+)
>  create mode 100644 drivers/soc/samsung/Kconfig
>  create mode 100644 drivers/soc/samsung/Makefile
>  create mode 100644 drivers/soc/samsung/exynos-srom.c
>  create mode 100644 drivers/soc/samsung/exynos-srom.h
> 
> diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
> index 96ddecb..69107c9 100644
> --- a/drivers/soc/Kconfig
> +++ b/drivers/soc/Kconfig
> @@ -2,6 +2,7 @@ menu "SOC (System On Chip) specific Drivers"
>  
>  source "drivers/soc/mediatek/Kconfig"
>  source "drivers/soc/qcom/Kconfig"
> +source "drivers/soc/samsung/Kconfig"
>  source "drivers/soc/sunxi/Kconfig"
>  source "drivers/soc/ti/Kconfig"
>  source "drivers/soc/versatile/Kconfig"
> diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
> index 7dc7c0d..34c4398 100644
> --- a/drivers/soc/Makefile
> +++ b/drivers/soc/Makefile
> @@ -4,6 +4,7 @@
>  
>  obj-$(CONFIG_ARCH_MEDIATEK)	+= mediatek/
>  obj-$(CONFIG_ARCH_QCOM)		+= qcom/
> +obj-$(CONFIG_SOC_SAMSUNG)	+= samsung/
>  obj-$(CONFIG_ARCH_SUNXI)	+= sunxi/
>  obj-$(CONFIG_ARCH_TEGRA)	+= tegra/
>  obj-$(CONFIG_SOC_TI)		+= ti/
> diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig
> new file mode 100644
> index 0000000..ea4bc2a
> --- /dev/null
> +++ b/drivers/soc/samsung/Kconfig
> @@ -0,0 +1,13 @@
> +#
> +# SAMSUNG SoC drivers
> +#
> +menu "Samsung SOC driver support"
> +
> +config SOC_SAMSUNG
> +	bool
> +
> +config EXYNOS_SROM
> +	bool
> +	depends on ARM && ARCH_EXYNOS
> +
> +endmenu
> diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile
> new file mode 100644
> index 0000000..9c554d5
> --- /dev/null
> +++ b/drivers/soc/samsung/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_EXYNOS_SROM)	+= exynos-srom.o
> diff --git a/drivers/soc/samsung/exynos-srom.c b/drivers/soc/samsung/exynos-srom.c
> new file mode 100644
> index 0000000..d7c4aa7
> --- /dev/null
> +++ b/drivers/soc/samsung/exynos-srom.c
> @@ -0,0 +1,143 @@
> +/*
> + * Copyright (c) 2015 Samsung Electronics Co., Ltd.
> + *	      http://www.samsung.com/
> + *
> + * EXYNOS - SROM Controller support
> + * Author: Pankaj Dubey <pankaj.dubey@samsung.com>
> + *
> + * 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.
> + */
> +
> +#include <linux/io.h>
> +#include <linux/of.h>
> +#include <linux/of_address.h>
> +#include <linux/of_platform.h>
> +#include <linux/platform_device.h>
> +#include <linux/slab.h>
> +#include "exynos-srom.h"
> +
> +static void __iomem *exynos_srom_base;
> +
> +static const unsigned long exynos_srom_offsets[] = {
> +	/* SROM side */
> +	EXYNOS_SROM_BW,
> +	EXYNOS_SROM_BC0,
> +	EXYNOS_SROM_BC1,
> +	EXYNOS_SROM_BC2,
> +	EXYNOS_SROM_BC3,
> +};
> +
> +/**
> + * struct exynos_srom_reg_dump: register dump of SROM Controller registers.
> + * @offset: srom register offset from the controller base address.
> + * @value: the value of register under the offset.
> + */
> +struct exynos_srom_reg_dump {
> +	u32     offset;
> +	u32     value;
> +};
> +
> +static struct exynos_srom_reg_dump *exynos_srom_regs;
> +
> +static struct exynos_srom_reg_dump *exynos_srom_alloc_reg_dump(
> +		const unsigned long *rdump,
> +		unsigned long nr_rdump)
> +{
> +	struct exynos_srom_reg_dump *rd;
> +	unsigned int i;
> +
> +	rd = kcalloc(nr_rdump, sizeof(*rd), GFP_KERNEL);
> +	if (!rd)
> +		return NULL;
> +
> +	for (i = 0; i < nr_rdump; ++i)
> +		rd[i].offset = rdump[i];
> +
> +	return rd;
> +}
> +
> +static const struct of_device_id of_exynos_srom_ids[] = {
> +	{
> +		.compatible	= "samsung,exynos-srom",
> +	},
> +	{},
> +};
> +
> +static int exynos_srom_probe(struct platform_device *pdev)
> +{
> +	struct device_node *np;
> +	struct device *dev = &pdev->dev;
> +
> +	np = dev->of_node;
> +	exynos_srom_base = of_iomap(np, 0);

The existing file-scope "exynos_srom_base" would be overwritten for any
consecutive device bind. There shouldn't be more binds than one (there
is only one SROM on board) but still someone may create such DTB. By
mistake or by booting with some newer DTB (where for example two SROMs
would be allowed) with older kernel.

The question is should we handle such case?
E.g.
	if (exynos_srom_base)
		return -EINVAL; /* Doubled bind */
	exynos_srom_base = of_iomap(np, 0);

I see that other drivers don't do that... so I am not convinced. It may
be an useless protection. What do you think?


> +
> +	if (!exynos_srom_base) {
> +		pr_err("iomap of exynos srom controller failed\n");
> +		return -ENOMEM;
> +	}
> +
> +	exynos_srom_regs = exynos_srom_alloc_reg_dump(exynos_srom_offsets,
> +			sizeof(exynos_srom_offsets));
> +
> +	if (!exynos_srom_regs) {
> +		iounmap(exynos_srom_regs);
> +		return -ENOMEM;
> +	}
> +
> +	return 0;
> +}
> +
> +#ifdef CONFIG_PM_SLEEP
> +static void exynos_srom_save(void __iomem *base,
> +				    struct exynos_srom_reg_dump *rd,
> +				    unsigned int num_regs)
> +{
> +	for (; num_regs > 0; --num_regs, ++rd)
> +		rd->value = readl(base + rd->offset);
> +
> +}
> +
> +static void exynos_srom_restore(void __iomem *base,
> +				      const struct exynos_srom_reg_dump *rd,
> +				      unsigned int num_regs)
> +{
> +	for (; num_regs > 0; --num_regs, ++rd)
> +		writel(rd->value, base + rd->offset);
> +
> +}
> +
> +static int exynos_srom_suspend(struct device *dev)
> +{
> +	exynos_srom_save(exynos_srom_base, exynos_srom_regs,
> +				ARRAY_SIZE(exynos_srom_offsets));
> +
> +	return 0;
> +}
> +
> +static int exynos_srom_resume(struct device *dev)
> +{
> +	exynos_srom_restore(exynos_srom_base, exynos_srom_regs,
> +				ARRAY_SIZE(exynos_srom_offsets));
> +
> +	return 0;
> +}
> +#endif
> +
> +static SIMPLE_DEV_PM_OPS(exynos_srom_pm_ops, exynos_srom_suspend, exynos_srom_resume);
> +
> +static struct platform_driver exynos_srom_driver = {
> +	.probe = exynos_srom_probe,
> +	.driver = {
> +		.name = "exynos-srom",
> +		.of_match_table = of_exynos_srom_ids,
> +		.pm = &exynos_srom_pm_ops,
> +	},
> +};
> +
> +static int __init exynos_srom_init(void)
> +{
> +	return platform_driver_register(&exynos_srom_driver);
> +}
> +device_initcall(exynos_srom_init);

1. Any reason for using device_initcall() instead of
builtin/module_platform_driver()?

2. There is no device removal callback which would clean up
(kfree+iounmap). Device is not crucial for the system so I suspect it
could be removed (unbind).

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 4/7] ARM: EXYNOS: Remove SROM related register settings from mach-exynos
  2015-08-24  8:02 ` [PATCH v2 4/7] ARM: EXYNOS: Remove SROM related register settings from mach-exynos Pankaj Dubey
@ 2015-08-25  1:53   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  1:53 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> As now we have dedicated driver for SROM controller, it will take care
> of saving register banks during S2R so we can safely remove these
> settings from mach-exynos.
> 
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>  arch/arm/mach-exynos/Kconfig                 |  2 ++
>  arch/arm/mach-exynos/common.h                |  2 --
>  arch/arm/mach-exynos/exynos.c                | 17 ---------
>  arch/arm/mach-exynos/include/mach/map.h      |  3 --
>  arch/arm/mach-exynos/regs-srom.h             | 53 ----------------------------
>  arch/arm/mach-exynos/suspend.c               | 20 ++---------
>  arch/arm/plat-samsung/include/plat/map-s5p.h |  1 -
>  7 files changed, 4 insertions(+), 94 deletions(-)
>  delete mode 100644 arch/arm/mach-exynos/regs-srom.h

The order of patches looks wrong. Is this fully bisectable? You are
removing here support for SROM but DTS bindings are not added yet.

> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 3a10f1a..7c917ef 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -27,6 +27,8 @@ menuconfig ARCH_EXYNOS
>  	select SRAM
>  	select THERMAL
>  	select MFD_SYSCON
> +	select SOC_SAMSUNG
> +	select EXYNOS_SROM
>  	help
>  	  Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
>  
> diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
> index 1534925..1c04741 100644
> --- a/arch/arm/mach-exynos/common.h
> +++ b/arch/arm/mach-exynos/common.h
> @@ -108,8 +108,6 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
>  
>  #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
>  			  soc_is_exynos4412())
> -#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
> -			  soc_is_exynos5420() || soc_is_exynos5800())

That wasn't here in v1. I see that it is not used any more and
of_machine_is_compatible is preferred but I would prefer to leave it. In
certain cases you cannot use of_machine_is_compatible (e.g. in
platform_do_lowpower).

Rest looks good.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 5/7] ARM: dts: add SROM device node for exynos4
  2015-08-24  8:02 ` [PATCH v2 5/7] ARM: dts: add SROM device node for exynos4 Pankaj Dubey
@ 2015-08-25  1:57   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  1:57 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> Add device node of SROM controller for exynos4.
> 
> CC: Rob Herring <robh+dt@kernel.org>
> CC: Mark Rutland <mark.rutland@arm.com>
> CC: Ian Campbell <ijc+devicetree@hellion.org.uk>
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>  arch/arm/boot/dts/exynos4.dtsi | 5 +++++
>  1 file changed, 5 insertions(+)
> 
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 6/7] ARM: dts: add SROM device node for exynos5
  2015-08-24  8:02 ` [PATCH v2 6/7] ARM: dts: add SROM device node for exynos5 Pankaj Dubey
@ 2015-08-25  2:03   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  2:03 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> Add SROM controller device node for exynos5.
> 
> CC: Rob Herring <robh+dt@kernel.org>
> CC: Mark Rutland <mark.rutland@arm.com>
> CC: Ian Campbell <ijc+devicetree@hellion.org.uk>
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>  arch/arm/boot/dts/exynos5.dtsi | 5 +++++
>  1 file changed, 5 insertions(+)

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 7/7] Documentation: dt-bindings: add exynos-srom binding information
  2015-08-24  8:02 ` [PATCH v2 7/7] Documentation: dt-bindings: add exynos-srom binding information Pankaj Dubey
@ 2015-08-25  2:03   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  2:03 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> This patch adds exynos-srom binding information for SROM Controller
> driver on Exynos SoCs.
> 
> CC: Rob Herring <robh+dt@kernel.org>
> CC: Mark Rutland <mark.rutland@arm.com>
> CC: Ian Campbell <ijc+devicetree@hellion.org.uk>
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>  .../devicetree/bindings/arm/samsung/exynos-srom.txt          | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
                   ` (6 preceding siblings ...)
  2015-08-24  8:02 ` [PATCH v2 7/7] Documentation: dt-bindings: add exynos-srom binding information Pankaj Dubey
@ 2015-08-25  2:18 ` Krzysztof Kozlowski
  2015-10-13 13:25   ` Pankaj Dubey
  2015-09-16 23:19 ` Kukjin Kim
  2015-10-05 11:36 ` Pavel Fedin
  9 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-08-25  2:18 UTC (permalink / raw)
  To: linux-arm-kernel

On 24.08.2015 17:02, Pankaj Dubey wrote:
> This patch set adds support for Exynos SROM controller DT based driver.
> Currently SROM register sets are used only during S2R, so driver
> basically added for taking care of S2R. It will help us in removing
> static mapping from exynos.c and other extra code handline during S2R.
> 
> This patch set also updated exynos4 and exynos5 dtsi files for with device
> node for srom, and added binding documentation for the same.
> 
> First two patches are some minor cleanup in mach-exynos.
> 
> Patchset v1 was posted here[1]
> [1]: https://lkml.org/lkml/2015/4/29/98
> 
> Changes since v1:
>  - Rebased to latest kgene tree.
>  - Addressed review comments from Krzysztof Kozlowski.
>  - Add two new patches for minor cleanup in exynos.c and map.h
> 
> Pankaj Dubey (7):
>   ARM: EXYNOS: remove unused static mapping of CMU for exynos5
>   ARM: EXYNOS: code cleanup in map.h
>   drivers: soc: add support for exynos SROM driver
>   ARM: EXYNOS: Remove SROM related register settings from mach-exynos
>   ARM: dts: add SROM device node for exynos4
>   ARM: dts: add SROM device node for exynos5
>   Documentation: dt-bindings: add exynos-srom binding information

One more thing: please update the existing Exynos entry in maintainers
so it would cover drivers/soc/samsung.

Best regards,
Krzysztof

> 
>  .../bindings/arm/samsung/exynos-srom.txt           |  12 ++
>  arch/arm/boot/dts/exynos4.dtsi                     |   5 +
>  arch/arm/boot/dts/exynos5.dtsi                     |   5 +
>  arch/arm/mach-exynos/Kconfig                       |   2 +
>  arch/arm/mach-exynos/common.h                      |   2 -
>  arch/arm/mach-exynos/exynos.c                      |  22 ----
>  arch/arm/mach-exynos/include/mach/map.h            |   8 --
>  arch/arm/mach-exynos/regs-srom.h                   |  53 --------
>  arch/arm/mach-exynos/suspend.c                     |  20 +--
>  arch/arm/plat-samsung/include/plat/map-s5p.h       |   1 -
>  drivers/soc/Kconfig                                |   1 +
>  drivers/soc/Makefile                               |   1 +
>  drivers/soc/samsung/Kconfig                        |  13 ++
>  drivers/soc/samsung/Makefile                       |   1 +
>  drivers/soc/samsung/exynos-srom.c                  | 143 +++++++++++++++++++++
>  drivers/soc/samsung/exynos-srom.h                  |  51 ++++++++
>  16 files changed, 236 insertions(+), 104 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt
>  delete mode 100644 arch/arm/mach-exynos/regs-srom.h
>  create mode 100644 drivers/soc/samsung/Kconfig
>  create mode 100644 drivers/soc/samsung/Makefile
>  create mode 100644 drivers/soc/samsung/exynos-srom.c
>  create mode 100644 drivers/soc/samsung/exynos-srom.h
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
                   ` (7 preceding siblings ...)
  2015-08-25  2:18 ` [PATCH v2 0/7] Add support for Exynos SROM Controller driver Krzysztof Kozlowski
@ 2015-09-16 23:19 ` Kukjin Kim
  2015-10-05 11:36 ` Pavel Fedin
  9 siblings, 0 replies; 22+ messages in thread
From: Kukjin Kim @ 2015-09-16 23:19 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/24/15 17:02, Pankaj Dubey wrote:
> This patch set adds support for Exynos SROM controller DT based driver.
> Currently SROM register sets are used only during S2R, so driver
> basically added for taking care of S2R. It will help us in removing
> static mapping from exynos.c and other extra code handline during S2R.
> 
> This patch set also updated exynos4 and exynos5 dtsi files for with device
> node for srom, and added binding documentation for the same.
> 
> First two patches are some minor cleanup in mach-exynos.
> 
> Patchset v1 was posted here[1]
> [1]: https://lkml.org/lkml/2015/4/29/98
> 
> Changes since v1:
>  - Rebased to latest kgene tree.
>  - Addressed review comments from Krzysztof Kozlowski.
>  - Add two new patches for minor cleanup in exynos.c and map.h
> 
> Pankaj Dubey (7):
>   ARM: EXYNOS: remove unused static mapping of CMU for exynos5
>   ARM: EXYNOS: code cleanup in map.h
>   drivers: soc: add support for exynos SROM driver
>   ARM: EXYNOS: Remove SROM related register settings from mach-exynos
>   ARM: dts: add SROM device node for exynos4
>   ARM: dts: add SROM device node for exynos5
>   Documentation: dt-bindings: add exynos-srom binding information
> 
>  .../bindings/arm/samsung/exynos-srom.txt           |  12 ++
>  arch/arm/boot/dts/exynos4.dtsi                     |   5 +
>  arch/arm/boot/dts/exynos5.dtsi                     |   5 +
>  arch/arm/mach-exynos/Kconfig                       |   2 +
>  arch/arm/mach-exynos/common.h                      |   2 -
>  arch/arm/mach-exynos/exynos.c                      |  22 ----
>  arch/arm/mach-exynos/include/mach/map.h            |   8 --
>  arch/arm/mach-exynos/regs-srom.h                   |  53 --------
>  arch/arm/mach-exynos/suspend.c                     |  20 +--
>  arch/arm/plat-samsung/include/plat/map-s5p.h       |   1 -
>  drivers/soc/Kconfig                                |   1 +
>  drivers/soc/Makefile                               |   1 +
>  drivers/soc/samsung/Kconfig                        |  13 ++
>  drivers/soc/samsung/Makefile                       |   1 +
>  drivers/soc/samsung/exynos-srom.c                  | 143 +++++++++++++++++++++
>  drivers/soc/samsung/exynos-srom.h                  |  51 ++++++++
>  16 files changed, 236 insertions(+), 104 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt
>  delete mode 100644 arch/arm/mach-exynos/regs-srom.h
>  create mode 100644 drivers/soc/samsung/Kconfig
>  create mode 100644 drivers/soc/samsung/Makefile
>  create mode 100644 drivers/soc/samsung/exynos-srom.c
>  create mode 100644 drivers/soc/samsung/exynos-srom.h
> 
Hi Pankaj,

Can you please address comments as per Krzysztof's review?...

- Kukjin

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
  2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
                   ` (8 preceding siblings ...)
  2015-09-16 23:19 ` Kukjin Kim
@ 2015-10-05 11:36 ` Pavel Fedin
  2015-10-05 12:48   ` Krzysztof Kozlowski
  9 siblings, 1 reply; 22+ messages in thread
From: Pavel Fedin @ 2015-10-05 11:36 UTC (permalink / raw)
  To: linux-arm-kernel

 Hello!

> This patch set adds support for Exynos SROM controller DT based driver.
> Currently SROM register sets are used only during S2R, so driver
> basically added for taking care of S2R. It will help us in removing
> static mapping from exynos.c and other extra code handline during S2R.

 Very good news, but, your driver seems not to do anything except suspend/resume. But how do i add
some device plugged into it? In order to be operational, its outputs have to be configured. But how
do i do it with your driver? For example, on SMDK boards SROM controller is used to connect SMSC9111
etherner chip.
 Currently i use hardcoded initialization based on of_machine_is_compatible(), but i believe this
would be considered a hack and such a thing cannot be pushed upstream. I guess i have to put all
needed configuration into device tree somehow. But how? Are there any recommentations?

Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
  2015-10-05 11:36 ` Pavel Fedin
@ 2015-10-05 12:48   ` Krzysztof Kozlowski
  2015-10-05 13:18     ` Pavel Fedin
  0 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-10-05 12:48 UTC (permalink / raw)
  To: linux-arm-kernel

W dniu 05.10.2015 o 20:36, Pavel Fedin pisze:
>  Hello!
> 
>> This patch set adds support for Exynos SROM controller DT based driver.
>> Currently SROM register sets are used only during S2R, so driver
>> basically added for taking care of S2R. It will help us in removing
>> static mapping from exynos.c and other extra code handline during S2R.
> 
>  Very good news, but, your driver seems not to do anything except suspend/resume. But how do i add
> some device plugged into it? In order to be operational, its outputs have to be configured. But how
> do i do it with your driver? For example, on SMDK boards SROM controller is used to connect SMSC9111
> etherner chip.

That is interesting. What do you mean by that? Although SROM controller
can access external memory (SRAM, ROM) but it is not exactly a bus. How
is the SMSC9111 "connected"? What interface or protocol is used?

>  Currently i use hardcoded initialization based on of_machine_is_compatible(), but i believe this
> would be considered a hack and such a thing cannot be pushed upstream. I guess i have to put all
> needed configuration into device tree somehow. But how? Are there any recommentations?

I am sorry but I cannot figure out what exactly are you talking about.
The Device Tree is the glue to describe the board, the hardware and its
configuration. Please elaborate a little more.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
  2015-10-05 12:48   ` Krzysztof Kozlowski
@ 2015-10-05 13:18     ` Pavel Fedin
  2015-10-06  0:23       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 22+ messages in thread
From: Pavel Fedin @ 2015-10-05 13:18 UTC (permalink / raw)
  To: linux-arm-kernel

 Hello!

> That is interesting. What do you mean by that? Although SROM controller
> can access external memory (SRAM, ROM) but it is not exactly a bus. How
> is the SMSC9111 "connected"? What interface or protocol is used?

 SROM controller actually provides a demultiplexed external address and data bus. This way you could
hook up old good ROM chip to it (hence its name). However, you can plug in there anything else with
the appropriate interface, and SMSC9111 uses exactly that. Just some address + control + data wires.
Therefore, you can think of SROMc as a simple bus.

> I am sorry but I cannot figure out what exactly are you talking about.
> The Device Tree is the glue to describe the board, the hardware and its
> configuration. Please elaborate a little more.

 Yes, exactly that. SROM controller has 4 outputs, and for every of these outputs you have to choose
mode and timings. Once you set them correctly, you can use peripherial behind them. These timings
actually depend on the actual peripherial.

 By this time i remembered that u-boot guys also did something with this. And here are links:
http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/dts/exynos5250-smdk5250.dts;h=8b695442b1a29dec4e3
53ebd3cfee0ff89f218a6;hb=HEAD#l43 - this is how connection is described
http://git.denx.de/?p=u-boot.git;a=blob;f=board/samsung/common/board.c;h=d32c75de50858f131284e28db0c
7ed55883f1cb0;hb=HEAD#l184 - and this is parsing code

 There's only one small problem with their code. "bank" parameter is device-wide, therefore you
cannot configure more than one bank. For SMDK boards it's OK, but in future you may run into problem
with this.

Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
  2015-10-05 13:18     ` Pavel Fedin
@ 2015-10-06  0:23       ` Krzysztof Kozlowski
  0 siblings, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2015-10-06  0:23 UTC (permalink / raw)
  To: linux-arm-kernel

On 05.10.2015 22:18, Pavel Fedin wrote:
>  Hello!
> 
>> That is interesting. What do you mean by that? Although SROM controller
>> can access external memory (SRAM, ROM) but it is not exactly a bus. How
>> is the SMSC9111 "connected"? What interface or protocol is used?
> 
>  SROM controller actually provides a demultiplexed external address and data bus. This way you could
> hook up old good ROM chip to it (hence its name). However, you can plug in there anything else with
> the appropriate interface, and SMSC9111 uses exactly that. Just some address + control + data wires.
> Therefore, you can think of SROMc as a simple bus.

Ah, okay, thanks for details.

> 
>> I am sorry but I cannot figure out what exactly are you talking about.
>> The Device Tree is the glue to describe the board, the hardware and its
>> configuration. Please elaborate a little more.
> 
>  Yes, exactly that. SROM controller has 4 outputs, and for every of these outputs you have to choose
> mode and timings. Once you set them correctly, you can use peripherial behind them. These timings
> actually depend on the actual peripherial.
> 
>  By this time i remembered that u-boot guys also did something with this. And here are links:
> http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/dts/exynos5250-smdk5250.dts;h=8b695442b1a29dec4e3
> 53ebd3cfee0ff89f218a6;hb=HEAD#l43 - this is how connection is described
> http://git.denx.de/?p=u-boot.git;a=blob;f=board/samsung/common/board.c;h=d32c75de50858f131284e28db0c
> 7ed55883f1cb0;hb=HEAD#l184 - and this is parsing code

I see... Pankaj's driver was not developed for that purpose. You would
have to extend it. For the SROMC driver there shouldn't be much work to
do: just parse additional bindings and configure the controller for
ethernet adapter.

>  There's only one small problem with their code. "bank" parameter is device-wide, therefore you
> cannot configure more than one bank. For SMDK boards it's OK, but in future you may run into problem
> with this.

You are not bound by u-boot bindings anyhow (at least to my
understanding). You can try to re-use them but if some binding is
problematic then just create your own.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH v2 0/7] Add support for Exynos SROM Controller driver
  2015-08-25  2:18 ` [PATCH v2 0/7] Add support for Exynos SROM Controller driver Krzysztof Kozlowski
@ 2015-10-13 13:25   ` Pankaj Dubey
  0 siblings, 0 replies; 22+ messages in thread
From: Pankaj Dubey @ 2015-10-13 13:25 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Krzysztof,

On Tuesday 25 August 2015 07:48 AM, Krzysztof Kozlowski wrote:
> On 24.08.2015 17:02, Pankaj Dubey wrote:
>> This patch set adds support for Exynos SROM controller DT based driver.
>> Currently SROM register sets are used only during S2R, so driver
>> basically added for taking care of S2R. It will help us in removing
>> static mapping from exynos.c and other extra code handline during S2R.
>>
>> This patch set also updated exynos4 and exynos5 dtsi files for with device
>> node for srom, and added binding documentation for the same.
>>
>> First two patches are some minor cleanup in mach-exynos.
>>
>> Patchset v1 was posted here[1]
>> [1]: https://lkml.org/lkml/2015/4/29/98
>>
>> Changes since v1:
>>   - Rebased to latest kgene tree.
>>   - Addressed review comments from Krzysztof Kozlowski.
>>   - Add two new patches for minor cleanup in exynos.c and map.h
>>
>> Pankaj Dubey (7):
>>    ARM: EXYNOS: remove unused static mapping of CMU for exynos5
>>    ARM: EXYNOS: code cleanup in map.h
>>    drivers: soc: add support for exynos SROM driver
>>    ARM: EXYNOS: Remove SROM related register settings from mach-exynos
>>    ARM: dts: add SROM device node for exynos4
>>    ARM: dts: add SROM device node for exynos5
>>    Documentation: dt-bindings: add exynos-srom binding information
>
> One more thing: please update the existing Exynos entry in maintainers
> so it would cover drivers/soc/samsung.
>

Thanks for review, and sorry for late reply.

I have updated v3 version of this patch series addressing most of your 
review comments. Please do let me know if still it has any concern.

Regarding Pavel's comment of handling any other external peripheral 
which can be hooked into srom can be handled as feature addition on top 
of this basic driver based on requirement.

Thanks,
Pankaj Dubey
> Best regards,
> Krzysztof
>
>>
>>   .../bindings/arm/samsung/exynos-srom.txt           |  12 ++
>>   arch/arm/boot/dts/exynos4.dtsi                     |   5 +
>>   arch/arm/boot/dts/exynos5.dtsi                     |   5 +
>>   arch/arm/mach-exynos/Kconfig                       |   2 +
>>   arch/arm/mach-exynos/common.h                      |   2 -
>>   arch/arm/mach-exynos/exynos.c                      |  22 ----
>>   arch/arm/mach-exynos/include/mach/map.h            |   8 --
>>   arch/arm/mach-exynos/regs-srom.h                   |  53 --------
>>   arch/arm/mach-exynos/suspend.c                     |  20 +--
>>   arch/arm/plat-samsung/include/plat/map-s5p.h       |   1 -
>>   drivers/soc/Kconfig                                |   1 +
>>   drivers/soc/Makefile                               |   1 +
>>   drivers/soc/samsung/Kconfig                        |  13 ++
>>   drivers/soc/samsung/Makefile                       |   1 +
>>   drivers/soc/samsung/exynos-srom.c                  | 143 +++++++++++++++++++++
>>   drivers/soc/samsung/exynos-srom.h                  |  51 ++++++++
>>   16 files changed, 236 insertions(+), 104 deletions(-)
>>   create mode 100644 Documentation/devicetree/bindings/arm/samsung/exynos-srom.txt
>>   delete mode 100644 arch/arm/mach-exynos/regs-srom.h
>>   create mode 100644 drivers/soc/samsung/Kconfig
>>   create mode 100644 drivers/soc/samsung/Makefile
>>   create mode 100644 drivers/soc/samsung/exynos-srom.c
>>   create mode 100644 drivers/soc/samsung/exynos-srom.h
>>
>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2015-10-13 13:25 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-24  8:02 [PATCH v2 0/7] Add support for Exynos SROM Controller driver Pankaj Dubey
2015-08-24  8:02 ` [PATCH v2 1/7] ARM: EXYNOS: remove unused static mapping of CMU for exynos5 Pankaj Dubey
2015-08-25  0:55   ` Krzysztof Kozlowski
2015-08-24  8:02 ` [PATCH v2 2/7] ARM: EXYNOS: code cleanup in map.h Pankaj Dubey
2015-08-25  0:56   ` Krzysztof Kozlowski
2015-08-24  8:02 ` [PATCH v2 3/7] drivers: soc: add support for exynos SROM driver Pankaj Dubey
2015-08-25  1:26   ` Krzysztof Kozlowski
2015-08-24  8:02 ` [PATCH v2 4/7] ARM: EXYNOS: Remove SROM related register settings from mach-exynos Pankaj Dubey
2015-08-25  1:53   ` Krzysztof Kozlowski
2015-08-24  8:02 ` [PATCH v2 5/7] ARM: dts: add SROM device node for exynos4 Pankaj Dubey
2015-08-25  1:57   ` Krzysztof Kozlowski
2015-08-24  8:02 ` [PATCH v2 6/7] ARM: dts: add SROM device node for exynos5 Pankaj Dubey
2015-08-25  2:03   ` Krzysztof Kozlowski
2015-08-24  8:02 ` [PATCH v2 7/7] Documentation: dt-bindings: add exynos-srom binding information Pankaj Dubey
2015-08-25  2:03   ` Krzysztof Kozlowski
2015-08-25  2:18 ` [PATCH v2 0/7] Add support for Exynos SROM Controller driver Krzysztof Kozlowski
2015-10-13 13:25   ` Pankaj Dubey
2015-09-16 23:19 ` Kukjin Kim
2015-10-05 11:36 ` Pavel Fedin
2015-10-05 12:48   ` Krzysztof Kozlowski
2015-10-05 13:18     ` Pavel Fedin
2015-10-06  0:23       ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).