linux/arch/arm
Thara Gopinath 358f0e630d OMAP3: hwmod: support to specify the offset position of various SYSCONFIG register bits.
In OMAP3 Some modules like Smartreflex do not have the regular sysconfig
register.Instead clockactivity bits are part of another register at a
different bit position than the usual bit positions 8 and 9.

In OMAP4, a new scheme is available  due to the new protocol
between the PRCM and the IPs. Depending of the scheme, the SYSCONFIG
bitfields position will be different.
The IP_REVISION register should be at offset 0x00.
It should contain a SCHEME field. From this we can determine whether
the IP follows legacy scheme or the new scheme.

31:30 SCHEME  Used to distinguish between old scheme and current.
 Read 0x0:  Legacy protocol.
 Read 0x1:  New PRCM protocol defined for new OMAP4 IPs

For legacy IP
 13:12 MIDLEMODE
 11:8  CLOCKACTIVITY
 6     EMUSOFT
 5     EMUFREE
 4:3   SIDLEMODE
 2     ENAWAKEUP
 1     SOFTRESET
 0     AUTOIDLE

For new OMAP4 IP's, the bit position in SYSCONFIG is (for simple target):
 5:4   STANDBYMODE (Ex MIDLEMODE)
 3:2   IDLEMODE (Ex SIDLEMODE)
 1     FREEEMU (Ex EMUFREE)
 0     SOFTRESET

Unfortunately In OMAP4 also some IPs will not follow any of these
two schemes. This is the case at least for McASP, SmartReflex
and some security IPs.

This patch introduces a new field sysc_fields in omap_hwmod_sysconfig which
can be used by the hwmod structures to specify the offsets for the
sysconfig register of the IP.Also two static structures
omap_hwmod_sysc_type1 and omap_hwmod_sysc_type2 are defined
which can be used directly to populate the sysc_fields if the IP follows
legacy or new OMAP4 scheme. If the IP follows none of these two schemes
a new omap_hwmod_sysc_fields structure has to be defined and
passed as part of omap_hwmod_sysconfig.

