diff mbox

[v2,02/02] ARM: shmobile: r8a7740: Multiplatform support

Message ID 20140825033653.9284.94459.sendpatchset@w520 (mailing list archive)
State Accepted
Commit c41215b781efbfa22ffc9dc474c2981c130c153d
Headers show

Commit Message

Magnus Damm Aug. 25, 2014, 3:36 a.m. UTC
From: Magnus Damm <damm+renesas@opensource.se>

Enable r8a7740 Multiplatform support for the generic r8a7740
machine vector. No board support is enabled, and the board
code for Armadillo 800 EVA DT Reference is left by itself.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---

 Built on top of renesas-devel-20140823-v3.17-rc1 and
 "[PATCH v2 00/05] ARM: shmobile: Kconfig and Makefile cleanups V2"

 arch/arm/mach-shmobile/Kconfig         |    5 +++++
 arch/arm/mach-shmobile/pm-r8a7740.c    |    5 ++---
 arch/arm/mach-shmobile/r8a7740.h       |    4 ++--
 arch/arm/mach-shmobile/setup-r8a7740.c |    8 +++++++-
 4 files changed, 16 insertions(+), 6 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Simon Horman Aug. 26, 2014, 2:40 a.m. UTC | #1
On Mon, Aug 25, 2014 at 12:36:53PM +0900, Magnus Damm wrote:
> From: Magnus Damm <damm+renesas@opensource.se>
> 
> Enable r8a7740 Multiplatform support for the generic r8a7740
> machine vector. No board support is enabled, and the board
> code for Armadillo 800 EVA DT Reference is left by itself.

I would still like some discussion of weather using
#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
is the best way to go.

It seems to me that it would be cleaner to add a new Kconfig symbol or two.

E.g. CONFIG_RMOBILE_PM which depends on CONFIG_PM and CONFIG_HAS_RMOBILE_PM
and then allow SoC or board Kconfig stanzas to select CONFIG_HAS_RMOBILE_PM.

