ARM: OMAP2+: Misc cleanup
Subsystems (4)
cover ARM: OMAP2+: Misc cleanup
This series has some miscellianeous clean up patches which help to add future OMAP2+ device support with bit less changes. It is a preparatory series for adding minimal OMAP5 support.
Boot tested on below platforms:
- OMAP2430 SDP
- OMAP3430 SDP
- OMAP4430 SDP
Thanks for Tony and Benoit for these suggestions.
The following changes since commit 69964ea4c7b68c9399f7977aa5b9aa6539a6a98a:
Linux 3.4-rc5 (2012-04-29 15:19:10 -0700)
are available in the git repository at:
git://gitorious.org/omap-sw-develoment/linux-omap-dev.git for_3.5/omap_misc_cleanup
R Sricharan (1):
ARM: OMAP4+: Add prm and cm base init function.
Santosh Shilimkar (6):
ARM: OMAP4: Don't compile cm2xxx_3xxx.c for OMAP4 only builds.
ARM: OMAP2+: Clean up wrapping multiple objects in Makefile
ARM: OMAP4: Remove un-used WakeupGen register defines.
ARM: OMAP: dma: Make use of cpu_class_is_omap2() to avoid future
patching.
ARM: All OMAP2PLUS machines use omap2 directory so just add one entry
ARM: OMAP4: Reduce the static IO mapping
arch/arm/Makefile | 4 +- arch/arm/mach-omap2/Makefile | 163 ++++++++++----------- arch/arm/mach-omap2/cminst44xx.c | 28 +++-- arch/arm/mach-omap2/common.c | 1 + arch/arm/mach-omap2/common.h | 1 + arch/arm/mach-omap2/dma.c | 2 +- arch/arm/mach-omap2/include/mach/omap-wakeupgen.h | 8 - arch/arm/mach-omap2/io.c | 30 ---- arch/arm/mach-omap2/iomap.h | 28 ---- arch/arm/mach-omap2/prcm-common.h | 13 ++ arch/arm/mach-omap2/prcm.c | 8 + arch/arm/mach-omap2/prminst44xx.c | 27 ++-- arch/arm/plat-omap/dma.c | 4 +- 13 files changed, 139 insertions(+), 178 deletions(-)
Signature · 1 line
1.7.5.4
PATCH 1/7 ARM: OMAP4: Don't compile cm2xxx_3xxx.c for OMAP4 only builds.
Since OMAP4 code base now makes use of OMAP4 specific PRCM functions, cm2xxx_3xxx.c need not be compiled for OMAP4 only builds.
--- arch/arm/mach-omap2/Makefile | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-)
arch/arm/mach-omap2/Makefile +1 -4
@@ -86,10 +86,7 @@ obj-y += prm_common.o obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o \ vc3xxx_data.o vp3xxx_data.o -# XXX The presence of cm2xxx_3xxx.o on the line below is temporary and -# will be removed once the OMAP4 part of the codebase is converted to -# use OMAP4-specific PRCM functions. -obj-$(CONFIG_ARCH_OMAP4) += prcm.o cm2xxx_3xxx.o cminst44xx.o \ +obj-$(CONFIG_ARCH_OMAP4) += prcm.o cminst44xx.o \ cm44xx.o prcm_mpu44xx.o \ prminst44xx.o vc44xx_data.o \ vp44xx_data.o prm44xx.o
Signature · 1 line
1.7.5.4
Paul Walmsley
maintainerPATCH 1/7 ARM: OMAP4: Don't compile cm2xxx_3xxx.c for OMAP4 only builds.
Quoted 5 lines · Santosh Shilimkar
Since OMAP4 code base now makes use of OMAP4 specific PRCM functions,
cm2xxx_3xxx.cneed not be compiled for OMAP4 only builds.Signed-off-by Santosh Shilimkar <[email protected]>Cc Paul Walmsley <[email protected]>
Will remove the stub functions in a separate patch.
- Paul
PATCH 1/7 ARM: OMAP4: Don't compile cm2xxx_3xxx.c for OMAP4 only builds.
Quoted 5 lines · Paul Walmsley
Quoted 3 lines · Santosh Shilimkar
Since OMAP4 code base now makes use of OMAP4 specific PRCM functions,
cm2xxx_3xxx.cneed not be compiled for OMAP4 only builds.
Quoted 7 lines
Quoted 2 lines
Signed-off-by Santosh Shilimkar <[email protected]>Cc Paul Walmsley <[email protected]>Acked-by Paul Walmsley <[email protected]>Will remove the stub functions in a separate patch.
ok
PATCH 2/7 ARM: OMAP2+: Clean up wrapping multiple objects in Makefile
In reply to Santosh Shilimkar--- arch/arm/mach-omap2/Makefile | 160 ++++++++++++++++++++--------------------- 1 files changed, 78 insertions(+), 82 deletions(-)
arch/arm/mach-omap2/Makefile +78 -82
@@ -24,10 +24,11 @@ endif obj-$(CONFIG_TWL4030_CORE) += omap_twl.o # SMP support ONLY available for OMAP4 + obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o -obj-$(CONFIG_ARCH_OMAP4) += omap4-common.o omap-wakeupgen.o \ - sleep44xx.o +obj-$(CONFIG_ARCH_OMAP4) += omap4-common.o omap-wakeupgen.o +obj-$(CONFIG_ARCH_OMAP4) += sleep44xx.o plus_sec := $(call as-instr,.arch_extension sec,+sec) AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec)
@@ -64,10 +65,10 @@ endif ifeq ($(CONFIG_PM),y) obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o -obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o \ - cpuidle34xx.o -obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o \ - cpuidle44xx.o +obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o +obj-$(CONFIG_ARCH_OMAP3) += cpuidle34xx.o +obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o +obj-$(CONFIG_ARCH_OMAP4) += cpuidle44xx.o obj-$(CONFIG_PM_DEBUG) += pm-debug.o obj-$(CONFIG_OMAP_SMARTREFLEX) += sr_device.o smartreflex.o obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3) += smartreflex-class3.o
@@ -84,85 +85,84 @@ endif # PRCM obj-y += prm_common.o obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o -obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o \ - vc3xxx_data.o vp3xxx_data.o -obj-$(CONFIG_ARCH_OMAP4) += prcm.o cminst44xx.o \ - cm44xx.o prcm_mpu44xx.o \ - prminst44xx.o vc44xx_data.o \ - vp44xx_data.o prm44xx.o +obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o +obj-$(CONFIG_ARCH_OMAP3) += vc3xxx_data.o vp3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += prcm.o cminst44xx.o cm44xx.o +obj-$(CONFIG_ARCH_OMAP4) += prcm_mpu44xx.o prminst44xx.o +obj-$(CONFIG_ARCH_OMAP4) += vc44xx_data.o vp44xx_data.o prm44xx.o # OMAP voltage domains voltagedomain-common := voltage.o vc.o vp.o -obj-$(CONFIG_ARCH_OMAP2) += $(voltagedomain-common) \ - voltagedomains2xxx_data.o -obj-$(CONFIG_ARCH_OMAP3) += $(voltagedomain-common) \ - voltagedomains3xxx_data.o -obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common) \ - voltagedomains44xx_data.o +obj-$(CONFIG_ARCH_OMAP2) += $(voltagedomain-common) +obj-$(CONFIG_ARCH_OMAP2) += voltagedomains2xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += $(voltagedomain-common) +obj-$(CONFIG_ARCH_OMAP3) += voltagedomains3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common) +obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o # OMAP powerdomain framework powerdomain-common += powerdomain.o powerdomain-common.o -obj-$(CONFIG_ARCH_OMAP2) += $(powerdomain-common) \ - powerdomain2xxx_3xxx.o \ - powerdomains2xxx_data.o \ - powerdomains2xxx_3xxx_data.o -obj-$(CONFIG_ARCH_OMAP3) += $(powerdomain-common) \ - powerdomain2xxx_3xxx.o \ - powerdomains3xxx_data.o \ - powerdomains2xxx_3xxx_data.o -obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) \ - powerdomain44xx.o \ - powerdomains44xx_data.o +obj-$(CONFIG_ARCH_OMAP2) += $(powerdomain-common) +obj-$(CONFIG_ARCH_OMAP2) += powerdomains2xxx_data.o +obj-$(CONFIG_ARCH_OMAP2) += powerdomain2xxx_3xxx.o +obj-$(CONFIG_ARCH_OMAP2) += powerdomains2xxx_3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += $(powerdomain-common) +obj-$(CONFIG_ARCH_OMAP3) += powerdomain2xxx_3xxx.o +obj-$(CONFIG_ARCH_OMAP3) += powerdomains3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += powerdomains2xxx_3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) +obj-$(CONFIG_ARCH_OMAP4) += powerdomain44xx.o +obj-$(CONFIG_ARCH_OMAP4) += powerdomains44xx_data.o # PRCM clockdomain control -obj-$(CONFIG_ARCH_OMAP2) += clockdomain.o \ - clockdomain2xxx_3xxx.o \ - clockdomains2xxx_3xxx_data.o +obj-$(CONFIG_ARCH_OMAP2) += clockdomain.o +obj-$(CONFIG_ARCH_OMAP2) += clockdomain2xxx_3xxx.o +obj-$(CONFIG_ARCH_OMAP2) += clockdomains2xxx_3xxx_data.o obj-$(CONFIG_SOC_OMAP2420) += clockdomains2420_data.o obj-$(CONFIG_SOC_OMAP2430) += clockdomains2430_data.o -obj-$(CONFIG_ARCH_OMAP3) += clockdomain.o \ - clockdomain2xxx_3xxx.o \ - clockdomains2xxx_3xxx_data.o \ - clockdomains3xxx_data.o -obj-$(CONFIG_ARCH_OMAP4) += clockdomain.o \ - clockdomain44xx.o \ - clockdomains44xx_data.o +obj-$(CONFIG_ARCH_OMAP3) += clockdomain.o +obj-$(CONFIG_ARCH_OMAP3) += clockdomain2xxx_3xxx.o +obj-$(CONFIG_ARCH_OMAP3) += clockdomains2xxx_3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += clockdomains3xxx_data.o +obj-$(CONFIG_ARCH_OMAP4) += clockdomain.o +obj-$(CONFIG_ARCH_OMAP4) += clockdomain44xx.o +obj-$(CONFIG_ARCH_OMAP4) += clockdomains44xx_data.o # Clock framework -obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o \ - clkt2xxx_sys.o \ - clkt2xxx_dpllcore.o \ - clkt2xxx_virt_prcm_set.o \ - clkt2xxx_apll.o clkt2xxx_osc.o \ - clkt2xxx_dpll.o clkt_iclk.o +obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_sys.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_dpllcore.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_virt_prcm_set.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_apll.o clkt2xxx_osc.o +obj-$(CONFIG_ARCH_OMAP2) += clkt2xxx_dpll.o clkt_iclk.o obj-$(CONFIG_SOC_OMAP2420) += clock2420_data.o obj-$(CONFIG_SOC_OMAP2430) += clock2430.o clock2430_data.o -obj-$(CONFIG_ARCH_OMAP3) += $(clock-common) clock3xxx.o \ - clock34xx.o clkt34xx_dpll3m2.o \ - clock3517.o clock36xx.o \ - dpll3xxx.o clock3xxx_data.o \ - clkt_iclk.o -obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) clock44xx_data.o \ - dpll3xxx.o dpll44xx.o +obj-$(CONFIG_ARCH_OMAP3) += $(clock-common) clock3xxx.o +obj-$(CONFIG_ARCH_OMAP3) += clock34xx.o clkt34xx_dpll3m2.o +obj-$(CONFIG_ARCH_OMAP3) += clock3517.o clock36xx.o +obj-$(CONFIG_ARCH_OMAP3) += dpll3xxx.o clock3xxx_data.o +obj-$(CONFIG_ARCH_OMAP3) += clkt_iclk.o +obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) clock44xx_data.o +obj-$(CONFIG_ARCH_OMAP4) += dpll3xxx.o dpll44xx.o # OMAP2 clock rate set data (old "OPP" data) obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o obj-$(CONFIG_SOC_OMAP2430) += opp2430_data.o # hwmod data -obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_ipblock_data.o \ - omap_hwmod_2xxx_3xxx_ipblock_data.o \ - omap_hwmod_2xxx_interconnect_data.o \ - omap_hwmod_2xxx_3xxx_interconnect_data.o \ - omap_hwmod_2420_data.o -obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_ipblock_data.o \ - omap_hwmod_2xxx_3xxx_ipblock_data.o \ - omap_hwmod_2xxx_interconnect_data.o \ - omap_hwmod_2xxx_3xxx_interconnect_data.o \ - omap_hwmod_2430_data.o -obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_2xxx_3xxx_ipblock_data.o \ - omap_hwmod_2xxx_3xxx_interconnect_data.o \ - omap_hwmod_3xxx_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_3xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2xxx_3xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2420) += omap_hwmod_2420_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_3xxx_ipblock_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2xxx_3xxx_interconnect_data.o +obj-$(CONFIG_SOC_OMAP2430) += omap_hwmod_2430_data.o +obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_2xxx_3xxx_ipblock_data.o +obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_2xxx_3xxx_interconnect_data.o +obj-$(CONFIG_ARCH_OMAP3) += omap_hwmod_3xxx_data.o obj-$(CONFIG_ARCH_OMAP4) += omap_hwmod_44xx_data.o # EMU peripherals
@@ -200,23 +200,19 @@ obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o -obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o \ - sdram-nokia.o -obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ - sdram-nokia.o \ - board-rx51-peripherals.o \ - board-rx51-video.o -obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o \ - board-zoom-peripherals.o \ - board-zoom-display.o \ - board-zoom-debugboard.o -obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o \ - board-zoom-peripherals.o \ - board-zoom-display.o \ - board-zoom-debugboard.o -obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ - board-zoom-peripherals.o \ - board-zoom-display.o +obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o sdram-nokia.o +obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o sdram-nokia.o +obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-peripherals.o +obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-video.o +obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o board-zoom-peripherals.o +obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom-display.o +obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom-debugboard.o +obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o board-zoom-peripherals.o +obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom-display.o +obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom-debugboard.o +obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o +obj-$(CONFIG_MACH_OMAP_3630SDP) += board-zoom-peripherals.o +obj-$(CONFIG_MACH_OMAP_3630SDP) += board-zoom-display.o obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o obj-$(CONFIG_MACH_CM_T3517) += board-cm-t3517.o obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o
Signature · 1 line
1.7.5.4
PATCH 2/7 ARM: OMAP2+: Clean up wrapping multiple objects in Makefile
Quoted 10 lines · Santosh Shilimkar
Signed-off-by Santosh Shilimkar <[email protected]>--- arch/arm/mach-omap2/Makefile | 160 ++++++++++++++++++++--------------------- 1 files changed, 78 insertions(+), 82 deletions(-)arch/arm/mach-omap2/Makefile +0
-0
arch/arm/mach-omap2/Makefile endif · line 31
Quoted 10 lines
arch/arm/mach-omap2/Makefile +3
-2@@ -24,10 +24,11 @@ endif obj-$(CONFIG_TWL4030_CORE) += omap_twl.o # SMP support ONLY available for OMAP4 + obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o -obj-$(CONFIG_ARCH_OMAP4) += omap4-common.o omap-wakeupgen.o \ - sleep44xx.o +obj-$(CONFIG_ARCH_OMAP4) += omap4-common.o omap-wakeupgen.o +obj-$(CONFIG_ARCH_OMAP4) += sleep44xx.o
Using \ in makefiles really isn't a problem. I don't think this is something which we need to do, and it just creates additional changes where none is required.
PATCH 2/7 ARM: OMAP2+: Clean up wrapping multiple objects in Makefile
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Santosh Shilimkar
Signed-off-by Santosh Shilimkar <[email protected]>---
?arch/arm/mach-omap2/Makefile | ?160 ++++++++++++++++++++--------------------- ?1 files changed, 78 insertions(+), 82 deletions(-)arch/arm/mach-omap2/Makefile +0
-0@@ -24,10 +24,11 @@ endif?obj-$(CONFIG_TWL4030_CORE) += omap_twl.o
Quoted 12 lines
arch/arm/mach-omap2/Makefile
Quoted 8 lines
?# SMP support ONLY available for OMAP4
+
?obj-$(CONFIG_SMP) ? ? ? ? ? ? ? ? ? ?+= omap-smp.o omap-headsmp.o ?obj-$(CONFIG_HOTPLUG_CPU) ? ? ? ? ? ?+= omap-hotplug.oarch/arm/mach-omap2/Makefile +2
-2-obj-$(CONFIG_ARCH_OMAP4) ? ? ? ? ? ? += omap4-common.o omap-wakeupgen.o \ - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sleep44xx.o +obj-$(CONFIG_ARCH_OMAP4) ? ? ? ? ? ? += omap4-common.o omap-wakeupgen.o +obj-$(CONFIG_ARCH_OMAP4) ? ? ? ? ? ? += sleep44xx.oUsing \ in makefiles really isn't a problem. ?I don't think this is something which we need to do, and it just creates additional changes where none is required.
Tony might give better reasoning for this change since he suggested it.
Regards
Santosh
Tony Lindgren
maintainerPATCH 2/7 ARM: OMAP2+: Clean up wrapping multiple objects in Makefile
Quoted 28 lines · Shilimkar, Santosh
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Santosh Shilimkar
Signed-off-by Santosh Shilimkar <[email protected]>---
?arch/arm/mach-omap2/Makefile | ?160 ++++++++++++++++++++--------------------- ?1 files changed, 78 insertions(+), 82 deletions(-)arch/arm/mach-omap2/Makefile +0
-0@@ -24,10 +24,11 @@ endif?obj-$(CONFIG_TWL4030_CORE) += omap_twl.o
Quoted 12 lines
arch/arm/mach-omap2/Makefile
Quoted 8 lines
?# SMP support ONLY available for OMAP4
+
?obj-$(CONFIG_SMP) ? ? ? ? ? ? ? ? ? ?+= omap-smp.o omap-headsmp.o ?obj-$(CONFIG_HOTPLUG_CPU) ? ? ? ? ? ?+= omap-hotplug.oarch/arm/mach-omap2/Makefile +2
-2-obj-$(CONFIG_ARCH_OMAP4) ? ? ? ? ? ? += omap4-common.o omap-wakeupgen.o \ - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sleep44xx.o +obj-$(CONFIG_ARCH_OMAP4) ? ? ? ? ? ? += omap4-common.o omap-wakeupgen.o +obj-$(CONFIG_ARCH_OMAP4) ? ? ? ? ? ? += sleep44xx.oUsing \ in makefiles really isn't a problem. ?I don't think this is something which we need to do, and it just creates additional changes where none is required.
Quoted 1 line
Tony might give better reasoning for this change since he suggested it.
Mostly for making it cleaner to build shared objects between omap4 and omap5 without adding things like:
+obj-$(CONFIG_ARCH_OMAP5) += omap4-common.o omap-wakeupgen.o \
+ sleep44xx.o
But of course more localized changes will do there too to prepare adding omap5.
Regards,
Tony
PATCH 3/7 ARM: OMAP4: Remove un-used WakeupGen register defines.
In reply to Santosh ShilimkarCurrent OMAP code doesn't use any of the OMAP_WKG_ENB_SECURE_* registers.
So remove those defines.
--- arch/arm/mach-omap2/include/mach/omap-wakeupgen.h | 8 -------- 1 files changed, 0 insertions(+), 8 deletions(-)
arch/arm/mach-omap2/include/mach/omap-wakeupgen.h +0 -8
@@ -16,18 +16,10 @@#define OMAP_WKG_ENB_B_0 0x14#define OMAP_WKG_ENB_C_0 0x18#define OMAP_WKG_ENB_D_0 0x1c -#define OMAP_WKG_ENB_SECURE_A_0 0x20 -#define OMAP_WKG_ENB_SECURE_B_0 0x24 -#define OMAP_WKG_ENB_SECURE_C_0 0x28 -#define OMAP_WKG_ENB_SECURE_D_0 0x2c#define OMAP_WKG_ENB_A_1 0x410#define OMAP_WKG_ENB_B_1 0x414#define OMAP_WKG_ENB_C_1 0x418#define OMAP_WKG_ENB_D_1 0x41c -#define OMAP_WKG_ENB_SECURE_A_1 0x420 -#define OMAP_WKG_ENB_SECURE_B_1 0x424 -#define OMAP_WKG_ENB_SECURE_C_1 0x428 -#define OMAP_WKG_ENB_SECURE_D_1 0x42c#define OMAP_AUX_CORE_BOOT_0 0x800#define OMAP_AUX_CORE_BOOT_1 0x804#define OMAP_PTMSYNCREQ_MASK 0xc00
Signature · 1 line
1.7.5.4
PATCH 4/7 ARM: OMAP: dma: Make use of cpu_class_is_omap2() to avoid future patching.
In reply to Santosh Shilimkarcpu_class_is_omap2() contains all OMAP2+ devices. So update the DMA code cpu checks accordingly so that there is no need to patch
the file for any future OMAP2+ devices.
In long run, all these attributes should come from hwmod dev_attr based on DMA IP version.
--- arch/arm/mach-omap2/dma.c | 2 +- arch/arm/plat-omap/dma.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/dma.c +1 -1
@@ -227,7 +227,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) dma_stride =OMAP2_DMA_STRIDE ; dma_common_ch_start =CSDP ; -if (cpu_is_omap3630 () ||cpu_is_omap44xx ()) +if (omap_rev () >=OMAP3630_REV_ES1_0 ) dma_common_ch_end =CCDN ;else dma_common_ch_end =CCFN ;
arch/arm/plat-omap/dma.c +2 -2
@@ -843,7 +843,7 @@ omap_dma_set_prio_lch(int lch, unsigned char read_prio, } l = p->dma_read (CCR , lch); l &= ~((1 <<6 ) | (1 <<26 )); -if (cpu_is_omap2430 () ||cpu_is_omap34xx () ||cpu_is_omap44xx ()) +if (cpu_class_is_omap2 () && !cpu_is_omap242x ()) l |= ((read_prio &0x1 ) <<6 ) | ((write_prio &0x1 ) <<26 );else l |= ((read_prio &0x1 ) <<6 );
@@ -2057,7 +2057,7 @@ static int __devinit omap_system_dma_probe(struct platform_device *pdev) } } -if (cpu_is_omap2430 () ||cpu_is_omap34xx () ||cpu_is_omap44xx ()) +if (cpu_class_is_omap2 () && !cpu_is_omap242x ())omap_dma_set_global_params (DMA_DEFAULT_ARB_RATE ,DMA_DEFAULT_FIFO_DEPTH ,0 );
Signature · 1 line
1.7.5.4
PATCH 4/7 ARM: OMAP: dma: Make use of cpu_class_is_omap2() to avoid future patching.
Quoted 18 lines · Santosh Shilimkar
cpu_class_is_omap2()contains all OMAP2+ devices. So update the DMA code cpu checks accordingly so that there is no need to patch
the file for any future OMAP2+ devices.In long run, all these attributes should come from hwmod
dev_attrbased on DMA IP version.Signed-off-by Santosh Shilimkar <[email protected]>--- arch/arm/mach-omap2/dma.c | 2 +- arch/arm/plat-omap/dma.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)arch/arm/mach-omap2/dma.c +0
-0
arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) · line 230
Quoted 5 lines
arch/arm/mach-omap2/dma.c +1
-1@@ -227,7 +227,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) dma_stride =OMAP2_DMA_STRIDE ; dma_common_ch_start =CSDP ; -if (cpu_is_omap3630 () ||cpu_is_omap44xx ()) +if (omap_rev () >=OMAP3630_REV_ES1_0 )
It's not obvious (at least to me) that this is equivalent.
For example, this will now be true on the TI81xx devices.
Kevin
PATCH 4/7 ARM: OMAP: dma: Make use of cpu_class_is_omap2() to avoid future patching.
Quoted 21 lines · Kevin Hilman
Quoted 19 lines · Santosh Shilimkar
cpu_class_is_omap2()contains all OMAP2+ devices. So update the DMA code cpu checks accordingly so that there is no need to patch
the file for any future OMAP2+ devices.In long run, all these attributes should come from hwmod
dev_attrbased on DMA IP version.Signed-off-by Santosh Shilimkar <[email protected]>---
?arch/arm/mach-omap2/dma.c | ? ?2 +-
?arch/arm/plat-omap/dma.c ?| ? ?4 ++--
?2 files changed, 3 insertions(+), 3 deletions(-)arch/arm/mach-omap2/dma.c +0
-0@@ -227,7 +227,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)
Quoted 9 lines
arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) · line 230
Quoted 4 lines
arch/arm/mach-omap2/dma.c +1
-1? ? ? dma_stride ? ? ? ? ? ? ?= OMAP2_DMA_STRIDE; ? ? ? dma_common_ch_start ? ? = CSDP; - ? ? if (cpu_is_omap3630() || cpu_is_omap44xx()) + ? ? if (omap_rev() >= OMAP3630_REV_ES1_0)It's not obvious (at least to me) that this is equivalent.
For example, this will now be true on the TI81xx devices.
I see your point.
On second thought, i decided to drop this hunk from the patch since the availability of the dma descriptor feature can be read from dma capability register. Will post another patch for it and also add it to the clean-up series.
Updated $subject patch in the end of email.
Regards
Santosh
Quoted 1 line
From
e42966bc56b1603e033b5b259564ae149b11a5d9Mon Sep 17 00:00:00 2001
From: Santosh Shilimkar <[email protected]>
Date: Sat, 28 Apr 2012 20:19:10 +0530
Subject: [PATCH 4/7] ARM: OMAP: dma: Make use of cpu_class_is_omap2() to
avoid future patching.
cpu_class_is_omap2() contains all OMAP2+ devices. So update the DMA code cpu checks accordingly so that there is no need to patch
the file for any future OMAP2+ devices.
In long run, all these attributes should come from hwmod dev_attr based on DMA IP version.
---
Dropped the hunk for descriptor feature check based on OMAP cpu version since it can be handled with DMA hardware capability register read.
arch/arm/plat-omap/dma.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-omap/dma.c +1 -1
@@ -843,7 +843,7 @@ omap_dma_set_prio_lch(int lch, unsigned char read_prio, } l = p->dma_read (CCR , lch); l &= ~((1 <<6 ) | (1 <<26 )); -if (cpu_is_omap2430 () ||cpu_is_omap34xx () ||cpu_is_omap44xx ()) +if (cpu_class_is_omap2 () && !cpu_is_omap242x ()) l |= ((read_prio &0x1 ) <<6 ) | ((write_prio &0x1 ) <<26 );else l |= ((read_prio &0x1 ) <<6 );
@@ -2057,7 +2057,7 @@ static int __devinit
omap_system_dma_probe(struct platform_device *pdev)
}
}
- if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx())
+ if (cpu_class_is_omap2() && !cpu_is_omap242x())
omap_dma_set_global_params(DMA_DEFAULT_ARB_RATE,
DMA_DEFAULT_FIFO_DEPTH, 0);
Signature · 1 line
1.7.5.4
PATCH 4/7 ARM: OMAP: dma: Make use of cpu_class_is_omap2() to avoid future patching.
Quoted 52 lines · Santosh
Quoted 21 lines · Kevin Hilman
Quoted 19 lines · Santosh Shilimkar
cpu_class_is_omap2()contains all OMAP2+ devices. So update the DMA code cpu checks accordingly so that there is no need to patch
the file for any future OMAP2+ devices.In long run, all these attributes should come from hwmod
dev_attrbased on DMA IP version.Signed-off-by Santosh Shilimkar <[email protected]>---
?arch/arm/mach-omap2/dma.c | ? ?2 +-
?arch/arm/plat-omap/dma.c ?| ? ?4 ++--
?2 files changed, 3 insertions(+), 3 deletions(-)arch/arm/mach-omap2/dma.c +0
-0@@ -227,7 +227,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)Quoted 9 lines
arch/arm/mach-omap2/dma.c static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) · line 230
Quoted 4 lines
arch/arm/mach-omap2/dma.c +1
-1? ? ? dma_stride ? ? ? ? ? ? ?= OMAP2_DMA_STRIDE; ? ? ? dma_common_ch_start ? ? = CSDP; - ? ? if (cpu_is_omap3630() || cpu_is_omap44xx()) + ? ? if (omap_rev() >= OMAP3630_REV_ES1_0)It's not obvious (at least to me) that this is equivalent.
For example, this will now be true on the TI81xx devices.
I see your point.
On second thought, i decided to drop this hunk from the patch since the availability of the dma descriptor feature can be read from dma capability register. Will post another patch for it and also add it to the clean-up series.Updated $subject patch in the end of email.
Regards
SantoshFrom
e42966bc56b1603e033b5b259564ae149b11a5d9Mon Sep 17 00:00:00 2001
From: Santosh Shilimkar <[email protected]>
Date: Sat, 28 Apr 2012 20:19:10 +0530
Subject: [PATCH 4/7] ARM: OMAP: dma: Make use ofcpu_class_is_omap2()to
avoid future patching.
cpu_class_is_omap2()contains all OMAP2+ devices. So update the DMA code cpu checks accordingly so that there is no need to patch
the file for any future OMAP2+ devices.
Quoted 8 lines
In long run, all these attributes should come from hwmod
dev_attrbased on DMA IP version.Signed-off-by Santosh Shilimkar <[email protected]>---
Dropped the hunk for descriptor feature check based on OMAP cpu version since it can be handled with DMA hardware capability register read.
Right, this looks better.
Thanks,
Kevin
PATCH 5/7 ARM: All OMAP2PLUS machines use omap2 directory so just add one entry
In reply to Santosh ShilimkarAll OMAP2PLUS arch based machines makes use of mach-omap2 directory. So just add one entry so that there is no need to patch this file for any OMAP2+ devices.
--- arch/arm/Makefile | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
arch/arm/Makefile +1 -3
@@ -164,9 +164,7 @@ machine-$(CONFIG_ARCH_MXS) := mxs machine-$(CONFIG_ARCH_NETX) := netx machine-$(CONFIG_ARCH_NOMADIK) := nomadik machine-$(CONFIG_ARCH_OMAP1) := omap1 -machine-$(CONFIG_ARCH_OMAP2) := omap2 -machine-$(CONFIG_ARCH_OMAP3) := omap2 -machine-$(CONFIG_ARCH_OMAP4) := omap2 +machine-$(CONFIG_ARCH_OMAP2PLUS) := omap2 machine-$(CONFIG_ARCH_ORION5X) := orion5x machine-$(CONFIG_ARCH_PICOXCELL) := picoxcell machine-$(CONFIG_ARCH_PNX4008) := pnx4008
Signature · 1 line
1.7.5.4
PATCH 6/7 ARM: OMAP4: Reduce the static IO mapping
In reply to Santosh ShilimkarEMIF, GMPC and DMM driver can ioremap() the address space as part of driver intialisation and there is no need to have static IO mapping for them.
Hence remove the un-used static IP space and let the respective drivers manage it as part if driver init.
--- arch/arm/mach-omap2/io.c | 30 ------------------------------ arch/arm/mach-omap2/iomap.h | 28 ---------------------------- 2 files changed, 0 insertions(+), 58 deletions(-)
arch/arm/mach-omap2/io.c +0 -30
@@ -215,41 +215,11 @@ static struct map_desc omap44xx_io_desc[] __initdata = { .type = MT_DEVICE, }, { - .virtual = OMAP44XX_GPMC_VIRT, - .pfn = __phys_to_pfn(OMAP44XX_GPMC_PHYS), - .length = OMAP44XX_GPMC_SIZE, - .type = MT_DEVICE, - }, - { - .virtual = OMAP44XX_EMIF1_VIRT, - .pfn = __phys_to_pfn(OMAP44XX_EMIF1_PHYS), - .length = OMAP44XX_EMIF1_SIZE, - .type = MT_DEVICE, - }, - { - .virtual = OMAP44XX_EMIF2_VIRT, - .pfn = __phys_to_pfn(OMAP44XX_EMIF2_PHYS), - .length = OMAP44XX_EMIF2_SIZE, - .type = MT_DEVICE, - }, - { - .virtual = OMAP44XX_DMM_VIRT, - .pfn = __phys_to_pfn(OMAP44XX_DMM_PHYS), - .length = OMAP44XX_DMM_SIZE, - .type = MT_DEVICE, - }, - { .virtual = L4_PER_44XX_VIRT, .pfn = __phys_to_pfn(L4_PER_44XX_PHYS), .length = L4_PER_44XX_SIZE, .type = MT_DEVICE, }, - { - .virtual = L4_EMU_44XX_VIRT, - .pfn = __phys_to_pfn(L4_EMU_44XX_PHYS), - .length = L4_EMU_44XX_SIZE, - .type = MT_DEVICE, - }, #ifdef CONFIG_OMAP4_ERRATA_I688 { .virtual = OMAP4_SRAM_VA,
arch/arm/mach-omap2/iomap.h +0 -28
@@ -37,9 +37,6 @@#define OMAP4_L3_PER_IO_OFFSET 0xb1100000#define OMAP4_L3_PER_IO_ADDRESS (pa) IOMEM((pa) + OMAP4_L3_PER_IO_OFFSET) -#define OMAP4_GPMC_IO_OFFSET 0xa9000000 -#define OMAP4_GPMC_IO_ADDRESS (pa) IOMEM((pa) + OMAP4_GPMC_IO_OFFSET) -#define OMAP2_EMU_IO_OFFSET 0xaa800000/* Emulation */ #define OMAP2_EMU_IO_ADDRESS (pa) IOMEM((pa) + OMAP2_EMU_IO_OFFSET)
@@ -170,28 +167,3 @@#define L4_ABE_44XX_VIRT (L4_ABE_44XX_PHYS + OMAP2_L4_IO_OFFSET)#define L4_ABE_44XX_SIZE SZ_1M -#define L4_EMU_44XX_PHYS L4_EMU_44XX_BASE -/* 0x54000000 --> 0xfe800000 */ -#define L4_EMU_44XX_VIRT (L4_EMU_44XX_PHYS + OMAP2_EMU_IO_OFFSET) -#define L4_EMU_44XX_SIZE SZ_8M - -#define OMAP44XX_GPMC_PHYS OMAP44XX_GPMC_BASE -/* 0x50000000 --> 0xf9000000 */ -#define OMAP44XX_GPMC_VIRT (OMAP44XX_GPMC_PHYS + OMAP4_GPMC_IO_OFFSET) -#define OMAP44XX_GPMC_SIZE SZ_1M - - -#define OMAP44XX_EMIF1_PHYS OMAP44XX_EMIF1_BASE -/* 0x4c000000 --> 0xfd100000 */ -#define OMAP44XX_EMIF1_VIRT (OMAP44XX_EMIF1_PHYS + OMAP4_L3_PER_IO_OFFSET) -#define OMAP44XX_EMIF1_SIZE SZ_1M - -#define OMAP44XX_EMIF2_PHYS OMAP44XX_EMIF2_BASE -/* 0x4d000000 --> 0xfd200000 */ -#define OMAP44XX_EMIF2_SIZE SZ_1M -#define OMAP44XX_EMIF2_VIRT (OMAP44XX_EMIF1_VIRT + OMAP44XX_EMIF1_SIZE) - -#define OMAP44XX_DMM_PHYS OMAP44XX_DMM_BASE -/* 0x4e000000 --> 0xfd300000 */ -#define OMAP44XX_DMM_SIZE SZ_1M -#define OMAP44XX_DMM_VIRT (OMAP44XX_EMIF2_VIRT + OMAP44XX_EMIF2_SIZE)
Signature · 1 line
1.7.5.4
PATCH 7/7 ARM: OMAP4+: Add prm and cm base init function.
In reply to Santosh ShilimkarFrom: R Sricharan <[email protected]>
Instead of statically defining seperate arrays for every OMAP4+ archs, have a generic init function to populate the arrays. This avoids the need for creating new array for every arch added in the future that reuses the prm and cm registers read/write code.
--- arch/arm/mach-omap2/cminst44xx.c | 28 ++++++++++++++++++---------- arch/arm/mach-omap2/common.c | 1 + arch/arm/mach-omap2/common.h | 1 + arch/arm/mach-omap2/prcm-common.h | 13 +++++++++++++ arch/arm/mach-omap2/prcm.c | 8 ++++++++ arch/arm/mach-omap2/prminst44xx.c | 27 ++++++++++++++++----------- 6 files changed, 57 insertions(+), 21 deletions(-)
arch/arm/mach-omap2/cminst44xx.c +18 -10
@@ -32,6 +32,7 @@#include "prcm44xx.h" #include "prm44xx.h" #include "prcm_mpu44xx.h" +#include "prcm-common.h" /* * CLKCTRL_IDLEST_*: possible values for the CM_*_CLKCTRL.IDLEST bitfield:
@@ -49,14 +50,21 @@#define CLKCTRL_IDLEST_INTERFACE_IDLE 0x2#define CLKCTRL_IDLEST_DISABLED 0x3 -static u32 _cm_bases[OMAP4_MAX_PRCM_PARTITIONS ] = { - [OMAP4430_INVALID_PRCM_PARTITION ] =0 , - [OMAP4430_PRM_PARTITION ] =OMAP4430_PRM_BASE , - [OMAP4430_CM1_PARTITION ] =OMAP4430_CM1_BASE , - [OMAP4430_CM2_PARTITION ] =OMAP4430_CM2_BASE , - [OMAP4430_SCRM_PARTITION ] =0 , - [OMAP4430_PRCM_MPU_PARTITION ] =OMAP4430_PRCM_MPU_BASE , -}; +static void __iomem *_cm_bases[OMAP4_MAX_PRCM_PARTITIONS ]; + +/** +* omap_cm_base_init - Populates the cm partitions +* +* Populates the base addresses of the _cm_bases +* array used for read/write of cm module registers. +*/ +void omap_cm_base_init (void ) +{ + _cm_bases[OMAP4430_PRM_PARTITION ] = prm_base; + _cm_bases[OMAP4430_CM1_PARTITION ] = cm_base; + _cm_bases[OMAP4430_CM2_PARTITION ] = cm2_base; + _cm_bases[OMAP4430_PRCM_MPU_PARTITION ] = prcm_mpu_base; +}/* Private functions */
@@ -106,7 +114,7 @@ u32 omap4_cminst_read_inst_reg(u8 part, s16 inst, u16 idx)BUG_ON (part >=OMAP4_MAX_PRCM_PARTITIONS || part ==OMAP4430_INVALID_PRCM_PARTITION || !_cm_bases[part]); -return __raw_readl (OMAP2_L4_IO_ADDRESS (_cm_bases[part] + inst + idx)); +return __raw_readl (_cm_bases[part] + inst + idx); }/* Write into a register in a CM instance */
@@ -115,7 +123,7 @@ void omap4_cminst_write_inst_reg(u32 val, u8 part, s16 inst, u16 idx)BUG_ON (part >=OMAP4_MAX_PRCM_PARTITIONS || part ==OMAP4430_INVALID_PRCM_PARTITION || !_cm_bases[part]); -__raw_writel (val,OMAP2_L4_IO_ADDRESS (_cm_bases[part] + inst + idx)); +__raw_writel (val, _cm_bases[part] + inst + idx); }/* Read-modify-write a register in CM1. Caller must lock */
arch/arm/mach-omap2/common.c +1 -0
@@ -166,6 +166,7 @@ static struct omap_globals omap4_globals = { .prm = OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE), .cm = OMAP2_L4_IO_ADDRESS(OMAP4430_CM_BASE), .cm2 = OMAP2_L4_IO_ADDRESS(OMAP4430_CM2_BASE), + .prcm_mpu = OMAP2_L4_IO_ADDRESS(OMAP4430_PRCM_MPU_BASE), };void __init omap2_set_globals_443x (void )
arch/arm/mach-omap2/common.h +1 -0
@@ -111,6 +111,7 @@ struct omap_globals {void __iomem *prm;/* Power and Reset Management */ void __iomem *cm;/* Clock Management */ void __iomem *cm2; +void __iomem *prcm_mpu; };void omap2_set_globals_242x (void );
arch/arm/mach-omap2/prcm-common.h +13 -0
@@ -410,6 +410,19 @@extern void __iomem *prm_base;extern void __iomem *cm_base;extern void __iomem *cm2_base; +extern void __iomem *prcm_mpu_base; + +#if defined(CONFIG_ARCH_OMAP4 ) || defined(CONFIG_ARCH_OMAP5 ) +extern void omap_prm_base_init (void ); +extern void omap_cm_base_init (void ); +#else +static inline void omap_prm_base_init (void ) +{ +} +static inline void omap_cm_base_init (void ) +{ +} +#endif /** * struct omap_prcm_irq - describes a PRCM interrupt bit
arch/arm/mach-omap2/prcm.c +8 -0
@@ -42,6 +42,7 @@void __iomem *prm_base;void __iomem *cm_base;void __iomem *cm2_base; +void __iomem *prcm_mpu_base;#define MAX_MODULE_ENABLE_WAIT 100000
@@ -155,4 +156,11 @@ void __init omap2_set_globals_prcm(struct omap_globals *omap2_globals) cm_base = omap2_globals->cm;if (omap2_globals->cm2) cm2_base = omap2_globals->cm2; +if (omap2_globals->prcm_mpu) + prcm_mpu_base = omap2_globals->prcm_mpu; + +if (cpu_is_omap44xx ()) { +omap_prm_base_init (); +omap_cm_base_init (); + } }
arch/arm/mach-omap2/prminst44xx.c +16 -11
@@ -18,20 +18,26 @@#include "iomap.h" #include "common.h" +#include "prcm-common.h" #include "prm44xx.h" #include "prminst44xx.h" #include "prm-regbits-44xx.h" #include "prcm44xx.h" #include "prcm_mpu44xx.h" -static u32 _prm_bases[OMAP4_MAX_PRCM_PARTITIONS ] = { - [OMAP4430_INVALID_PRCM_PARTITION ] =0 , - [OMAP4430_PRM_PARTITION ] =OMAP4430_PRM_BASE , - [OMAP4430_CM1_PARTITION ] =0 , - [OMAP4430_CM2_PARTITION ] =0 , - [OMAP4430_SCRM_PARTITION ] =0 , - [OMAP4430_PRCM_MPU_PARTITION ] =OMAP4430_PRCM_MPU_BASE , -}; +static void __iomem *_prm_bases[OMAP4_MAX_PRCM_PARTITIONS ]; + +/** +* omap_prm_base_init - Populates the prm partitions +* +* Populates the base addresses of the _prm_bases +* array used for read/write of prm module registers. +*/ +void omap_prm_base_init (void ) +{ + _prm_bases[OMAP4430_PRM_PARTITION ] = prm_base; + _prm_bases[OMAP4430_PRCM_MPU_PARTITION ] = prcm_mpu_base; +}/* Read a register in a PRM instance */ u32 omap4_prminst_read_inst_reg (u8 part,s16 inst,u16 idx)
@@ -39,8 +45,7 @@ u32 omap4_prminst_read_inst_reg(u8 part, s16 inst, u16 idx)BUG_ON (part >=OMAP4_MAX_PRCM_PARTITIONS || part ==OMAP4430_INVALID_PRCM_PARTITION || !_prm_bases[part]); -return __raw_readl (OMAP2_L4_IO_ADDRESS (_prm_bases[part] + inst + - idx)); +return __raw_readl (_prm_bases[part] + inst + idx); }/* Write into a register in a PRM instance */
@@ -49,7 +54,7 @@ void omap4_prminst_write_inst_reg(u32 val, u8 part, s16 inst, u16 idx)BUG_ON (part >=OMAP4_MAX_PRCM_PARTITIONS || part ==OMAP4430_INVALID_PRCM_PARTITION || !_prm_bases[part]); -__raw_writel (val,OMAP2_L4_IO_ADDRESS (_prm_bases[part] + inst + idx)); +__raw_writel (val, _prm_bases[part] + inst + idx); }/* Read-modify-write a register in PRM. Caller must lock */
Signature · 1 line
1.7.5.4
Paul Walmsley
maintainerPATCH 7/7 ARM: OMAP4+: Add prm and cm base init function.
Quoted 10 lines · Santosh Shilimkar
From: R Sricharan <[email protected]>
Instead of statically defining seperate arrays for every OMAP4+ archs, have a generic init function to populate the arrays. This avoids the need for creating new array for every arch added in the future that reuses the prm and cm registers read/write code.
Cc Paul Walmsley <[email protected]>Signed-off-by R Sricharan <[email protected]>Signed-off-by Santosh Shilimkar <[email protected]>
Thanks, looks reasonable, will queue this for 3.5.
- Paul
PATCH 7/7 ARM: OMAP4+: Add prm and cm base init function.
Quoted 9 lines · Paul Walmsley
Quoted 7 lines · Santosh Shilimkar
From: R Sricharan <[email protected]>
Instead of statically defining seperate arrays for every OMAP4+ archs, have a generic init function to populate the arrays. This avoids the need for creating new array for every arch added in the future that reuses the prm and cm registers read/write code.
Quoted 6 lines
Quoted 3 lines
Cc Paul Walmsley <[email protected]>Signed-off-by R Sricharan <[email protected]>Signed-off-by Santosh Shilimkar <[email protected]>Thanks, looks reasonable, will queue this for 3.5.
Great. I will drop this one from my clean-up pull request.
Regards
Santosh
Tony Lindgren
maintainercover ARM: OMAP2+: Misc cleanup
In reply to Santosh ShilimkarQuoted 3 lines · Santosh Shilimkar
This series has some miscellianeous clean up patches which help to add future OMAP2+ device support with bit less changes. It is a preparatory series for adding minimal OMAP5 support.
Is this ready to be pulled?
Tony
cover ARM: OMAP2+: Misc cleanup
Quoted 7 lines · Tony Lindgren
Quoted 3 lines · Santosh Shilimkar
This series has some miscellianeous clean up patches which help to add future OMAP2+ device support with bit less changes. It is a preparatory series for adding minimal OMAP5 support.
Is this ready to be pulled?
Yes. I just sent a pull request to you after dropping [PATCH 7/7] since Paul is taking that in his 3.5 queue.
Regards
Santosh