From: Pankaj Dubey <pankaj.dubey@samsung.com>
To: Vikas Sajjan <sajjan.linux@gmail.com>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
linux-kernel@vger.kernel.org,
linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
Kukjin Kim <kgene.kim@samsung.com>,
linux@arm.linux.org.uk, chow.kim@samsung.com,
Young-Gun Jang <yg1004.jang@samsung.com>,
sunil joshi <joshi@samsung.com>,
Tomasz Figa <tomasz.figa@gmail.com>
Subject: Re: [PATCH 06/10] ARM: EXYNOS: Add support for mapping PMU base address via DT
Date: Thu, 24 Apr 2014 11:45:46 +0900 [thread overview]
Message-ID: <53587ADA.1090003@samsung.com> (raw)
In-Reply-To: <CAGm_ybgEfqYfKJch58_svA5GAbkFXfXb1FyOiMSrX12PzBHxyA@mail.gmail.com>
Hi Vikas,
On 04/23/2014 10:02 PM, Vikas Sajjan wrote:
> Hi,
>
> On Wed, Apr 2, 2014 at 1:20 PM, Pankaj Dubey <pankaj.dubey@samsung.com> wrote:
>> From: Young-Gun Jang <yg1004.jang@samsung.com>
>>
>> Add support for mapping Exynos Power Management Unit (PMU) base address
>> from device tree. Code will use existing samsung pmu binding information.
>> This patch also adds "get_exynos_pmubase" a helper function to return mapped base
>> address to various other files under "mach-exynos".
>>
>> Signed-off-by: Young-Gun Jang <yg1004.jang@samsung.com>
>> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
>> ---
>> arch/arm/mach-exynos/common.h | 2 ++
>> arch/arm/mach-exynos/exynos.c | 44 +++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 46 insertions(+)
>>
>> diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
>> index ff28334..9a55cf6 100644
>> --- a/arch/arm/mach-exynos/common.h
>> +++ b/arch/arm/mach-exynos/common.h
>> @@ -61,4 +61,6 @@ struct exynos_pmu_conf {
>>
>> extern void exynos_sys_powerdown_conf(enum sys_powerdown mode);
>>
>> +extern void __iomem *get_exynos_pmubase(void);
>> +
>> #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */
>> diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
>> index a5e1349..a5127fb 100644
>> --- a/arch/arm/mach-exynos/exynos.c
>> +++ b/arch/arm/mach-exynos/exynos.c
>> @@ -35,6 +35,8 @@
>> #define L2_AUX_VAL 0x7C470001
>> #define L2_AUX_MASK 0xC200ffff
>>
>> +static void __iomem *exynos_pmu_base __initdata;
> Are you sure you want to keep exynos_pmu_base in .init section.
> I am seeing a crash in platform_do_lowpower()
> I think you should remove __initdata.
Thanks for review and testing.
You are right we do not need __initdata here.
I will take care of this in V2.
>> +
>> static struct map_desc exynos4_iodesc[] __initdata = {
>> {
>> .virtual = (unsigned long)S3C_VA_SYS,
>> @@ -245,6 +247,47 @@ void __init exynos_init_late(void)
>> exynos_pm_init();
>> }
>>
>> +static char const *exynos_dt_pmu_match[] __initconst = {
>> + "samsung,exynos4210-pmu",
>> + "samsung,exynos4212-pmu",
>> + "samsung,exynos4412-pmu",
>> + "samsung,exynos5250-pmu",
>> + NULL
>> +};
>> +
>> +static int __init exynos_fdt_map_pmu(unsigned long node,
>> + const char *uname, int depth, void *data)
>> +{
>> + struct map_desc iodesc;
>> + __be32 *reg;
>> + unsigned long len;
>> +
>> + if (of_flat_dt_match(node, exynos_dt_pmu_match)) {
>> + phys_addr_t phys_addr;
>> + reg = of_get_flat_dt_prop(node, "reg", &len);
>> + if (reg == NULL || len != (sizeof(unsigned long) * 2))
>> + return 0;
>> +
>> + phys_addr = be32_to_cpu(reg[0]);
>> + iodesc.pfn = __phys_to_pfn(phys_addr);
>> + iodesc.length = be32_to_cpu(reg[1]) - 1;
>> + iodesc.virtual = (unsigned long)S5P_VA_PMU;
>> + iodesc.type = MT_DEVICE;
>> + iotable_init(&iodesc, 1);
>> +
>> + exynos_pmu_base = ioremap(phys_addr, be32_to_cpu(reg[1]));
>> + if (WARN_ON(!exynos_pmu_base))
>> + return -EFAULT;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> +inline void __iomem *get_exynos_pmubase()
>> +{
>> + return exynos_pmu_base;
>> +}
>> +
>> static int __init exynos_fdt_map_chipid(unsigned long node, const char *uname,
>> int depth, void *data)
>> {
>> @@ -301,6 +344,7 @@ void __init exynos_init_io(void)
>> debug_ll_io_init();
>>
>> of_scan_flat_dt(exynos_fdt_map_chipid, NULL);
>> + of_scan_flat_dt(exynos_fdt_map_pmu, NULL);
>>
>> /* detect cpu id and rev. */
>> s5p_init_cpu(S5P_VA_CHIPID);
>> --
>> 1.7.10.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
--
Best Regards,
Pankaj Dubey
WARNING: multiple messages have this Message-ID (diff)
From: pankaj.dubey@samsung.com (Pankaj Dubey)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/10] ARM: EXYNOS: Add support for mapping PMU base address via DT
Date: Thu, 24 Apr 2014 11:45:46 +0900 [thread overview]
Message-ID: <53587ADA.1090003@samsung.com> (raw)
In-Reply-To: <CAGm_ybgEfqYfKJch58_svA5GAbkFXfXb1FyOiMSrX12PzBHxyA@mail.gmail.com>
Hi Vikas,
On 04/23/2014 10:02 PM, Vikas Sajjan wrote:
> Hi,
>
> On Wed, Apr 2, 2014 at 1:20 PM, Pankaj Dubey <pankaj.dubey@samsung.com> wrote:
>> From: Young-Gun Jang <yg1004.jang@samsung.com>
>>
>> Add support for mapping Exynos Power Management Unit (PMU) base address
>> from device tree. Code will use existing samsung pmu binding information.
>> This patch also adds "get_exynos_pmubase" a helper function to return mapped base
>> address to various other files under "mach-exynos".
>>
>> Signed-off-by: Young-Gun Jang <yg1004.jang@samsung.com>
>> Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
>> ---
>> arch/arm/mach-exynos/common.h | 2 ++
>> arch/arm/mach-exynos/exynos.c | 44 +++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 46 insertions(+)
>>
>> diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
>> index ff28334..9a55cf6 100644
>> --- a/arch/arm/mach-exynos/common.h
>> +++ b/arch/arm/mach-exynos/common.h
>> @@ -61,4 +61,6 @@ struct exynos_pmu_conf {
>>
>> extern void exynos_sys_powerdown_conf(enum sys_powerdown mode);
>>
>> +extern void __iomem *get_exynos_pmubase(void);
>> +
>> #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */
>> diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
>> index a5e1349..a5127fb 100644
>> --- a/arch/arm/mach-exynos/exynos.c
>> +++ b/arch/arm/mach-exynos/exynos.c
>> @@ -35,6 +35,8 @@
>> #define L2_AUX_VAL 0x7C470001
>> #define L2_AUX_MASK 0xC200ffff
>>
>> +static void __iomem *exynos_pmu_base __initdata;
> Are you sure you want to keep exynos_pmu_base in .init section.
> I am seeing a crash in platform_do_lowpower()
> I think you should remove __initdata.
Thanks for review and testing.
You are right we do not need __initdata here.
I will take care of this in V2.
>> +
>> static struct map_desc exynos4_iodesc[] __initdata = {
>> {
>> .virtual = (unsigned long)S3C_VA_SYS,
>> @@ -245,6 +247,47 @@ void __init exynos_init_late(void)
>> exynos_pm_init();
>> }
>>
>> +static char const *exynos_dt_pmu_match[] __initconst = {
>> + "samsung,exynos4210-pmu",
>> + "samsung,exynos4212-pmu",
>> + "samsung,exynos4412-pmu",
>> + "samsung,exynos5250-pmu",
>> + NULL
>> +};
>> +
>> +static int __init exynos_fdt_map_pmu(unsigned long node,
>> + const char *uname, int depth, void *data)
>> +{
>> + struct map_desc iodesc;
>> + __be32 *reg;
>> + unsigned long len;
>> +
>> + if (of_flat_dt_match(node, exynos_dt_pmu_match)) {
>> + phys_addr_t phys_addr;
>> + reg = of_get_flat_dt_prop(node, "reg", &len);
>> + if (reg == NULL || len != (sizeof(unsigned long) * 2))
>> + return 0;
>> +
>> + phys_addr = be32_to_cpu(reg[0]);
>> + iodesc.pfn = __phys_to_pfn(phys_addr);
>> + iodesc.length = be32_to_cpu(reg[1]) - 1;
>> + iodesc.virtual = (unsigned long)S5P_VA_PMU;
>> + iodesc.type = MT_DEVICE;
>> + iotable_init(&iodesc, 1);
>> +
>> + exynos_pmu_base = ioremap(phys_addr, be32_to_cpu(reg[1]));
>> + if (WARN_ON(!exynos_pmu_base))
>> + return -EFAULT;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> +inline void __iomem *get_exynos_pmubase()
>> +{
>> + return exynos_pmu_base;
>> +}
>> +
>> static int __init exynos_fdt_map_chipid(unsigned long node, const char *uname,
>> int depth, void *data)
>> {
>> @@ -301,6 +344,7 @@ void __init exynos_init_io(void)
>> debug_ll_io_init();
>>
>> of_scan_flat_dt(exynos_fdt_map_chipid, NULL);
>> + of_scan_flat_dt(exynos_fdt_map_pmu, NULL);
>>
>> /* detect cpu id and rev. */
>> s5p_init_cpu(S5P_VA_CHIPID);
>> --
>> 1.7.10.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at http://www.tux.org/lkml/
--
Best Regards,
Pankaj Dubey
next prev parent reply other threads:[~2014-04-24 2:27 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-02 7:50 [PATCH 0/7] ARM: Exynos: PMU cleanup and refactoring for using DT Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-02 7:50 ` [PATCH 01/10] ARM: EXYNOS: Cleanup "mach-exynos/common.h" file Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-08 15:59 ` Tomasz Figa
2014-04-08 15:59 ` Tomasz Figa
2014-04-10 4:35 ` Pankaj Dubey
2014-04-10 4:35 ` Pankaj Dubey
2014-04-02 7:50 ` [PATCH 02/10] ARM: EXYNOS: Correct file path in comment message Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-02 12:01 ` Michal Simek
2014-04-02 12:01 ` Michal Simek
2014-04-03 1:40 ` Pankaj Dubey
2014-04-03 1:40 ` Pankaj Dubey
2014-04-03 2:12 ` Kukjin Kim
2014-04-03 2:12 ` Kukjin Kim
2014-04-02 7:50 ` [PATCH 03/10] ARM: EXYNOS: Move SYSREG definition into sys-reg specific file Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-02 11:27 ` Sylwester Nawrocki
2014-04-02 11:27 ` Sylwester Nawrocki
2014-04-11 6:07 ` Pankaj Dubey
2014-04-11 6:07 ` Pankaj Dubey
2014-04-02 7:50 ` [PATCH 04/10] ARM: EXYNOS: Remove regs-pmu.h file dependency from pm_domain Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-02 7:50 ` [PATCH 05/10] ARM: EXYNOS: Move "regs-pmu" header inclusion in common.h Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-08 16:09 ` Tomasz Figa
2014-04-08 16:09 ` Tomasz Figa
2014-04-10 4:58 ` Pankaj Dubey
2014-04-10 4:58 ` Pankaj Dubey
2014-04-02 7:50 ` [PATCH 06/10] ARM: EXYNOS: Add support for mapping PMU base address via DT Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-02 11:48 ` Sylwester Nawrocki
2014-04-02 11:48 ` Sylwester Nawrocki
2014-04-02 12:15 ` Michal Simek
2014-04-02 12:15 ` Michal Simek
2014-04-03 9:07 ` Sylwester Nawrocki
2014-04-03 9:07 ` Sylwester Nawrocki
2014-04-05 10:58 ` Pankaj Dubey
2014-04-05 10:58 ` Pankaj Dubey
2014-04-07 6:02 ` Michal Simek
2014-04-07 6:02 ` Michal Simek
2014-04-05 10:53 ` Pankaj Dubey
2014-04-05 10:53 ` Pankaj Dubey
2014-04-05 10:53 ` Pankaj Dubey
2014-04-23 13:02 ` Vikas Sajjan
2014-04-23 13:02 ` Vikas Sajjan
2014-04-24 2:45 ` Pankaj Dubey [this message]
2014-04-24 2:45 ` Pankaj Dubey
2014-04-02 7:50 ` [PATCH 07/10] ARM: EXYNOS: Refactored code for PMU register mapping " Pankaj Dubey
2014-04-02 7:50 ` Pankaj Dubey
2014-04-25 12:32 ` [PATCH v2 00/10] ARM: Exynos: PMU cleanup and refactoring for using DT Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 12:32 ` [PATCH v2 01/10] ARM: EXYNOS: Make exynos machine_ops as static Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 21:05 ` Tomasz Figa
2014-04-25 21:05 ` Tomasz Figa
2014-04-26 4:42 ` Pankaj Dubey
2014-04-26 4:42 ` Pankaj Dubey
2014-04-25 12:32 ` [PATCH v2 02/10] ARM: EXYNOS: Cleanup "mach-exynos/common.h" file Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 21:06 ` Tomasz Figa
2014-04-25 21:06 ` Tomasz Figa
2014-04-25 12:32 ` [PATCH v2 03/10] ARM: EXYNOS: Move SYSREG definition into sys-reg specific file Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 21:08 ` Tomasz Figa
2014-04-25 21:08 ` Tomasz Figa
2014-04-25 12:32 ` [PATCH v2 04/10] ARM: EXYNOS: Remove file path from comment section Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 21:14 ` Tomasz Figa
2014-04-25 21:14 ` Tomasz Figa
2014-04-25 12:32 ` [PATCH v2 05/10] ARM: EXYNOS: Remove regs-pmu.h header dependency from pm_domain Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 21:19 ` Tomasz Figa
2014-04-25 21:19 ` Tomasz Figa
2014-04-26 3:39 ` Pankaj Dubey
2014-04-26 3:39 ` Pankaj Dubey
2014-04-25 12:32 ` [PATCH v2 06/10] ARM: EXYNOS: Add support for mapping PMU base address via DT Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 21:43 ` Tomasz Figa
2014-04-25 21:43 ` Tomasz Figa
2014-04-27 7:29 ` Pankaj Dubey
2014-04-27 7:29 ` Pankaj Dubey
2014-04-25 12:32 ` [PATCH v2 07/10] ARM: EXYNOS: Remove "linux/bug.h" from pmu.c Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 21:44 ` Tomasz Figa
2014-04-25 21:44 ` Tomasz Figa
2014-04-25 12:32 ` [PATCH v2 08/10] ARM: EXYNOS: Refactored code for using PMU address via DT Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 22:19 ` Tomasz Figa
2014-04-25 22:19 ` Tomasz Figa
2014-04-26 3:32 ` Pankaj Dubey
2014-04-26 3:32 ` Pankaj Dubey
2014-04-25 12:32 ` [PATCH v2 09/10] ARM: EXYNOS: Move "mach/map.h" inclusion from regs-pmu.h to platsmp.c Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 12:32 ` [PATCH v2 10/10] ARM: EXYNOS: Add device tree based initialization support for PMU Pankaj Dubey
2014-04-25 12:32 ` Pankaj Dubey
2014-04-25 22:40 ` Tomasz Figa
2014-04-25 22:40 ` Tomasz Figa
2014-04-26 4:36 ` Pankaj Dubey
2014-04-26 4:36 ` Pankaj Dubey
2014-04-25 22:43 ` [PATCH v2 00/10] ARM: Exynos: PMU cleanup and refactoring for using DT Tomasz Figa
2014-04-25 22:43 ` Tomasz Figa
2014-04-26 2:07 ` Pankaj Dubey
2014-04-26 2:07 ` Pankaj Dubey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53587ADA.1090003@samsung.com \
--to=pankaj.dubey@samsung.com \
--cc=chow.kim@samsung.com \
--cc=joshi@samsung.com \
--cc=kgene.kim@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=sajjan.linux@gmail.com \
--cc=tomasz.figa@gmail.com \
--cc=yg1004.jang@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.