1
linux/arch/arm/mach-omap2
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
..
include/mach AM35xx: Introduce am35xx.h file 2010-02-15 10:03:35 -08:00
board-2430sdp.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-3430sdp.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-3630sdp.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-4430sdp.c arm: omap: kill compile warning on board-4430-sdp.c 2010-02-15 10:03:35 -08:00
board-am3517evm.c AM35xx: Introduce am35xx.h file 2010-02-15 10:03:35 -08:00
board-apollon.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-cm-t35.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-generic.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-h4.c omap: convert boards to use physmap-flash 2010-02-15 10:03:32 -08:00
board-igep0020.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-ldp.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-n8x0.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-omap3beagle.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-omap3evm.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-omap3pandora.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-omap3touchbook.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-overo.c omap: Rename hsmmc symbols to reflect independence from twl4030 2010-02-15 10:03:34 -08:00
board-rx51-peripherals.c omap: RX51: Remux to pull eMMC lines down when powering off 2010-02-15 10:03:34 -08:00
board-rx51-sdram.c omap3: rx51: Add SDRAM init 2009-11-22 10:24:33 -08:00
board-rx51.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-sdp-flash.c omap3: SDP: Introducing 'board-sdp-flash.c' for flash init 2010-02-15 10:03:33 -08:00
board-zoom2.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-zoom3.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-zoom-debugboard.c omap3: zoom: rename zoom2 name to generic zoom 2009-11-22 10:24:33 -08:00
board-zoom-peripherals.c omap3: pm: Add T2 Keypad as a wakeup source 2010-02-15 10:03:35 -08:00
clkt2xxx_apll.c OMAP2/3 clock: Extend find_idlest() to pass back idle state value 2010-02-24 12:05:54 -07:00
clkt2xxx_dpllcore.c OMAP2xxx clock: move the DPLL+CORE composite clock code into mach-omap2/clkt2xxx_dpllcore.c 2010-01-26 20:13:06 -07:00
clkt2xxx_osc.c OMAP2xxx clock: move osc_clk code into mach-omap2/clkt2xxx_osc.c 2010-01-28 18:13:49 -07:00
clkt2xxx_sys.c OMAP2xxx clock: move sys_clk code into mach-omap2/clkt2xxx_sys.c 2010-01-28 18:13:49 -07:00
clkt2xxx_virt_prcm_set.c OMAP2xxx clock: move the DVFS virtual clock code into mach-omap2/clkt2xxx_virt_prcm_set.c 2010-01-26 20:13:06 -07:00
clkt34xx_dpll3m2.c OMAP3 clock: split out DPLL3 M2 divider functions into mach-omap2/clkt34xx_dpll3m2.c 2010-01-28 18:13:50 -07:00
clkt_clksel.c OMAP2/3/4 clock: move clksel clock functions into mach-omap2/clkt_clksel.c 2010-01-26 20:13:04 -07:00
clkt_dpll.c OMAP2/3/4 clock: move DPLL clock functions into mach-omap2/clkt_dpll.c 2010-01-26 20:13:03 -07:00
clock2xxx_data.c OMAP2/3/4 clock: rename and clean the omap2_clk_init() functions 2010-01-29 10:14:22 -07:00
clock2xxx.c OMAP2/3 clock: Extend find_idlest() to pass back idle state value 2010-02-24 12:05:54 -07:00
clock2xxx.h OMAP2/3/4 clock: rename and clean the omap2_clk_init() functions 2010-01-29 10:14:22 -07:00
clock34xx_data.c AM35xx: Add clock support for new modules on AM35xx 2010-02-24 12:05:55 -07:00
clock34xx.c OMAP3 clock: Check return values for clk_get() 2010-02-24 12:05:56 -07:00
clock34xx.h AM35xx: Add clock support for new modules on AM35xx 2010-02-24 12:05:55 -07:00
clock44xx_data.c omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock44xx.c omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock44xx.h omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock_common_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock.c OMAP2/3 clock: Extend find_idlest() to pass back idle state value 2010-02-24 12:05:54 -07:00
clock.h OMAP2/3 clock: Extend find_idlest() to pass back idle state value 2010-02-24 12:05:54 -07:00
clockdomain.c OMAP clockdomain/powerdomain: improve documentation 2010-01-26 20:13:02 -07:00
clockdomains44xx.h ARM: OMAP4 clock domains : Add the missing Clock Domain Structure 2010-01-26 20:12:58 -07:00
clockdomains.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
cm4xxx.c
cm44xx.h ARM: OMAP4: PM: Adds CM1/2 register defs for OMAP4 2009-12-11 17:00:45 -07:00
cm-regbits-24xx.h
cm-regbits-34xx.h AM35xx: Add clock support for new modules on AM35xx 2010-02-24 12:05:55 -07:00
cm-regbits-44xx.h OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
cm.c OMAP clock/hwmod: fix off-by-one errors 2009-12-11 17:00:43 -07:00
cm.h OMAP2/3 clock: Extend find_idlest() to pass back idle state value 2010-02-24 12:05:54 -07:00
control.c OMAP3: PM: Program SDRC to send self refresh on timeout of AUTO_CNT 2009-11-11 14:42:28 -08:00
cpuidle34xx.c OMAP3: CPUidle: Fixed timer resolution 2010-01-20 18:16:02 -08:00
devices.c omap2/3: Fix initcalls for multi-omap 2010-02-15 09:27:05 -08:00
dpll3xxx.c OMAP3 clock: Remove FreqSel for 3630 2010-02-24 12:05:57 -07:00
emu.c omap2/3: Fix initcalls for multi-omap 2010-02-15 09:27:05 -08:00
gpmc-nand.c omap2/3/4: Introducing 'gpmc-nand.c' for GPMC specific NAND init 2010-02-15 10:03:33 -08:00
gpmc-onenand.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
gpmc-smc91x.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
gpmc.c omap2/3/4: gpmc: kill compile warning 2010-02-15 10:03:33 -08:00
hsmmc.c omap_hsmmc: Allow for a shared VccQ 2010-02-15 10:03:34 -08:00
hsmmc.h omap_hsmmc: Allow for a shared VccQ 2010-02-15 10:03:34 -08:00
i2c.c omap: Split i2c platform init for mach-omap1 and mach-omap2 2009-12-11 16:16:32 -08:00
id.c ARM: OMAP4: PM: OMAP4 essential basic initialisations. 2010-01-26 20:12:51 -07:00
io.c omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3 2010-02-15 09:27:02 -08:00
iommu2.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
irq.c OMAP2/3: IRQ: ensure valid base address 2010-02-03 08:48:06 -08:00
Kconfig omap2/3/4: Replace orred CONFIG_ARCH_OMAP2/3/4 with CONFIG_ARCH_OMAP2PLUS 2010-02-15 09:27:04 -08:00
mailbox.c omap2/3/4: mailbox: kill compile warning in mailbox.c 2010-02-15 10:03:33 -08:00
Makefile OMAP3: hwmod: support to specify the offset position of various SYSCONFIG register bits. 2010-02-24 12:05:58 -07:00
Makefile.boot
mcbsp.c omap: McBSP: Introduce caching in register write operations 2010-02-15 10:03:33 -08:00
mux34xx.c omap: Fix 3630 mux errors 2010-02-03 08:48:06 -08:00
mux34xx.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
mux.c Merge branch 'omap-fixes-for-linus' into omap-for-linus 2010-02-17 14:08:58 -08:00
mux.h omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3 2010-02-15 09:27:02 -08:00
omap3-iommu.c omap: iommu: reorganize 2009-11-22 10:24:32 -08:00
omap_hwmod_34xx.h omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3 2010-02-15 09:27:02 -08:00
omap_hwmod_2420.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_hwmod_2430.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_hwmod_common_data.c OMAP3: hwmod: support to specify the offset position of various SYSCONFIG register bits. 2010-02-24 12:05:58 -07:00
omap_hwmod.c OMAP3: hwmod: support to specify the offset position of various SYSCONFIG register bits. 2010-02-24 12:05:58 -07:00
omap-headsmp.S OMAP4: AuxCoreBoot registers only accessible in secure mode 2009-12-11 16:16:35 -08:00
omap-smp.c OMAP4: Remove the secondary wait loop 2009-12-11 16:16:35 -08:00
opp2xxx.h omap2/3: Multiboot compile fixes to compile in omap2 and omap3 2010-02-15 09:26:55 -08:00
opp2420_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -07:00
opp2430_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -07:00
pm24xx.c OMAP clockdomains: add usecounting for wakeup and sleep dependencies 2010-01-26 20:13:01 -07:00
pm34xx.c OMAP3: clock: use std _MASK suffix for CM_FCLKEN_IVA2 defines 2010-02-24 12:05:48 -07:00
pm-debug.c OMAP3 PM: Adding counters for power domain logic off and mem off during retention. 2010-02-24 12:05:50 -07:00
pm.h OMAP3: PM debug: fix build error when !CONFIG_DEBUG_FS 2010-01-20 18:16:05 -08:00
powerdomain.c OMAP3 PM: Adding counters for power domain logic off and mem off during retention. 2010-02-24 12:05:50 -07:00
powerdomains24xx.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
powerdomains34xx.h OMAP3 PM: Defining .pwrsts_logic_ret field for core power domain structure 2010-02-24 12:05:50 -07:00
powerdomains44xx.h ARM: OMAP4: PM: Add the Autogenerated OMAP4 specific power domain framework. 2010-01-26 20:12:52 -07:00
powerdomains.h OMAP2+ powerdomains/clockdomains: prepare for multi-OMAP configs 2010-01-29 10:14:23 -07:00
prcm-common.h ARM: OMAP4: PM: OMAP4 Power Domain Porting Related Clean-up. 2010-01-26 20:12:51 -07:00
prcm.c OMAP2/3: PRCM: fix misc. compiler warnings 2010-02-24 12:05:56 -07:00
prm44xx.h OMAP4: PRCM: Fix the base address for CHIRONSS reg defines 2010-01-20 13:35:27 -07:00
prm-regbits-24xx.h
prm-regbits-34xx.h OMAP3: PM: Enable IO-CHAIN wakeup 2009-11-11 14:42:28 -08:00
prm-regbits-44xx.h OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
prm.h ARM: OMAP4: PM: OMAP4 Power Domain Porting Related Clean-up. 2010-01-26 20:12:51 -07:00
sdram-hynix-h8mbx00u0mer-0em.h omap3: zoom: Introduce zoom3 board support 2009-11-22 10:24:33 -08:00
sdram-micron-mt46h32m32lf-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdram-qimonda-hyb18m512160af-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc2xxx.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc.c OMAP2: Add funcs for writing SMS_ROT_* registers 2009-12-09 11:44:32 +02:00
sdrc.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
serial.c omap2/3/4: serial: fix coding style indentaion 2010-02-15 10:03:33 -08:00
sleep24xx.S omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sleep34xx.S ARM: OMAP4: PM: OMAP4 Power Domain Porting Related Clean-up. 2010-01-26 20:12:51 -07:00
sram34xx.S OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
sram242x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
sram243x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
timer-gp.c PM debug: allow configurable wakeup from suspend on OMAP GPtimer 2009-11-11 14:42:28 -08:00
timer-mpu.c
usb-ehci.c omap: mux: Replace omap_cfg_reg() with new style signal or gpio functions 2009-12-11 16:16:32 -08:00
usb-musb.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
usb-tusb6010.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00