Signed-off-by: Thara Gopinath <thara@ti.com>
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2010-02-24 12:05:58 -07:00
..
boot ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
common ARM: 5857/1: ARM: dmabounce: fix build 2009-12-22 15:32:32 +00:00
configs omap_hsmmc: Move gpio and regulator control from board file 2010-02-15 10:03:34 -08:00
include/asm ARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 and V7 comments 2010-01-19 23:11:56 +00:00
kernel ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
lib Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 2009-09-19 13:47:57 +01:00
mach-aaec2000 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-at91 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-bcmring Merge git://git.infradead.org/mtd-2.6 2009-12-16 10:23:43 -08:00
mach-clps711x ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-davinci Merge branch 'debug-ll' into omap-for-linus 2010-02-15 09:26:07 -08:00
mach-dove ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-ebsa110 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-ep93xx ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-footbridge ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-gemini ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-h720x ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-integrator ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-iop13xx ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-iop32x ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-iop33x ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-ixp4xx ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-ixp23xx ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-ixp2000 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-kirkwood Merge branch 'debug-ll' into omap-for-linus 2010-02-15 09:26:07 -08:00
mach-ks8695 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-l7200 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-lh7a40x ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-loki ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-mmp ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-msm ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-mv78xx0 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-mx1 ARM: mxc: Fix i2c_board_info definitions 2009-08-14 12:40:37 +02:00
mach-mx2 mx27: mxt_td60: Remove not used UART pins 2010-01-04 11:47:43 +01:00
mach-mx3 mx31ads: Provide an IRQ range to the WM835x on the 1133-EV1 module 2010-01-05 17:08:54 +01:00
mach-mx25 mx25: make the FEC AHB clk secondary of the IPG 2010-01-26 18:54:41 +01:00
mach-mxc91231 MXC: add iomux pins configuration support for MXC91231 2009-08-14 12:40:47 +02:00
mach-netx ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-nomadik ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-ns9xxx ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-omap1 omap1: mailbox: kill compile warning 2010-02-15 10:03:33 -08:00
mach-omap2 OMAP3: hwmod: support to specify the offset position of various SYSCONFIG register bits. 2010-02-24 12:05:58 -07:00
mach-orion5x Merge branch 'debug-ll' into omap-for-linus 2010-02-15 09:26:07 -08:00
mach-pnx4008 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-pxa Merge branch 'debug-ll' into omap-for-linus 2010-02-15 09:26:07 -08:00
mach-realview Merge branch 'debug-ll' into omap-for-linus 2010-02-15 09:26:07 -08:00
mach-rpc ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-s3c24a0/include/mach ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-s3c2400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2410 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-s3c2412 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2440 ARM: MINI2440: Fixup __initdata usage 2010-01-15 17:04:42 +09:00
mach-s3c2442 Merge git://git.infradead.org/battery-2.6 2009-12-15 08:59:33 -08:00
mach-s3c2443 Kconfig: Remove useless and sometimes wrong comments 2009-11-09 09:40:56 +01:00
mach-s3c6400 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-s3c6410 hmt: adjust for new pwm_backlight->notify prototype 2010-01-22 09:58:17 +09:00
mach-s5pc100 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-sa1100 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-shark ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-stmp37xx
mach-stmp378x
mach-u300 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-ux500 ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-versatile ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
mach-w90x900 ARM: 5864/1: Implement arch_reset() in NUC900 2010-01-05 20:52:45 +00:00
mm ARM: Fix wrong register in proc-arm6_7.S data abort handler 2010-02-03 15:48:03 +00:00
nwfpe ARM: Kill CONFIG_CPU_32 2009-12-18 16:07:53 +00:00
oprofile ARM: 5849/1: ARMv7: fix Oprofile events count 2009-12-22 15:32:31 +00:00
plat-iop iop: implement sched_clock() 2009-10-29 11:46:56 -07:00
plat-mxc Merge branch 'debug-ll' into omap-for-linus 2010-02-15 09:26:07 -08:00
plat-nomadik ARM: 5833/1: ARM nomadik: enable U8500 for common platform 2009-11-28 10:22:53 +00:00
plat-omap OMAP3: hwmod: support to specify the offset position of various SYSCONFIG register bits. 2010-02-24 12:05:58 -07:00
plat-orion [ARM] Orion: fix PCIe inbound window programming when RAM size is not a power of two 2009-12-28 23:50:49 -05:00
plat-pxa [ARM] pxa: use resource_size() in pwm.c 2009-12-29 14:11:27 +08:00
plat-s3c ARM: S3C: NAND: Check the existence of nr_map before copying 2010-01-14 11:25:44 +09:00
plat-s3c24xx ARM: S3C24XX: touchscreen device definition 2009-12-23 19:28:12 +00:00
plat-s3c64xx ARM: S3C64XX: Fix possible clock look in EPLL and MPLL clock chains 2010-01-07 11:34:51 +09:00
plat-s5pc1xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
plat-samsung ARM: SAMSUNG: Add plat-samsung as starting point for plat-s3c* moves 2009-12-01 01:28:37 +00:00
plat-stmp3xxx ARM: 5910/1: ARM: Add tmp register for addruart and loadsp 2010-02-12 17:27:52 +00:00
tools [ARM] Update mach-types 2010-01-28 22:17:45 +00:00
vfp ARM: 5909/1: ARM: Correct the FPSCR bits setting when raising exceptions 2010-02-01 20:05:09 +00:00
Kconfig ARCH OMAP : enable ARCH_HAS_HOLES_MEMORYMODEL for OMAP 2010-02-03 08:48:06 -08:00
Kconfig-nommu
Kconfig.debug Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel 2009-12-13 16:35:09 +00:00
Makefile ARM: 5904/1: ARM: Always generate the IT instruction when compiling for Thumb-2 2010-01-30 16:13:23 +00:00