diff mbox

[RESEND,v6] ARM: EXYNOS: Remove i2c sys configuration related code

Message ID 1420450146-27112-1-git-send-email-pankaj.dubey@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Pankaj Dubey Jan. 5, 2015, 9:29 a.m. UTC
As all these code has been moved into i2c driver, now we can
safely remove them from machine files.

CC: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
This patch is leftover patch from patch series [1], resending it after rebasing.
It can be cleanly applied on kgene/for-next and linux-next/next-20150103.

[1]: http://www.spinics.net/lists/linux-samsung-soc/msg39440.html


 arch/arm/mach-exynos/exynos.c           | 39 ++-------------------------------
 arch/arm/mach-exynos/include/mach/map.h |  3 ---
 arch/arm/mach-exynos/pm.c               |  3 ++-
 arch/arm/mach-exynos/regs-sys.h         | 22 -------------------
 arch/arm/mach-exynos/suspend.c          |  7 ------
 5 files changed, 4 insertions(+), 70 deletions(-)
 delete mode 100644 arch/arm/mach-exynos/regs-sys.h

Comments

kgene@kernel.org Jan. 5, 2015, 1:01 p.m. UTC | #1
Pankaj Dubey wrote:
> 
> As all these code has been moved into i2c driver, now we can
> safely remove them from machine files.
> 
> CC: Russell King <linux@arm.linux.org.uk>
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
> This patch is leftover patch from patch series [1], resending it after rebasing.
> It can be cleanly applied on kgene/for-next and linux-next/next-20150103.
> 
> [1]: http://www.spinics.net/lists/linux-samsung-soc/msg39440.html
> 
Hi Pankaj,

Happy new year and looks good to me. Nice cleanup ;)

Thanks for your gentle reminder and will apply.

- Kukjin