> 
> Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
> ---
> 
>  Built on top of renesas-devel-20140823-v3.17-rc1 and
>  "[PATCH v2 00/05] ARM: shmobile: Kconfig and Makefile cleanups V2"
> 
>  arch/arm/mach-shmobile/Kconfig         |    5 +++++
>  arch/arm/mach-shmobile/pm-r8a7740.c    |    5 ++---
>  arch/arm/mach-shmobile/r8a7740.h       |    4 ++--
>  arch/arm/mach-shmobile/setup-r8a7740.c |    8 +++++++-
>  4 files changed, 16 insertions(+), 6 deletions(-)
> 
> --- 0011/arch/arm/mach-shmobile/Kconfig
> +++ work/arch/arm/mach-shmobile/Kconfig	2014-08-25 12:20:19.000000000 +0900
> @@ -50,6 +50,11 @@ config ARCH_R7S72100
>  	bool "RZ/A1H (R7S72100)"
>  	select SYS_SUPPORTS_SH_MTU2
>  
> +config ARCH_R8A7740
> +	bool "R-Mobile A1 (R8A77400)"
> +	select ARCH_RMOBILE
> +	select RENESAS_INTC_IRQPIN
> +
>  config ARCH_R8A7779
>  	bool "R-Car H1 (R8A77790)"
>  	select ARCH_RCAR_GEN1
> --- 0001/arch/arm/mach-shmobile/pm-r8a7740.c
> +++ work/arch/arm/mach-shmobile/pm-r8a7740.c	2014-08-25 12:20:19.000000000 +0900
> @@ -13,7 +13,7 @@
>  #include "common.h"
>  #include "pm-rmobile.h"
>  
> -#ifdef CONFIG_PM
> +#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
>  static int r8a7740_pd_a4s_suspend(void)
>  {
>  	/*
> @@ -58,8 +58,7 @@ void __init r8a7740_init_pm_domains(void
>  	rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains));
>  	pm_genpd_add_subdomain_names("A4S", "A3SP");
>  }
> -
> -#endif /* CONFIG_PM */
> +#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
>  
>  #ifdef CONFIG_SUSPEND
>  static int r8a7740_enter_suspend(suspend_state_t suspend_state)
> --- 0001/arch/arm/mach-shmobile/r8a7740.h
> +++ work/arch/arm/mach-shmobile/r8a7740.h	2014-08-25 12:20:19.000000000 +0900
> @@ -53,10 +53,10 @@ extern void r8a7740_clock_init(u8 md_ck)
>  extern void r8a7740_pinmux_init(void);
>  extern void r8a7740_pm_init(void);
>  
> -#ifdef CONFIG_PM
> +#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
>  extern void __init r8a7740_init_pm_domains(void);
>  #else
>  static inline void r8a7740_init_pm_domains(void) {}
> -#endif /* CONFIG_PM */
> +#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
>  
>  #endif /* __ASM_R8A7740_H__ */
> --- 0001/arch/arm/mach-shmobile/setup-r8a7740.c
> +++ work/arch/arm/mach-shmobile/setup-r8a7740.c	2014-08-25 12:21:43.000000000 +0900
> @@ -36,6 +36,7 @@
>  #include <asm/mach/map.h>
>  #include <asm/mach/arch.h>
>  #include <asm/mach/time.h>
> +#include <asm/hardware/cache-l2x0.h>
>  
>  #include "common.h"
>  #include "dma-register.h"
> @@ -813,7 +814,12 @@ void __init r8a7740_init_irq_of(void)
>  
>  static void __init r8a7740_generic_init(void)
>  {
> -	r8a7740_clock_init(0);
> +	r8a7740_meram_workaround();
> +
> +#ifdef CONFIG_CACHE_L2X0
> +	/* Shared attribute override enable, 32K*8way */
> +	l2x0_init(IOMEM(0xf0002000), 0x00400000, 0xc20f0fff);
> +#endif
>  	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>  }
>  
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman Aug. 26, 2014, 4:40 a.m. UTC | #2
On Tue, Aug 26, 2014 at 11:40:12AM +0900, Simon Horman wrote:
> On Mon, Aug 25, 2014 at 12:36:53PM +0900, Magnus Damm wrote:
> > From: Magnus Damm <damm+renesas@opensource.se>
> > 
> > Enable r8a7740 Multiplatform support for the generic r8a7740
> > machine vector. No board support is enabled, and the board
> > code for Armadillo 800 EVA DT Reference is left by itself.
> 
> I would still like some discussion of weather using
> #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
> is the best way to go.
> 
> It seems to me that it would be cleaner to add a new Kconfig symbol or two.
> 
> E.g. CONFIG_RMOBILE_PM which depends on CONFIG_PM and CONFIG_HAS_RMOBILE_PM
> and then allow SoC or board Kconfig stanzas to select CONFIG_HAS_RMOBILE_PM.

I am confused.

I see that in "[PATCH v2 05/05] ARM: shmobile: Cleanup pm-rmobile.o build
using Kconfig" you propose adding PM_RMOBILE but it isn't used in this
series.

> 
> > 
> > Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
> > ---
> > 
> >  Built on top of renesas-devel-20140823-v3.17-rc1 and
> >  "[PATCH v2 00/05] ARM: shmobile: Kconfig and Makefile cleanups V2"
> > 
> >  arch/arm/mach-shmobile/Kconfig         |    5 +++++
> >  arch/arm/mach-shmobile/pm-r8a7740.c    |    5 ++---
> >  arch/arm/mach-shmobile/r8a7740.h       |    4 ++--
> >  arch/arm/mach-shmobile/setup-r8a7740.c |    8 +++++++-
> >  4 files changed, 16 insertions(+), 6 deletions(-)
> > 
> > --- 0011/arch/arm/mach-shmobile/Kconfig
> > +++ work/arch/arm/mach-shmobile/Kconfig	2014-08-25 12:20:19.000000000 +0900
> > @@ -50,6 +50,11 @@ config ARCH_R7S72100
> >  	bool "RZ/A1H (R7S72100)"
> >  	select SYS_SUPPORTS_SH_MTU2
> >  
> > +config ARCH_R8A7740
> > +	bool "R-Mobile A1 (R8A77400)"
> > +	select ARCH_RMOBILE
> > +	select RENESAS_INTC_IRQPIN
> > +
> >  config ARCH_R8A7779
> >  	bool "R-Car H1 (R8A77790)"
> >  	select ARCH_RCAR_GEN1
> > --- 0001/arch/arm/mach-shmobile/pm-r8a7740.c
> > +++ work/arch/arm/mach-shmobile/pm-r8a7740.c	2014-08-25 12:20:19.000000000 +0900
> > @@ -13,7 +13,7 @@
> >  #include "common.h"
> >  #include "pm-rmobile.h"
> >  
> > -#ifdef CONFIG_PM
> > +#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
> >  static int r8a7740_pd_a4s_suspend(void)
> >  {
> >  	/*
> > @@ -58,8 +58,7 @@ void __init r8a7740_init_pm_domains(void
> >  	rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains));
> >  	pm_genpd_add_subdomain_names("A4S", "A3SP");
> >  }
> > -
> > -#endif /* CONFIG_PM */
> > +#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
> >  
> >  #ifdef CONFIG_SUSPEND
> >  static int r8a7740_enter_suspend(suspend_state_t suspend_state)
> > --- 0001/arch/arm/mach-shmobile/r8a7740.h
> > +++ work/arch/arm/mach-shmobile/r8a7740.h	2014-08-25 12:20:19.000000000 +0900
> > @@ -53,10 +53,10 @@ extern void r8a7740_clock_init(u8 md_ck)
> >  extern void r8a7740_pinmux_init(void);
> >  extern void r8a7740_pm_init(void);
> >  
> > -#ifdef CONFIG_PM
> > +#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
> >  extern void __init r8a7740_init_pm_domains(void);
> >  #else
> >  static inline void r8a7740_init_pm_domains(void) {}
> > -#endif /* CONFIG_PM */
> > +#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
> >  
> >  #endif /* __ASM_R8A7740_H__ */
> > --- 0001/arch/arm/mach-shmobile/setup-r8a7740.c
> > +++ work/arch/arm/mach-shmobile/setup-r8a7740.c	2014-08-25 12:21:43.000000000 +0900
> > @@ -36,6 +36,7 @@
> >  #include <asm/mach/map.h>
> >  #include <asm/mach/arch.h>
> >  #include <asm/mach/time.h>
> > +#include <asm/hardware/cache-l2x0.h>
> >  
> >  #include "common.h"
> >  #include "dma-register.h"
> > @@ -813,7 +814,12 @@ void __init r8a7740_init_irq_of(void)
> >  
> >  static void __init r8a7740_generic_init(void)
> >  {
> > -	r8a7740_clock_init(0);
> > +	r8a7740_meram_workaround();
> > +
> > +#ifdef CONFIG_CACHE_L2X0
> > +	/* Shared attribute override enable, 32K*8way */
> > +	l2x0_init(IOMEM(0xf0002000), 0x00400000, 0xc20f0fff);
> > +#endif
> >  	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> >  }
> >  
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Geert Uytterhoeven Aug. 26, 2014, 7:47 a.m. UTC | #3
On Tue, Aug 26, 2014 at 6:40 AM, Simon Horman <horms@verge.net.au> wrote:
> On Tue, Aug 26, 2014 at 11:40:12AM +0900, Simon Horman wrote:
>> On Mon, Aug 25, 2014 at 12:36:53PM +0900, Magnus Damm wrote:
>> > From: Magnus Damm <damm+renesas@opensource.se>
>> >
>> > Enable r8a7740 Multiplatform support for the generic r8a7740
>> > machine vector. No board support is enabled, and the board
>> > code for Armadillo 800 EVA DT Reference is left by itself.
>>
>> I would still like some discussion of weather using
>> #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
>> is the best way to go.
>>
>> It seems to me that it would be cleaner to add a new Kconfig symbol or two.
>>
>> E.g. CONFIG_RMOBILE_PM which depends on CONFIG_PM and CONFIG_HAS_RMOBILE_PM
>> and then allow SoC or board Kconfig stanzas to select CONFIG_HAS_RMOBILE_PM.
>
> I am confused.
>
> I see that in "[PATCH v2 05/05] ARM: shmobile: Cleanup pm-rmobile.o build
> using Kconfig" you propose adding PM_RMOBILE but it isn't used in this
> series.

PM_RMOBILE controls the build of pm-rmobile.c, while the new #ifdefs are in the
r8a7740-specific code in pm-r8a7740.c.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman Aug. 26, 2014, 8:58 a.m. UTC | #4
On Tue, Aug 26, 2014 at 09:47:37AM +0200, Geert Uytterhoeven wrote:
> On Tue, Aug 26, 2014 at 6:40 AM, Simon Horman <horms@verge.net.au> wrote:
> > On Tue, Aug 26, 2014 at 11:40:12AM +0900, Simon Horman wrote:
> >> On Mon, Aug 25, 2014 at 12:36:53PM +0900, Magnus Damm wrote:
> >> > From: Magnus Damm <damm+renesas@opensource.se>
> >> >
> >> > Enable r8a7740 Multiplatform support for the generic r8a7740
> >> > machine vector. No board support is enabled, and the board
> >> > code for Armadillo 800 EVA DT Reference is left by itself.
> >>
> >> I would still like some discussion of weather using
> >> #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
> >> is the best way to go.
> >>
> >> It seems to me that it would be cleaner to add a new Kconfig symbol or two.
> >>
> >> E.g. CONFIG_RMOBILE_PM which depends on CONFIG_PM and CONFIG_HAS_RMOBILE_PM
> >> and then allow SoC or board Kconfig stanzas to select CONFIG_HAS_RMOBILE_PM.
> >
> > I am confused.
> >
> > I see that in "[PATCH v2 05/05] ARM: shmobile: Cleanup pm-rmobile.o build
> > using Kconfig" you propose adding PM_RMOBILE but it isn't used in this
> > series.
> 
> PM_RMOBILE controls the build of pm-rmobile.c, while the new #ifdefs are
> in the r8a7740-specific code in pm-r8a7740.c.

Ok, that seems clear.

I object less to !defined(CONFIG_ARCH_MULTIPLATFORM) in pm-r8a7740.c
as it is specific to one SoC that doesn't support pm+multilpatform (yet).
But it still seems to me that it would be cleaner if either PM_RMOBILE
was re-used here or another Kconfig symbol was added.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Magnus Damm Aug. 26, 2014, 9:36 a.m. UTC | #5
Hi Simon,

On Tue, Aug 26, 2014 at 5:58 PM, Simon Horman <horms@verge.net.au> wrote:
> On Tue, Aug 26, 2014 at 09:47:37AM +0200, Geert Uytterhoeven wrote:
>> On Tue, Aug 26, 2014 at 6:40 AM, Simon Horman <horms@verge.net.au> wrote:
>> > On Tue, Aug 26, 2014 at 11:40:12AM +0900, Simon Horman wrote:
>> >> On Mon, Aug 25, 2014 at 12:36:53PM +0900, Magnus Damm wrote:
>> >> > From: Magnus Damm <damm+renesas@opensource.se>
>> >> >
>> >> > Enable r8a7740 Multiplatform support for the generic r8a7740
>> >> > machine vector. No board support is enabled, and the board
>> >> > code for Armadillo 800 EVA DT Reference is left by itself.
>> >>
>> >> I would still like some discussion of weather using
>> >> #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
>> >> is the best way to go.
>> >>
>> >> It seems to me that it would be cleaner to add a new Kconfig symbol or two.
>> >>
>> >> E.g. CONFIG_RMOBILE_PM which depends on CONFIG_PM and CONFIG_HAS_RMOBILE_PM
>> >> and then allow SoC or board Kconfig stanzas to select CONFIG_HAS_RMOBILE_PM.
>> >
>> > I am confused.
>> >
>> > I see that in "[PATCH v2 05/05] ARM: shmobile: Cleanup pm-rmobile.o build
>> > using Kconfig" you propose adding PM_RMOBILE but it isn't used in this
>> > series.
>>
>> PM_RMOBILE controls the build of pm-rmobile.c, while the new #ifdefs are
>> in the r8a7740-specific code in pm-r8a7740.c.
>
> Ok, that seems clear.
>
> I object less to !defined(CONFIG_ARCH_MULTIPLATFORM) in pm-r8a7740.c
> as it is specific to one SoC that doesn't support pm+multilpatform (yet).
> But it still seems to me that it would be cleaner if either PM_RMOBILE
> was re-used here or another Kconfig symbol was added.

While I agree about cleaning up code in general I'm not sure if just
keep on inventing new Kconfig symbols is the absolute best way
forward. =)

If someone can think about how to clean up the PM bits as a separate
topic then that would of course be greatly appreciated!

Historically the PM bits have been kind of messy in general, but now
we do have PM_RMOBILE which may improve the situation.

The question from my side is more why we would want to postpone
multiplatform any further?

Cheers,

/ magnus
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Horman Aug. 27, 2014, 12:09 a.m. UTC | #6
On Tue, Aug 26, 2014 at 06:36:50PM +0900, Magnus Damm wrote:
> Hi Simon,
> 
> On Tue, Aug 26, 2014 at 5:58 PM, Simon Horman <horms@verge.net.au> wrote:
> > On Tue, Aug 26, 2014 at 09:47:37AM +0200, Geert Uytterhoeven wrote:
> >> On Tue, Aug 26, 2014 at 6:40 AM, Simon Horman <horms@verge.net.au> wrote:
> >> > On Tue, Aug 26, 2014 at 11:40:12AM +0900, Simon Horman wrote:
> >> >> On Mon, Aug 25, 2014 at 12:36:53PM +0900, Magnus Damm wrote:
> >> >> > From: Magnus Damm <damm+renesas@opensource.se>
> >> >> >
> >> >> > Enable r8a7740 Multiplatform support for the generic r8a7740
> >> >> > machine vector. No board support is enabled, and the board
> >> >> > code for Armadillo 800 EVA DT Reference is left by itself.
> >> >>
> >> >> I would still like some discussion of weather using
> >> >> #if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
> >> >> is the best way to go.
> >> >>
> >> >> It seems to me that it would be cleaner to add a new Kconfig symbol or two.
> >> >>
> >> >> E.g. CONFIG_RMOBILE_PM which depends on CONFIG_PM and CONFIG_HAS_RMOBILE_PM
> >> >> and then allow SoC or board Kconfig stanzas to select CONFIG_HAS_RMOBILE_PM.
> >> >
> >> > I am confused.
> >> >
> >> > I see that in "[PATCH v2 05/05] ARM: shmobile: Cleanup pm-rmobile.o build
> >> > using Kconfig" you propose adding PM_RMOBILE but it isn't used in this
> >> > series.
> >>
> >> PM_RMOBILE controls the build of pm-rmobile.c, while the new #ifdefs are
> >> in the r8a7740-specific code in pm-r8a7740.c.
> >
> > Ok, that seems clear.
> >
> > I object less to !defined(CONFIG_ARCH_MULTIPLATFORM) in pm-r8a7740.c
> > as it is specific to one SoC that doesn't support pm+multilpatform (yet).
> > But it still seems to me that it would be cleaner if either PM_RMOBILE
> > was re-used here or another Kconfig symbol was added.
> 
> While I agree about cleaning up code in general I'm not sure if just
> keep on inventing new Kconfig symbols is the absolute best way
> forward. =)
> 
> If someone can think about how to clean up the PM bits as a separate
> topic then that would of course be greatly appreciated!
> 
> Historically the PM bits have been kind of messy in general, but now
> we do have PM_RMOBILE which may improve the situation.
> 
> The question from my side is more why we would want to postpone
> multiplatform any further?

