OMAP4: DT update for L2 controller and local timers
Subsystems (4)
cover OMAP4: DT update for L2 controller and local timers
Couple of patches which updates the device tree support for OMAP4.
- Pl310 L2 cache controller DT support
- ARM cortex-A9 local timer DT support
Tested on OMAP4430 SDP.
Santosh Shilimkar (2):
ARM: OMAP4: Add L2 Cache Controller in Device Tree
ARM: OMAP4: Add local timer support for Device Tree
arch/arm/boot/dts/omap4.dtsi | 13 +++++++++++++ arch/arm/mach-omap2/omap4-common.c | 6 +++++- arch/arm/mach-omap2/timer.c | 11 ++++++++--- 3 files changed, 26 insertions(+), 4 deletions(-)
Signature · 1 line
1.7.9.5
PATCH 1/2 ARM: OMAP4: Add L2 Cache Controller in Device Tree
This provides PL310 Level 2 Cache Controller Device Tree support for OMAP4 based devices.
--- arch/arm/boot/dts/omap4.dtsi | 7 +++++++ arch/arm/mach-omap2/omap4-common.c | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-)
arch/arm/boot/dts/omap4.dtsi +7 -0
@@ -36,6 +36,13 @@ }; }; + L2: l2-cache-controller { + compatible = "arm,pl310-cache"; + reg = <0x48242000 0x1000>; + cache-unified; + cache-level = <2>; + }; + /* * The soc node represents the soc top level view. It is uses for IPs * that are not memory mapped in the MPU view or for the MPU itself.
arch/arm/mach-omap2/omap4-common.c +5 -1
@@ -16,6 +16,7 @@#include <linux/io.h> #include <linux/platform_device.h> #include <linux/memblock.h> +#include <linux/of.h> #include <asm/hardware/gic.h> #include <asm/hardware/cache-l2x0.h>
@@ -169,7 +170,10 @@ static int __init omap_l2_cache_init(void)/* Enable PL310 L2 Cache controller */ omap_smc1 (0x102 ,0x1 ); -l2x0_init (l2cache_base, aux_ctrl,L2X0_AUX_CTRL_MASK ); +if (of_have_populated_dt ()) +l2x0_of_init (aux_ctrl,L2X0_AUX_CTRL_MASK ); +else +l2x0_init (l2cache_base, aux_ctrl,L2X0_AUX_CTRL_MASK );/* * Override default outer_cache.disable with a OMAP4
Signature · 1 line
1.7.9.5
PATCH 2/2 ARM: OMAP4: Add local timer support for Device Tree
In reply to Santosh ShilimkarAdd cortex-a9 local timer support for all OMAP4 based SOCs using DT.
--- arch/arm/boot/dts/omap4.dtsi | 6 ++++++ arch/arm/mach-omap2/timer.c | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-)
arch/arm/boot/dts/omap4.dtsi +6 -0
@@ -43,6 +43,12 @@ cache-level = <2>; }; + local-timer { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0x48240600 0x20>; + interrupts = <1 13 0x304>; + }; + /* * The soc node represents the soc top level view. It is uses for IPs * that are not memory mapped in the MPU view or for the MPU itself.
arch/arm/mach-omap2/timer.c +8 -3
@@ -36,6 +36,7 @@#include <linux/clocksource.h> #include <linux/clockchips.h> #include <linux/slab.h> +#include <linux/of.h> #include <asm/mach/time.h> #include <plat/dmtimer.h>
@@ -384,9 +385,13 @@ static void __init omap4_timer_init(void)if (omap_rev () !=OMAP4430_REV_ES1_0 ) {int err; - err =twd_local_timer_register (&twd_local_timer); -if (err) -pr_err ("twd_local_timer_register failed %d\n" , err); +if (of_have_populated_dt ()) { +twd_local_timer_of_register (); + }else { + err =twd_local_timer_register (&twd_local_timer); +if (err) +pr_err ("twd_local_timer_register failed %d\n" , err); + } }#endif }
Signature · 1 line
1.7.9.5
Tony Lindgren
maintainerPATCH 2/2 ARM: OMAP4: Add local timer support for Device Tree
Quoted 2 lines · Santosh Shilimkar
Add cortex-a9 local timer support for all OMAP4 based SOCs using DT.
...
Quoted 17 lines
arch/arm/mach-omap2/timer.c +1
-3@@ -36,6 +36,7 @@#include <linux/clocksource.h> #include <linux/clockchips.h> #include <linux/slab.h> +#include <linux/of.h> #include <asm/mach/time.h> #include <plat/dmtimer.h> @@ -384,9 +385,13 @@ static void __init omap4_timer_init(void)if (omap_rev () !=OMAP4430_REV_ES1_0 ) {int err; - err =twd_local_timer_register (&twd_local_timer); -if (err) -pr_err ("twd_local_timer_register failed %d\n" , err);
arch/arm/mach-omap2/timer.c static void __init omap4_timer_init(void) · line 397
Quoted 10 lines
arch/arm/mach-omap2/timer.c +7
-0+if (of_have_populated_dt ()) { +twd_local_timer_of_register (); + }else { + err =twd_local_timer_register (&twd_local_timer); +if (err) +pr_err ("twd_local_timer_register failed %d\n" , err); + } }#endif }
How about just return after twd_local_timer_of_register() instead? That avoids nesting the code further.
Tony
PATCH 2/2 ARM: OMAP4: Add local timer support for Device Tree
Quoted 19 lines · Tony Lindgren
Quoted 2 lines · Santosh Shilimkar
Add cortex-a9 local timer support for all OMAP4 based SOCs using DT.
...
Quoted 14 lines
arch/arm/mach-omap2/timer.c +1
-0@@ -36,6 +36,7 @@#include <linux/clocksource.h> #include <linux/clockchips.h> #include <linux/slab.h> +#include <linux/of.h> #include <asm/mach/time.h> #include <plat/dmtimer.h> @@ -384,9 +385,13 @@ static void __init omap4_timer_init(void)if (omap_rev () !=OMAP4430_REV_ES1_0 ) {int err;
Quoted 17 lines
arch/arm/mach-omap2/timer.c static void __init omap4_timer_init(void) · line 397
Quoted 13 lines
arch/arm/mach-omap2/timer.c +7
-3- err =twd_local_timer_register (&twd_local_timer); -if (err) - pr_err("twd_local_timer_register failed %d\n", err); +if (of_have_populated_dt ()) { +twd_local_timer_of_register (); + }else { + err =twd_local_timer_register (&twd_local_timer); +if (err) +pr_err ("twd_local_timer_register failed %d\n" , err); + } }#endif }How about just return after
twd_local_timer_of_register()instead? That avoids nesting the code further.
Yep. Make sense. Will consider that in next version.
Regards
Santosh