From: Pankaj Dubey <pankaj.dubey@samsung.com>
To: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: kgene.kim@samsung.com, linux@arm.linux.org.uk,
linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
Young-Gun Jang <yg1004.jang@samsung.com>,
chow.kim@samsung.com, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 06/10] ARM: EXYNOS: Add support for mapping PMU base address via DT
Date: Sat, 05 Apr 2014 19:53:53 +0900 [thread overview]
Message-ID: <533FE0C1.6070207@samsung.com> (raw)
In-Reply-To: <533BF905.6070701@samsung.com>
On 04/02/2014 08:48 PM, Sylwester Nawrocki wrote:
> On 02/04/14 09:50, Pankaj Dubey 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(+)
>>
> [...]
>> #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;
>> +
>> 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);
> Are you sure...you need this in addition to ioremap() below ?
> Can't you just use the Linux syscon API ?
> There were some patches posted for syscon to make it available in earlier
> system initialization stage: https://lkml.org/lkml/2014/2/19/218
Thanks for review and suggestion.
We need ioremap() in addition to iotable_init to get virtual address,
which will be used by other files also for read/write PMU registers.
Regarding syscon early initialization, since I was not aware of any such
patch earlier I have not used it. But after you suggested I tried it and
modified this implementation to use syscon API and regmap API and it's
working fine.
I will wait for review of other patches in this series and status of above
mentioned syscon API based on that I will update this in next revision.
>> + exynos_pmu_base = ioremap(phys_addr, be32_to_cpu(reg[1]));
>> + if (WARN_ON(!exynos_pmu_base))
>> + return -EFAULT;
>> + }
>> +
>> + return 0;
>> +}
> --
> Thanks,
> Sylwester
>
--
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: Sat, 05 Apr 2014 19:53:53 +0900 [thread overview]
Message-ID: <533FE0C1.6070207@samsung.com> (raw)
In-Reply-To: <533BF905.6070701@samsung.com>
On 04/02/2014 08:48 PM, Sylwester Nawrocki wrote:
> On 02/04/14 09:50, Pankaj Dubey 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(+)
>>
> [...]
>> #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;
>> +
>> 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);
> Are you sure...you need this in addition to ioremap() below ?
> Can't you just use the Linux syscon API ?
> There were some patches posted for syscon to make it available in earlier
> system initialization stage: https://lkml.org/lkml/2014/2/19/218
Thanks for review and suggestion.
We need ioremap() in addition to iotable_init to get virtual address,
which will be used by other files also for read/write PMU registers.
Regarding syscon early initialization, since I was not aware of any such
patch earlier I have not used it. But after you suggested I tried it and
modified this implementation to use syscon API and regmap API and it's
working fine.
I will wait for review of other patches in this series and status of above
mentioned syscon API based on that I will update this in next revision.
>> + exynos_pmu_base = ioremap(phys_addr, be32_to_cpu(reg[1]));
>> + if (WARN_ON(!exynos_pmu_base))
>> + return -EFAULT;
>> + }
>> +
>> + return 0;
>> +}
> --
> Thanks,
> Sylwester
>
--
Best Regards,
Pankaj Dubey
WARNING: multiple messages have this Message-ID (diff)
From: Pankaj Dubey <pankaj.dubey@samsung.com>
To: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, kgene.kim@samsung.com,
linux@arm.linux.org.uk, chow.kim@samsung.com,
Young-Gun Jang <yg1004.jang@samsung.com>
Subject: Re: [PATCH 06/10] ARM: EXYNOS: Add support for mapping PMU base address via DT
Date: Sat, 05 Apr 2014 19:53:53 +0900 [thread overview]
Message-ID: <533FE0C1.6070207@samsung.com> (raw)
In-Reply-To: <533BF905.6070701@samsung.com>
On 04/02/2014 08:48 PM, Sylwester Nawrocki wrote:
> On 02/04/14 09:50, Pankaj Dubey 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(+)
>>
> [...]
>> #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;
>> +
>> 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);
> Are you sure...you need this in addition to ioremap() below ?
> Can't you just use the Linux syscon API ?
> There were some patches posted for syscon to make it available in earlier
> system initialization stage: https://lkml.org/lkml/2014/2/19/218
Thanks for review and suggestion.
We need ioremap() in addition to iotable_init to get virtual address,
which will be used by other files also for read/write PMU registers.
Regarding syscon early initialization, since I was not aware of any such
patch earlier I have not used it. But after you suggested I tried it and
modified this implementation to use syscon API and regmap API and it's
working fine.
I will wait for review of other patches in this series and status of above
mentioned syscon API based on that I will update this in next revision.
>> + exynos_pmu_base = ioremap(phys_addr, be32_to_cpu(reg[1]));
>> + if (WARN_ON(!exynos_pmu_base))
>> + return -EFAULT;
>> + }
>> +
>> + return 0;
>> +}
> --
> Thanks,
> Sylwester
>
--
Best Regards,
Pankaj Dubey
next prev parent reply other threads:[~2014-04-05 10:53 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 [this message]
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
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=533FE0C1.6070207@samsung.com \
--to=pankaj.dubey@samsung.com \
--cc=chow.kim@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=s.nawrocki@samsung.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.