diff mbox

[03/10] ARM: EXYNOS: Move SYSREG definition into sys-reg specific file

Message ID 1396425058-4012-4-git-send-email-pankaj.dubey@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Pankaj Dubey April 2, 2014, 7:50 a.m. UTC
From: Young-Gun Jang <yg1004.jang@samsung.com>

While making PMU (Power Mengement Unit) implementation device tree based,
there are few offsets related with SYSREG present in regs-pmu.h, so let's
make a new header file "regs-sys.h" to keep all such SYSREG related
register definition and remove them from "regs-pmu.h"

Signed-off-by: Young-Gun Jang <yg1004.jang@samsung.com>
Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
---
 arch/arm/mach-exynos/exynos.c   |    1 +
 arch/arm/mach-exynos/pm.c       |    1 +
 arch/arm/mach-exynos/regs-pmu.h |    3 ---
 arch/arm/mach-exynos/regs-sys.h |   22 ++++++++++++++++++++++
 4 files changed, 24 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/mach-exynos/regs-sys.h

Comments

Hi,

On 02/04/14 09:50, Pankaj Dubey wrote:
> From: Young-Gun Jang <yg1004.jang@samsung.com>
> 
> While making PMU (Power Mengement Unit) implementation device tree based,
> there are few offsets related with SYSREG present in regs-pmu.h, so let's
> make a new header file "regs-sys.h" to keep all such SYSREG related
> register definition and remove them from "regs-pmu.h"
> 
> Signed-off-by: Young-Gun Jang <yg1004.jang@samsung.com>
> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
> ---
>  arch/arm/mach-exynos/exynos.c   |    1 +
>  arch/arm/mach-exynos/pm.c       |    1 +
>  arch/arm/mach-exynos/regs-pmu.h |    3 ---
>  arch/arm/mach-exynos/regs-sys.h |   22 ++++++++++++++++++++++
>  4 files changed, 24 insertions(+), 3 deletions(-)
>  create mode 100644 arch/arm/mach-exynos/regs-sys.h
[...]
> diff --git a/arch/arm/mach-exynos/regs-sys.h b/arch/arm/mach-exynos/regs-sys.h
> new file mode 100644
> index 0000000..84332b0
> --- /dev/null
> +++ b/arch/arm/mach-exynos/regs-sys.h
> @@ -0,0 +1,22 @@
> +/*
> + * 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)

Can this be defined as a regular register offset in a header file
placed at include/linux/mfd/syscon/ ? I.e. can the mfd syscon driver be
used instead of these hacks ?
Pankaj Dubey April 11, 2014, 6:07 a.m. UTC | #2
On 04/02/2014 08:27 PM, Sylwester Nawrocki wrote:
> Hi,
>
> On 02/04/14 09:50, Pankaj Dubey wrote:
>> From: Young-Gun Jang <yg1004.jang@samsung.com>
>>
>> While making PMU (Power Mengement Unit) implementation device tree based,
>> there are few offsets related with SYSREG present in regs-pmu.h, so let's
>> make a new header file "regs-sys.h" to keep all such SYSREG related
>> register definition and remove them from "regs-pmu.h"
>>
>> Signed-off-by: Young-Gun Jang <yg1004.jang@samsung.com>
>> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
>> ---
>>   arch/arm/mach-exynos/exynos.c   |    1 +
>>   arch/arm/mach-exynos/pm.c       |    1 +
>>   arch/arm/mach-exynos/regs-pmu.h |    3 ---
>>   arch/arm/mach-exynos/regs-sys.h |   22 ++++++++++++++++++++++
>>   4 files changed, 24 insertions(+), 3 deletions(-)
>>   create mode 100644 arch/arm/mach-exynos/regs-sys.h
> [...]
>> diff --git a/arch/arm/mach-exynos/regs-sys.h b/arch/arm/mach-exynos/regs-sys.h
>> new file mode 100644
>> index 0000000..84332b0
>> --- /dev/null
>> +++ b/arch/arm/mach-exynos/regs-sys.h
>> @@ -0,0 +1,22 @@
>> +/*
>> + * 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)
> Can this be defined as a regular register offset in a header file
> placed at include/linux/mfd/syscon/ ? I.e. can the mfd syscon driver be
> used instead of these hacks ?
>
No. As currently SysRegs are being accessed via iodesc table and not via DT,
it has dependency on "mach/map.h".
We separated these definitions from "regs-pmu.h" as it does not belong to EXYNOS 
PMU IP.
But this can be done once we make some way of accessing SysReg register sets via DT.
diff mbox

Patch

diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index b567361..57bd1cd 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -31,6 +31,7 @@ 
 #include "common.h"
 #include "mfc.h"
 #include "regs-pmu.h"
+#include "regs-sys.h"
 
 #define L2_AUX_VAL 0x7C470001
 #define L2_AUX_MASK 0xC200ffff
diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
index 15af0ce..723c988 100644
--- a/arch/arm/mach-exynos/pm.c
+++ b/arch/arm/mach-exynos/pm.c
@@ -35,6 +35,7 @@ 
 
 #include "common.h"
 #include "regs-pmu.h"
+#include "regs-sys.h"
 
 /**
  * struct exynos_wkup_irq - Exynos GIC to PMU IRQ mapping
diff --git a/arch/arm/mach-exynos/regs-pmu.h b/arch/arm/mach-exynos/regs-pmu.h
index 4f6a256..4ee706d 100644
--- a/arch/arm/mach-exynos/regs-pmu.h
+++ b/arch/arm/mach-exynos/regs-pmu.h
@@ -15,7 +15,6 @@ 
 #include <mach/map.h>
 
 #define S5P_PMUREG(x)				(S5P_VA_PMU + (x))
-#define S5P_SYSREG(x)				(S3C_VA_SYS + (x))
 
 #define S5P_CENTRAL_SEQ_CONFIGURATION		S5P_PMUREG(0x0200)
 
@@ -180,8 +179,6 @@ 
 
 /* For EXYNOS5 */
 
-#define EXYNOS5_SYS_I2C_CFG					S5P_SYSREG(0x0234)
-
 #define EXYNOS5_AUTO_WDTRESET_DISABLE				S5P_PMUREG(0x0408)
 #define EXYNOS5_MASK_WDTRESET_REQUEST				S5P_PMUREG(0x040C)
 
diff --git a/arch/arm/mach-exynos/regs-sys.h b/arch/arm/mach-exynos/regs-sys.h
new file mode 100644
index 0000000..84332b0
--- /dev/null
+++ b/arch/arm/mach-exynos/regs-sys.h
@@ -0,0 +1,22 @@ 
+/*
+ * 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 */