After speaking with Magnus over the phone I now understand and
agree with his concern about a potential explosion of Kconfig symbols.

Accordingly I have queued up this series with the understanding that some
effort will be made to untangle the Kconfig/ifdef and other mess
surrounding PM. And in particular to examine the possibility or re-using
PM_RMOBILE in pm-r8a7740.c and other locations.
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" 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

--- 0011/arch/arm/mach-shmobile/Kconfig
+++ work/arch/arm/mach-shmobile/Kconfig	2014-08-25 12:20:19.000000000 +0900
@@ -50,6 +50,11 @@  config ARCH_R7S72100
 	bool "RZ/A1H (R7S72100)"
 	select SYS_SUPPORTS_SH_MTU2
 
+config ARCH_R8A7740
+	bool "R-Mobile A1 (R8A77400)"
+	select ARCH_RMOBILE
+	select RENESAS_INTC_IRQPIN
+
 config ARCH_R8A7779
 	bool "R-Car H1 (R8A77790)"
 	select ARCH_RCAR_GEN1
--- 0001/arch/arm/mach-shmobile/pm-r8a7740.c
+++ work/arch/arm/mach-shmobile/pm-r8a7740.c	2014-08-25 12:20:19.000000000 +0900
@@ -13,7 +13,7 @@ 
 #include "common.h"
 #include "pm-rmobile.h"
 