> 
>  arch/arm/mach-exynos/exynos.c           | 39 ++-------------------------------
>  arch/arm/mach-exynos/include/mach/map.h |  3 ---
>  arch/arm/mach-exynos/pm.c               |  3 ++-
>  arch/arm/mach-exynos/regs-sys.h         | 22 -------------------
>  arch/arm/mach-exynos/suspend.c          |  7 ------
>  5 files changed, 4 insertions(+), 70 deletions(-)
>  delete mode 100644 arch/arm/mach-exynos/regs-sys.h
> 
> diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
> index c13d083..2c84439 100644
> --- a/arch/arm/mach-exynos/exynos.c
> +++ b/arch/arm/mach-exynos/exynos.c
> @@ -27,20 +27,16 @@
>  #include <asm/mach/map.h>
>  #include <asm/memory.h>
> 
> +#include <mach/map.h>
> +
>  #include "common.h"
>  #include "mfc.h"
>  #include "regs-pmu.h"
> -#include "regs-sys.h"
> 
>  void __iomem *pmu_base_addr;
> 
>  static struct map_desc exynos4_iodesc[] __initdata = {
>  	{
> -		.virtual	= (unsigned long)S3C_VA_SYS,
> -		.pfn		= __phys_to_pfn(EXYNOS4_PA_SYSCON),
> -		.length		= SZ_64K,
> -		.type		= MT_DEVICE,
> -	}, {
>  		.virtual	= (unsigned long)S5P_VA_SROMC,
>  		.pfn		= __phys_to_pfn(EXYNOS4_PA_SROMC),
>  		.length		= SZ_4K,
> @@ -70,11 +66,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
> 
>  static struct map_desc exynos5_iodesc[] __initdata = {
>  	{
> -		.virtual	= (unsigned long)S3C_VA_SYS,
> -		.pfn		= __phys_to_pfn(EXYNOS5_PA_SYSCON),
> -		.length		= SZ_64K,
> -		.type		= MT_DEVICE,
> -	}, {
>  		.virtual	= (unsigned long)S5P_VA_SROMC,
>  		.pfn		= __phys_to_pfn(EXYNOS5_PA_SROMC),
>  		.length		= SZ_4K,
> @@ -213,32 +204,6 @@ static void __init exynos_init_irq(void)
> 
>  static void __init exynos_dt_machine_init(void)
>  {
> -	struct device_node *i2c_np;
> -	const char *i2c_compat = "samsung,s3c2440-i2c";
> -	unsigned int tmp;
> -	int id;
> -
> -	/*
> -	 * Exynos5's legacy i2c controller and new high speed i2c
> -	 * controller have muxed interrupt sources. By default the
> -	 * interrupts for 4-channel HS-I2C controller are enabled.
> -	 * If node for first four channels of legacy i2c controller
> -	 * are available then re-configure the interrupts via the
> -	 * system register.
> -	 */
> -	if (soc_is_exynos5()) {
> -		for_each_compatible_node(i2c_np, NULL, i2c_compat) {
> -			if (of_device_is_available(i2c_np)) {
> -				id = of_alias_get_id(i2c_np, "i2c");
> -				if (id < 4) {
> -					tmp = readl(EXYNOS5_SYS_I2C_CFG);
> -					writel(tmp & ~(0x1 << id),
> -							EXYNOS5_SYS_I2C_CFG);
> -				}
> -			}
> -		}
> -	}
> -
>  	/*
>  	 * This is called from smp_prepare_cpus if we've built for SMP, but
>  	 * we still need to set it up for PM and firmware ops if not.
> diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
> index 1ad3f49..de3ae59 100644
> --- a/arch/arm/mach-exynos/include/mach/map.h
> +++ b/arch/arm/mach-exynos/include/mach/map.h
> @@ -24,9 +24,6 @@
> 
>  #define EXYNOS_PA_CHIPID		0x10000000
> 
> -#define EXYNOS4_PA_SYSCON		0x10010000
> -#define EXYNOS5_PA_SYSCON		0x10050100
> -
>  #define EXYNOS4_PA_CMU			0x10030000
>  #define EXYNOS5_PA_CMU			0x10010000
> 
> diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
> index 86f3ecd..dfc8594 100644
> --- a/arch/arm/mach-exynos/pm.c
> +++ b/arch/arm/mach-exynos/pm.c
> @@ -23,12 +23,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-sys.h"
> 
>  static inline void __iomem *exynos_boot_vector_addr(void)
>  {
> diff --git a/arch/arm/mach-exynos/regs-sys.h b/arch/arm/mach-exynos/regs-sys.h
> deleted file mode 100644
> index 84332b0..0000000
> --- a/arch/arm/mach-exynos/regs-sys.h
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -/*
> - * Copyright (c) 2014 Samsung Electronics Co., Ltd.
> - *             http://www.samsung.com
> - *
> - * EXYNOS - system register definition
> - *
> - * 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 __ASM_ARCH_REGS_SYS_H
> -#define __ASM_ARCH_REGS_SYS_H __FILE__
> -
> -#include <mach/map.h>
> -
> -#define S5P_SYSREG(x)                          (S3C_VA_SYS + (x))
> -
> -/* For EXYNOS5 */
> -#define EXYNOS5_SYS_I2C_CFG                    S5P_SYSREG(0x0234)
> -
> -#endif /* __ASM_ARCH_REGS_SYS_H */
> diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
> index f8e7dcd..342797b 100644
> --- a/arch/arm/mach-exynos/suspend.c
> +++ b/arch/arm/mach-exynos/suspend.c
> @@ -34,7 +34,6 @@
> 
>  #include "common.h"
>  #include "regs-pmu.h"
> -#include "regs-sys.h"
>  #include "exynos-pmu.h"
> 
>  #define S5P_CHECK_SLEEP 0x00000BAD
> @@ -53,10 +52,6 @@ struct exynos_wkup_irq {
>  	u32 mask;
>  };
> 
> -static struct sleep_save exynos5_sys_save[] = {
> -	SAVE_ITEM(EXYNOS5_SYS_I2C_CFG),
> -};
> -
>  static struct sleep_save exynos_core_save[] = {
>  	/* SROM side */
>  	SAVE_ITEM(S5P_SROM_BW),
> @@ -497,8 +492,6 @@ static const struct exynos_pm_data exynos5250_pm_data = {
>  	.wkup_irq	= exynos5250_wkup_irq,
>  	.wake_disable_mask = ((0xFF << 8) | (0x1F << 1)),
>  	.release_ret_regs = exynos_release_ret_regs,
> -	.extra_save	= exynos5_sys_save,
> -	.num_extra_save	= ARRAY_SIZE(exynos5_sys_save),
>  	.pm_suspend	= exynos_pm_suspend,
>  	.pm_resume	= exynos_pm_resume,
>  	.pm_prepare	= exynos_pm_prepare,
> --
> 2.2.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index c13d083..2c84439 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -27,20 +27,16 @@ 
 #include <asm/mach/map.h>
 #include <asm/memory.h>
 
+#include <mach/map.h>
+
 #include "common.h"
 #include "mfc.h"
 #include "regs-pmu.h"
-#include "regs-sys.h"
 
 void __iomem *pmu_base_addr;
 
 static struct map_desc exynos4_iodesc[] __initdata = {
 	{
-		.virtual	= (unsigned long)S3C_VA_SYS,
-		.pfn		= __phys_to_pfn(EXYNOS4_PA_SYSCON),
-		.length		= SZ_64K,
-		.type		= MT_DEVICE,
-	}, {
 		.virtual	= (unsigned long)S5P_VA_SROMC,
 		.pfn		= __phys_to_pfn(EXYNOS4_PA_SROMC),
 		.length		= SZ_4K,
@@ -70,11 +66,6 @@  static struct map_desc exynos4_iodesc[] __initdata = {
 
 static struct map_desc exynos5_iodesc[] __initdata = {
 	{
-		.virtual	= (unsigned long)S3C_VA_SYS,
-		.pfn		= __phys_to_pfn(EXYNOS5_PA_SYSCON),
-		.length		= SZ_64K,
-		.type		= MT_DEVICE,
-	}, {
 		.virtual	= (unsigned long)S5P_VA_SROMC,
 		.pfn		= __phys_to_pfn(EXYNOS5_PA_SROMC),
 		.length		= SZ_4K,
@@ -213,32 +204,6 @@  static void __init exynos_init_irq(void)
 
 static void __init exynos_dt_machine_init(void)
 {
-	struct device_node *i2c_np;
-	const char *i2c_compat = "samsung,s3c2440-i2c";
-	unsigned int tmp;
-	int id;
-
-	/*
-	 * Exynos5's legacy i2c controller and new high speed i2c
-	 * controller have muxed interrupt sources. By default the
-	 * interrupts for 4-channel HS-I2C controller are enabled.
-	 * If node for first four channels of legacy i2c controller
-	 * are available then re-configure the interrupts via the
-	 * system register.
-	 */
-	if (soc_is_exynos5()) {
-		for_each_compatible_node(i2c_np, NULL, i2c_compat) {
-			if (of_device_is_available(i2c_np)) {
-				id = of_alias_get_id(i2c_np, "i2c");
-				if (id < 4) {
-					tmp = readl(EXYNOS5_SYS_I2C_CFG);
-					writel(tmp & ~(0x1 << id),
-							EXYNOS5_SYS_I2C_CFG);
-				}
-			}
-		}
-	}
-
 	/*
 	 * This is called from smp_prepare_cpus if we've built for SMP, but
 	 * we still need to set it up for PM and firmware ops if not.
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index 1ad3f49..de3ae59 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -24,9 +24,6 @@ 
 
 #define EXYNOS_PA_CHIPID		0x10000000
 
-#define EXYNOS4_PA_SYSCON		0x10010000
-#define EXYNOS5_PA_SYSCON		0x10050100
-
 #define EXYNOS4_PA_CMU			0x10030000
 #define EXYNOS5_PA_CMU			0x10010000
 
diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
index 86f3ecd..dfc8594 100644
--- a/arch/arm/mach-exynos/pm.c
+++ b/arch/arm/mach-exynos/pm.c
@@ -23,12 +23,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-sys.h"
 
 static inline void __iomem *exynos_boot_vector_addr(void)
 {
diff --git a/arch/arm/mach-exynos/regs-sys.h b/arch/arm/mach-exynos/regs-sys.h
deleted file mode 100644
index 84332b0..0000000
--- a/arch/arm/mach-exynos/regs-sys.h
+++ /dev/null
@@ -1,22 +0,0 @@ 
-/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
- *             http://www.samsung.com
- *
- * EXYNOS - system register definition
- *
- * 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 __ASM_ARCH_REGS_SYS_H
-#define __ASM_ARCH_REGS_SYS_H __FILE__
-
-#include <mach/map.h>
-
-#define S5P_SYSREG(x)                          (S3C_VA_SYS + (x))
-
-/* For EXYNOS5 */
-#define EXYNOS5_SYS_I2C_CFG                    S5P_SYSREG(0x0234)
-
-#endif /* __ASM_ARCH_REGS_SYS_H */
diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
index f8e7dcd..342797b 100644
--- a/arch/arm/mach-exynos/suspend.c
+++ b/arch/arm/mach-exynos/suspend.c
@@ -34,7 +34,6 @@ 
 
 #include "common.h"
 #include "regs-pmu.h"
-#include "regs-sys.h"
 #include "exynos-pmu.h"
 
 #define S5P_CHECK_SLEEP 0x00000BAD
@@ -53,10 +52,6 @@  struct exynos_wkup_irq {
 	u32 mask;
 };
 
-static struct sleep_save exynos5_sys_save[] = {
-	SAVE_ITEM(EXYNOS5_SYS_I2C_CFG),
-};
-
 static struct sleep_save exynos_core_save[] = {
 	/* SROM side */
 	SAVE_ITEM(S5P_SROM_BW),
@@ -497,8 +492,6 @@  static const struct exynos_pm_data exynos5250_pm_data = {
 	.wkup_irq	= exynos5250_wkup_irq,
 	.wake_disable_mask = ((0xFF << 8) | (0x1F << 1)),
 	.release_ret_regs = exynos_release_ret_regs,
-	.extra_save	= exynos5_sys_save,
-	.num_extra_save	= ARRAY_SIZE(exynos5_sys_save),
 	.pm_suspend	= exynos_pm_suspend,
 	.pm_resume	= exynos_pm_resume,
 	.pm_prepare	= exynos_pm_prepare,