-#ifdef CONFIG_PM
+#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
 static int r8a7740_pd_a4s_suspend(void)
 {
 	/*
@@ -58,8 +58,7 @@  void __init r8a7740_init_pm_domains(void
 	rmobile_init_domains(r8a7740_pm_domains, ARRAY_SIZE(r8a7740_pm_domains));
 	pm_genpd_add_subdomain_names("A4S", "A3SP");
 }
-
-#endif /* CONFIG_PM */
+#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
 
 #ifdef CONFIG_SUSPEND
 static int r8a7740_enter_suspend(suspend_state_t suspend_state)
--- 0001/arch/arm/mach-shmobile/r8a7740.h
+++ work/arch/arm/mach-shmobile/r8a7740.h	2014-08-25 12:20:19.000000000 +0900
@@ -53,10 +53,10 @@  extern void r8a7740_clock_init(u8 md_ck)
 extern void r8a7740_pinmux_init(void);
 extern void r8a7740_pm_init(void);
 
-#ifdef CONFIG_PM
+#if defined(CONFIG_PM) && !defined(CONFIG_ARCH_MULTIPLATFORM)
 extern void __init r8a7740_init_pm_domains(void);
 #else
 static inline void r8a7740_init_pm_domains(void) {}
-#endif /* CONFIG_PM */
+#endif /* CONFIG_PM && !CONFIG_ARCH_MULTIPLATFORM */
 
 #endif /* __ASM_R8A7740_H__ */
--- 0001/arch/arm/mach-shmobile/setup-r8a7740.c
+++ work/arch/arm/mach-shmobile/setup-r8a7740.c	2014-08-25 12:21:43.000000000 +0900
@@ -36,6 +36,7 @@ 
 #include <asm/mach/map.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/time.h>
+#include <asm/hardware/cache-l2x0.h>
 
 #include "common.h"
 #include "dma-register.h"
@@ -813,7 +814,12 @@  void __init r8a7740_init_irq_of(void)
 
 static void __init r8a7740_generic_init(void)
 {
-	r8a7740_clock_init(0);
+	r8a7740_meram_workaround();
+
+#ifdef CONFIG_CACHE_L2X0
+	/* Shared attribute override enable, 32K*8way */
+	l2x0_init(IOMEM(0xf0002000), 0x00400000, 0xc20f0fff);
+#endif
 	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 }