GitHub/moto-9609/android_kernel_motorola_exynos9610.git
14 years agoserial: omap-serial: fix signess error
Vasiliy Kulikov [Sun, 10 Oct 2010 17:28:35 +0000 (21:28 +0400)]
serial: omap-serial: fix signess error

"ret" is unsigned, so check for (ret < 0) made no sense.
Made it signed.

Signed-off-by: Vasiliy Kulikov <segooon@gmail.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP3: DMA: Errata i541: sDMA FIFO draining does not finish
Peter Ujfalusi [Mon, 11 Oct 2010 21:18:56 +0000 (14:18 -0700)]
OMAP3: DMA: Errata i541: sDMA FIFO draining does not finish

Implement the suggested workaround for OMAP3 regarding to sDMA draining
issue, when the channel is disabled on the fly.
This errata affects the following configuration:
sDMA transfer is source synchronized
Buffering is enabled
SmartStandby is selected.

The issue can be easily reproduced by creating overrun situation while
recording audio.
Either introduce load to the CPU:
nice -19 arecord -D hw:0 -M -B 10000 -F 5000 -f dat > /dev/null & \
dd if=/dev/urandom of=/dev/null

or suspending the arecord, and resuming it:
arecord -D hw:0 -M -B 10000 -F 5000 -f dat > /dev/null
CTRL+Z; fg; CTRL+Z; fg; ...

In case of overrun audio stops DMA, and restarts it (without reseting
the sDMA channel). When we hit this errata in stop case (sDMA drain did
not complete), at the coming start the sDMA will not going to be
operational (it is still draining).
This leads to DMA stall condition.
On OMAP3 we can recover with sDMA channel reset, it has been observed
that by introducing unrelated sDMA activity might also help (reading
from MMC for example).

The same errata exists for OMAP2, where the suggestion is to disable the
buffering to avoid this type of error.
On OMAP3 the suggestion is to set sDMA to NoStandby before disabling
the channel, and wait for the drain to finish, than configure sDMA to
SmartStandby again.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by : Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by : Manjunath Kondaiah G <manjugk@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap: dma: Fix buffering disable bit setting for omap24xx
Jarkko Nikula [Mon, 11 Oct 2010 21:18:45 +0000 (14:18 -0700)]
omap: dma: Fix buffering disable bit setting for omap24xx

An errata workaround for omap24xx is not setting the buffering disable bit
25 what is the purpose but channel enable bit 7 instead.

Background for this fix is the DMA stalling issue with ASoC omap-mcbsp
driver. Peter Ujfalusi <peter.ujfalusi@nokia.com> has found an issue in
recording that the DMA stall could happen if there were a buffer overrun
detected by ALSA and the DMA was stopped and restarted due that. This
problem is known to occur on both OMAP2420 and OMAP3. It can recover on
OMAP3 after dma free, dma request and reconfiguration cycle. However, on
OMAP2420 it seems that only way to recover is a reset.

Problem was not visible before the commit c12abc0. That commit changed that
the McBSP transmitter/receiver is released from reset only when needed. That
is, only enabled McBSP transmitter without transmission was able to prevent
this DMA stall problem in receiving side and underlying problem did not show
up until now. McBSP transmitter itself seems to no be reason since DMA
stall does not recover by enabling the transmission after stall.

Debugging showed that there were a DMA write active during DMA stop time and
it never completed even when restarting the DMA. Experimenting showed that
the DMA buffering disable bit could be used to avoid stalling when using
source synchronized transfers. However that could have performance hit and
OMAP3 TRM states that buffering disable is not allowed for destination
synchronized transfers so subsequent patch will implement a method to
complete DMA writes when stopping.

This patch is based on assumtion that complete lock-up on OMAP2420 is
different but related problem. I don't have access to OMAP2420 errata but
I believe this old workaround here is put for a reason but unfortunately
a wrong bit was typed and problem showed up only now.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Manjunath Kondaiah G <manjugk@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap: serial: Fix the boot-up crash/reboot without CONFIG_PM
Santosh Shilimkar [Mon, 11 Oct 2010 11:05:18 +0000 (11:05 +0000)]
omap: serial: Fix the boot-up crash/reboot without CONFIG_PM

The omap2plus_defconfig doesn't boot up when built with CONFIG_PM
disabled on the latest linux-omap master. Below are the observations
1. OMAP3 reboots in the middle of boot
--------------------------------------------------
[    0.000000] Calibrating delay loop... 494.72 BogoMIPS (lpj=1933312)
[    0.000000] pid_max: default: 32768 minimum: 301
[    0.000000] Security Framework initialized
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] Brought up 1 CPUs
[    0.000000] SMP: Total of 1 processors activated (494.72 BogoMIPS).
[    0.000000] regulator: core version 0.5
[    0.000000] NET: Registered protocol family 16

U-Boot 1.1.4 (Feb 11 2009 - 16:10:23)

OMAP3430-GP rev 2, CPU-OPP2 L3-165MHz
TI 3430SDP 1.0 Version + mDDR (Boot NOR)
DRAM:  128 MB
Flash: 128 MB
NAND:128 MiB
--------------------------------------------------

2. OMAP4 does a kernel PANIC
-------------------------------------
[    0.000000] Calibrating delay loop... 1195.29 BogoMIPS (lpj=4669440)
[    0.000000] pid_max: default: 32768 minimum: 301
[    0.000000] Security Framework initialized
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x410000c2, AUX_CTRL 0x0e050000
[    0.000000] CPU1: Booted secondary processor
[    0.000000] Brought up 2 CPUs
[    0.000000] SMP: Total of 2 processors activated (2395.78 BogoMIPS).
[    0.000000] regulator: core version 0.5
[    0.000000] NET: Registered protocol family 16
[    0.000000] mux: Could not set signal i2c2_scl.i2c2_scl
[    0.000000] mux: Could not set signal i2c2_sda.i2c2_sda
[    0.000000] mux: Could not set signal i2c3_scl.i2c3_scl
[    0.000000] mux: Could not set signal i2c3_sda.i2c3_sda
[    0.000000] mux: Could not set signal i2c4_scl.i2c4_scl
[    0.000000] mux: Could not set signal i2c4_sda.i2c4_sda
-------------------------------------

This is happening because 'omap_serial_init()' is hanging in the boot.
On OMAP3 the watchdog is generating reboot because devices_init doesn't
happens where as on OMAP4 it just hangs without reboot.
The uart clock is not getting enabled after omap_device_idle as part
of omap_serial_init.
The omap_device_idle(will disable the clock) then omap_uart_block_sleep()
should enable clock back disabled during the boot up phase.
But omap_uart_block_sleep() stuffed version is binded only under
CONFIG_PM and other version is just empty. Hence it is not enabling
clock back as expected

This patch adds uart clock enable code to omap_uart_block_sleep() function
built with CONFIG_PM disabled.
Thanks to Charulatha and Govindraj for their help on this debug.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Charulatha V <charu@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP3: PM: fix scratchpad memory accesses for off-mode
Kevin Hilman [Fri, 8 Oct 2010 22:43:45 +0000 (22:43 +0000)]
OMAP3: PM: fix scratchpad memory accesses for off-mode

Commit 914bab936fe0388a529079679e2f137aa4ff548d (OMAP: mach-omap2: Fix
incorrect assignment warnings) changed a pointer from 'u32 *' to
'void *' without also fixing up the pointer arithmetic.

Fix the scratchpad offsets so they are byte offsets instead of
word offsets and thus work correctly with a void pointer base.

Special thanks to Jean Pihet for taking the time track down this
problem and propose an initial solution.

Tested with off-idle and off-suspend on 36xx/Zoom3 and 34xx/omap3evm.

Cc: Manjunath Kondaiah G <manjugk@ti.com>
Reported-by: Jean Pihet <jean.pihet@newoldbits.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Tested-by: Jean Pihet <jean.pihet@newoldbits.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoMerge branch 'control_mcbsp_fix_2.6.37' of git://git.pwsan.com/linux-2.6 into omap...
Tony Lindgren [Fri, 8 Oct 2010 18:10:36 +0000 (11:10 -0700)]
Merge branch 'control_mcbsp_fix_2.6.37' of git://git.pwsan.com/linux-2.6 into omap-for-linus

14 years agoomap4: pandaboard: enable the ehci port on pandaboard
David Anders [Thu, 7 Oct 2010 19:36:30 +0000 (19:36 +0000)]
omap4: pandaboard: enable the ehci port on pandaboard

The OMAP4 PandaBoard has EHCI port1 hooked up to an external
SMSC3320 transciever. GPIO 1 is used to power on the transceiver
and GPIO 62 for reset on the transceiver.

Signed-off-by: David Anders <x0132446@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap4: pandaboard: Fix the init if CONFIG_MMC_OMAP_HS is not set
David Anders [Thu, 7 Oct 2010 19:36:29 +0000 (19:36 +0000)]
omap4: pandaboard: Fix the init if CONFIG_MMC_OMAP_HS is not set

Avoid possible crash if CONFIG_MMC_OMAP_HS is not set.

Signed-off-by: David Anders <x0132446@ti.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap4: pandaboard: remove unused hsmmc definition
David Anders [Thu, 7 Oct 2010 19:36:28 +0000 (19:36 +0000)]
omap4: pandaboard: remove unused hsmmc definition

remove the second hsmmc definition as it is only used on the
expansion header of the PandaBoard and can be mux for other
functions.

Signed-off-by: David Anders <x0132446@ti.com>
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP: McBSP: Remove null omap44xx ops comment
Jarkko Nikula [Fri, 8 Oct 2010 17:40:21 +0000 (11:40 -0600)]
OMAP: McBSP: Remove null omap44xx ops comment

It seems these comments where accidentally added so remove them.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
14 years agoOMAP: McBSP: Swap CLKS source definition
Jarkko Nikula [Fri, 8 Oct 2010 17:40:21 +0000 (11:40 -0600)]
OMAP: McBSP: Swap CLKS source definition

This is just a readability and debugging improvement. As selection bit in
DEVCONF register is cleared when using 96 MHz PRCM source and set when using
external CLKS pin, change definitions to be sync with these.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
14 years agoOMAP: McBSP: Fix CLKR and FSR signal muxing
Jarkko Nikula [Fri, 8 Oct 2010 17:40:20 +0000 (11:40 -0600)]
OMAP: McBSP: Fix CLKR and FSR signal muxing

Fix bit clear. Now it clears all other bits than mask bit where it should
clear only it.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
14 years agoOMAP2+: clock: reduce the amount of standard debugging while disabling unused clocks
Paul Walmsley [Fri, 8 Oct 2010 17:40:20 +0000 (11:40 -0600)]
OMAP2+: clock: reduce the amount of standard debugging while disabling unused clocks

Reduce the amount of debugging generated by default when unused clocks
are being disabled by the clock code.  The previous code would only
generate debug-level messages, but some people who wished to run
production kernels with debug-level messages enabled reported that the
large number of clock disable messages were slowing boot.  Now to
enable clock-by-clock disable messages, DEBUG needs to be defined in
mach-omap2/clock.c.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Tuukka Tikkanen <tuukka.tikkanen@nokia.com>
Cc: Tim Bird <tim.bird@am.sony.com>
14 years agoOMAP: control: move plat-omap/control.h to mach-omap2/control.h
Paul Walmsley [Fri, 8 Oct 2010 17:40:20 +0000 (11:40 -0600)]
OMAP: control: move plat-omap/control.h to mach-omap2/control.h

Only OMAP2+ platforms have the System Control Module (SCM) IP block.
In the past, we've kept the SCM header file in plat-omap.  This has
led to abuse - device drivers including it; includes being added that
create implicit dependencies on OMAP2+ builds; etc.

In response, move the SCM headers into mach-omap2/.

As part of this, remove the direct SCM access from the OMAP UDC
driver.  It was clearly broken.  The UDC code needs an indepth review for
use on OMAP2+ chips.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Cory Maccarrone <darkstar6262@gmail.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
14 years agoOMAP: split plat-omap/common.c
Paul Walmsley [Fri, 8 Oct 2010 17:40:19 +0000 (11:40 -0600)]
OMAP: split plat-omap/common.c

Split plat-omap/common.c into three pieces:

1. the 32KiHz sync timer and clocksource code, which now lives in
   plat-omap/counter_32k.c;

2. the OMAP2+ common code, which has been moved to mach-omap2/common.c;

3. and the remainder of the OMAP-wide common code, which includes the
   deprecated ATAGs code and a deprecated video RAM reservation function.

The primary motivation for doing this is to move the OMAP2+-specific parts
into an OMAP2+-specific file, so that build breakage related to the
System Control Module code can be resolved.

Benoît Cousson <b-cousson@ti.com> suggested a new filename and found
some bugs in the counter_32k.c comments - thanks Benoît.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Benoît Cousson <b-cousson@ti.com>
14 years agoOMAP: McBSP: implement functional clock switching via clock framework
Paul Walmsley [Fri, 8 Oct 2010 17:40:19 +0000 (11:40 -0600)]
OMAP: McBSP: implement functional clock switching via clock framework

Previously the OMAP McBSP ASoC driver implemented CLKS switching by
using omap_ctrl_{read,write}l() directly.  This is against policy; the OMAP
System Control Module functions are not intended to be exported to drivers.
These symbols are no longer exported, so as a result, the OMAP McBSP ASoC
driver does not build as a module.

Resolve the CLKS clock changing portion of this problem by creating a
clock parent changing function that lives in
arch/arm/mach-omap2/mcbsp.c, and modify the ASoC driver to use it.
Due to the unfortunate way that McBSP support is implemented in ASoC
and the OMAP tree, this symbol must be exported for use by
sound/soc/omap/omap-mcbsp.c.

Going forward, the McBSP device driver should be moved from
arch/arm/*omap* into drivers/ or sound/soc/* and the CPU DAI driver
should be implemented as a platform_driver as many other ASoC CPU DAI
drivers are.  These two steps should resolve many of the layering
problems, which will rapidly reappear during a McBSP hwmod/PM runtime
conversions.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoOMAP: McBSP: implement McBSP CLKR and FSR signal muxing via mach-omap2/mcbsp.c
Paul Walmsley [Fri, 8 Oct 2010 17:40:19 +0000 (11:40 -0600)]
OMAP: McBSP: implement McBSP CLKR and FSR signal muxing via mach-omap2/mcbsp.c

The OMAP ASoC McBSP code implemented CLKR and FSR signal muxing via
direct System Control Module writes on OMAP2+.  This required the
omap_ctrl_{read,write}l() functions to be exported, which is against
policy: the only code that should call those functions directly is
OMAP core code, not device drivers.  omap_ctrl_{read,write}*() are no
longer exported, so the driver no longer builds as a module.

Fix the pinmuxing part of the problem by removing calls to
omap_ctrl_{read,write}l() from the OMAP ASoC McBSP code and
implementing signal muxing functions in arch/arm/mach-omap2/mcbsp.c.
Due to the unfortunate way that McBSP support is implemented in ASoC
and the OMAP tree, these symbols must be exported for use by
sound/soc/omap/omap-mcbsp.c.

Going forward, the McBSP device driver should be moved from
arch/arm/*omap* into drivers/ or sound/soc/*, and the CPU DAI driver
should be implemented as a platform_driver as many other ASoC CPU DAI
drivers are.  These two steps should resolve many of the layering
problems, which will rapidly reappear during a McBSP hwmod/PM runtime
conversion.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoOMAP3xxx: clock: add clkdev aliases for McBSP fclk source switching
Paul Walmsley [Fri, 8 Oct 2010 17:40:18 +0000 (11:40 -0600)]
OMAP3xxx: clock: add clkdev aliases for McBSP fclk source switching

The OMAP3 clock tree already contains the infrastructure to support
clock framework-based McBSP functional clock source switching.  But it
did not contain the clkdev aliases for the McBSP code to refer to the
parent clocks in an SoC integration-neutral way.  So, add the clkdev
aliases for the parent clocks.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoOMAP2430: clock: add MCBSP_CLKS node and clkdev aliases
Paul Walmsley [Fri, 8 Oct 2010 17:40:18 +0000 (11:40 -0600)]
OMAP2430: clock: add MCBSP_CLKS node and clkdev aliases

Add the MCBSP_CLKS clock and the clksel structures needed to support clock
framework-based source switching for McBSPs 1-5.  Also, add clkdev
aliases on the parent clocks for the McBSP source switching code, added
in a subsequent patch.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoOMAP2420: clock: add MCBSP_CLKS node and clkdev aliases
Paul Walmsley [Fri, 8 Oct 2010 17:40:17 +0000 (11:40 -0600)]
OMAP2420: clock: add MCBSP_CLKS node and clkdev aliases

Add the MCBSP_CLKS clock and the clksel structures needed to support clock
framework-based source switching for McBSP 1 and 2.  Also, add clkdev
aliases on the parent clocks for the McBSP source switching code, added
in a subsequent patch.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoOMAP2420: CTRL: fix OMAP242X_CTRL_REGADDR macro
Paul Walmsley [Fri, 8 Oct 2010 17:40:17 +0000 (11:40 -0600)]
OMAP2420: CTRL: fix OMAP242X_CTRL_REGADDR macro

Conform the OMAP2420_CTRL_BASE macro name to the standard of the rest of the
OMAP*_CTRL_BASE macro names.  This fixes a bug in the OMAP2420 SCM code that
prevented OMAP242X_CTRL_REGADDR from working.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoOMAP2+: Kconfig: disallow builds for boards that don't use the currently-selected SoC
Paul Walmsley [Fri, 8 Oct 2010 17:40:17 +0000 (11:40 -0600)]
OMAP2+: Kconfig: disallow builds for boards that don't use the currently-selected SoC

Currently, if, for example, CONFIG_ARCH_OMAP2420 is not selected, OMAP2420
board files can still be included in the build.  This results in link errors:

arch/arm/mach-omap2/built-in.o: In function `omap_generic_map_io':
.../arch/arm/mach-omap2/board-generic.c:51: undefined reference to `omap2_set_globals_242x'
arch/arm/mach-omap2/built-in.o: In function `omap_h4_init':
.../arch/arm/mach-omap2/board-h4.c:330: undefined reference to `omap2420_mux_init'
arch/arm/mach-omap2/built-in.o: In function `omap_h4_map_io':
.../arch/arm/mach-omap2/board-h4.c:373: undefined reference to `omap2_set_globals_242x'
arch/arm/mach-omap2/built-in.o: In function `omap_apollon_init':
.../arch/arm/mach-omap2/board-apollon.c:325: undefined reference to `omap2420_mux_init'
arch/arm/mach-omap2/built-in.o: In function `omap_apollon_map_io':
.../arch/arm/mach-omap2/board-apollon.c:353: undefined reference to `omap2_set_globals_242x'
make: *** [.tmp_vmlinux1] Error 1

Fix this by making the boards depend on the Kconfig option for the
specific SoC that they use.

Also, while here, fix the mach-omap2/board-generic.c file to remove the
dependency on OMAP2420.

Charulatha Varadarajan <charu@ti.com> caught a typo - thanks Charu.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Charulatha Varadarajan <charu@ti.com>
14 years agoomap: Update omap2plus_defconfig to use ttyO instead ttyS
Tony Lindgren [Fri, 8 Oct 2010 17:23:44 +0000 (10:23 -0700)]
omap: Update omap2plus_defconfig to use ttyO instead ttyS

With the omap-serial the device has changed from ttyS to ttyO as
the system may have both omap-serial and 8250 ports.

Note that systems using omap-serial need to be updated to use ttyO[012]
instead of ttyS[012] in the bootloader, CONFIG_CMDLINE, /etc/inittab,
and the root file system with mknod. Also you may need to add ttyO[012]
to /etc/securetty.

Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP2: PM: check UART status before trying to idle
Kevin Hilman [Fri, 8 Oct 2010 17:23:32 +0000 (10:23 -0700)]
OMAP2: PM: check UART status before trying to idle

As is done on OMAP3, check omap_uart_can_sleep() as one of the
pre-conditions for entering the idle loop.  Without this check,
entering idle introduces large latencies on active UARTs, and is
especially noticable on serial console.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap: hwmod: Handle modules with 16bit registers
Rajendra Nayak [Fri, 8 Oct 2010 17:23:22 +0000 (10:23 -0700)]
omap: hwmod: Handle modules with 16bit registers

Some modules which have 16bit registers can cause imprecise
aborts if a __raw_readl/writel is used to read/write 32 bits.

Add an additional flag to identify modules which have such
hard requirement, and handle it in the hwmod framework.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoarm/omap: remove duplicated include
Nicolas Kaiser [Fri, 8 Oct 2010 17:23:14 +0000 (10:23 -0700)]
arm/omap: remove duplicated include

Remove duplicated include.

Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP2PLUS: WDT: Fix: Disable WDT after reset during init
Charulatha V [Fri, 8 Oct 2010 17:23:06 +0000 (10:23 -0700)]
OMAP2PLUS: WDT: Fix: Disable WDT after reset during init

Inorder to avoid any assumptions from bootloader, the watchdog
timer module is reset during init. This enables the watchdog
timer.

Therefore, it is required to disable WDT after it is reset
during init. Otherwise the system would reboot as per the default
watchdog timer registers settings.

Later, when the watchdog driver is loaded, the watchdog timer settings
is adjusted as per the default timer_margin set in the driver and the
driver would supports the normal operations supported by OMAP watchdog
timer.

Signed-off-by: Charulatha V <charu@ti.com>
Reported-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: Remove VMMC2 regulator on IGEP v2
Enric Balletbo i Serra [Fri, 8 Oct 2010 17:22:57 +0000 (10:22 -0700)]
omap3: Remove VMMC2 regulator on IGEP v2

VMMC2 regulator is configured but it's not used for the IGEP v2, so
remove this regulator from board.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: Add i2c eeprom driver to read EDID on IGEP v2
Enric Balletbo i Serra [Fri, 8 Oct 2010 17:22:51 +0000 (10:22 -0700)]
omap3: Add i2c eeprom driver to read EDID on IGEP v2

Add i2c eeprom driver to access monitor EDID binary information
from user space, something that is required by 'decode-edid' and
'parse-edid'.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: Fix handling some GPIO's for WLAN-BT combo on IGEP v2
Enric Balletbo i Serra [Fri, 8 Oct 2010 17:22:43 +0000 (10:22 -0700)]
omap3: Fix handling some GPIO's for WLAN-BT combo on IGEP v2

Some GPIO's used by WLAN-BT combo on IGEP v2 depends on hardware
revision. This patch handles these GPIO's.

  ----------------------------------------------------------
 |       Hw Rev.       | WIFI_NPD | WIFI_NRESET | BT_NRESET |
  ----------------------------------------------------------
 |  B                  | gpio94  |   gpio95    |     -      |
 |  B/C (B-compatible) | gpio94  |   gpio95    |  gpio137   |
 |  C                  | gpio138 |   gpio139   |  gpio137   |
  ----------------------------------------------------------

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: Introduce function to detect the IGEP v2 hardwarerevision
Enric Balletbo i Serra [Fri, 8 Oct 2010 17:22:35 +0000 (10:22 -0700)]
omap3: Introduce function to detect the IGEP v2 hardwarerevision

There are currently two versions of IGEP v2 board, this patch introduces a
function to detect the hardware revision of IGEP board.

  --------------------------
 | Id. | Hw Rev. | GPIO 28  |
  --------------------------
 |  0  |   B/C   |   high   |
 |  1  |   C     |   low    |
  --------------------------

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: fix and improve the LED handling on IGEP v2 board
Enric Balletbo i Serra [Fri, 8 Oct 2010 17:22:28 +0000 (10:22 -0700)]
omap3: fix and improve the LED handling on IGEP v2 board

The IGEP v2 board has four leds, this patch allows control all
of these LEDs using the LED class if CONFIG_LEDS_GPIO is selected
or using the General Purpose Input/Output (GPIO) interface if
CONFIG_LEDS_GPIO is not selected.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: Add external VBUS power switch and overcurrent detect onIGEP v2 board
Enric Balletbo i Serra [Fri, 8 Oct 2010 17:22:19 +0000 (10:22 -0700)]
omap3: Add external VBUS power switch and overcurrent detect onIGEP v2 board

GPIO for various devices are missing from the board initialization.
This patch adds support for the VBUS and over current gpios.  Without this
patch, input/outputs from these two sources are ignored.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: Add minimal OMAP3 IGEP module support
Enric Balletbo i Serra [Fri, 8 Oct 2010 17:22:11 +0000 (10:22 -0700)]
omap3: Add minimal OMAP3 IGEP module support

The OMAP3 IGEP module is a low-power, high performance production-ready
system-on-module (SOM) based on TI's OMAP3 family. More about this
board at www.igep.es.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
[tony@atomide.com: updated for the mmc changes and to be selected by default]
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoMerge branch 'pm-hwmods' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman...
Tony Lindgren [Fri, 8 Oct 2010 17:20:40 +0000 (10:20 -0700)]
Merge branch 'pm-hwmods' of ssh:///linux/kernel/git/khilman/linux-omap-pm into omap-for-linus

14 years agoMerge branches 'devel-omap1' and 'devel-omap2plus' into omap-for-linus
Tony Lindgren [Fri, 8 Oct 2010 17:19:53 +0000 (10:19 -0700)]
Merge branches 'devel-omap1' and 'devel-omap2plus' into omap-for-linus

14 years agoMerge branch 'pm-next-2' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman...
Tony Lindgren [Fri, 8 Oct 2010 17:19:36 +0000 (10:19 -0700)]
Merge branch 'pm-next-2' of ssh:///linux/kernel/git/khilman/linux-omap-pm into omap-for-linus

14 years agoOMAP3: Keypad: Fix incorrect type initializer
Manjunath Kondaiah G [Fri, 8 Oct 2010 17:01:13 +0000 (10:01 -0700)]
OMAP3: Keypad: Fix incorrect type initializer

The keypad matrix variable declaration is not matching
with structure variable keymap declared in keypad_matrix.h.

Due to this, following sparse warnings are generated with omap3_defconfig.

arch/arm/mach-omap2/board-devkit8000.c:223:14: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-devkit8000.c:223:14:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-devkit8000.c:223:14:    got int static [toplevel] *<noident>

arch/arm/mach-omap2/board-ldp.c:107:14: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-ldp.c:107:14:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-ldp.c:107:14:    got int static [toplevel] *<noident>

arch/arm/mach-omap2/board-omap3evm.c:472:14: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-omap3evm.c:472:14:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-omap3evm.c:472:14:    got int static [toplevel] *<noident>

arch/arm/mach-omap2/board-3430sdp.c:114:14: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-3430sdp.c:114:14:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-3430sdp.c:114:14:    got int static [toplevel] *<noident>

arch/arm/mach-omap2/board-rx51-peripherals.c:248:14: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-rx51-peripherals.c:248:14:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-rx51-peripherals.c:248:14:    got int static [toplevel] *<noident>

arch/arm/mach-omap2/board-zoom-peripherals.c:88:14: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-zoom-peripherals.c:88:14:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-zoom-peripherals.c:88:14:    got int static [toplevel] *<noident>

arch/arm/mach-omap2/board-cm-t35.c:568:14: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-cm-t35.c:568:14:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-cm-t35.c:568:14:    got int static [toplevel] *<noident>

arch/arm/mach-omap2/board-omap3stalker.c:415:13: warning: incorrect type in initializer (different signedness)
arch/arm/mach-omap2/board-omap3stalker.c:415:13:    expected unsigned int const [usertype] *keymap
arch/arm/mach-omap2/board-omap3stalker.c:415:13:    got int static [toplevel] *<noident>

This patch modifies the variable keymap declaration as per declaration in matrix_keymap structure.

Signed-off-by: Manjunath Kondaiah G <manjugk@ti.com>
Cc: linux-input@vger.kernel.org
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP: plat-omap: Fix static function warnings
Manjunath Kondaiah G [Fri, 8 Oct 2010 17:00:19 +0000 (10:00 -0700)]
OMAP: plat-omap: Fix static function warnings

This patch fixes sparse warnings due non declarations of static functions.

arch/arm/plat-omap/sram.c:130:13: warning: symbol 'omap_detect_sram' was not declared. Should it be static?
arch/arm/plat-omap/sram.c:216:13: warning: symbol 'omap_map_sram' was not declared. Should it be static?
arch/arm/plat-omap/sram.c:450:12: warning: symbol 'omap_sram_init' was not declared. Should it be static?
arch/arm/plat-omap/sram.c:348:12: warning: symbol 'omap242x_sram_init' was not declared. Should it be static?
arch/arm/plat-omap/sram.c:369:12: warning: symbol 'omap243x_sram_init' was not declared. Should it be static?
arch/arm/plat-omap/sram.c:425:12: warning: symbol 'omap34xx_sram_init' was not declared. Should it be static?
arch/arm/plat-omap/sram.c:441:12: warning: symbol 'omap44xx_sram_init' was not declared. Should it be static

arch/arm/plat-omap/mcbsp.c:36:6: warning: symbol 'omap_mcbsp_write' was not declared. Should it be static?
arch/arm/plat-omap/mcbsp.c:50:5: warning: symbol 'omap_mcbsp_read' was not declared. Should it be static?
arch/arm/plat-omap/mcbsp.c:65:6: warning: symbol 'omap_mcbsp_st_write' was not declared. Should it be static?
arch/arm/plat-omap/mcbsp.c:70:5: warning: symbol 'omap_mcbsp_st_read' was not declared. Should it be static?
arch/arm/plat-omap/mcbsp.c:1648:15: warning: symbol 'omap_st_add' was not declared. Should it be static?

arch/arm/plat-omap/fb.c:414:15: warning: symbol 'omapfb_reserve_sram' was not declared. Should it be static?
arch/arm/plat-omap/cpu-omap.c:43:5: warning: symbol 'omap_verify_speed' was not declared. Should it be static?
arch/arm/plat-omap/cpu-omap.c:61:14: warning: symbol 'omap_getspeed' was not declared. Should it be static?

Signed-off-by: Manjunath Kondaiah G <manjugk@ti.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP: mach-omap2: Fix miscellaneous sparse warnings
Manjunath Kondaiah G [Fri, 8 Oct 2010 16:59:20 +0000 (09:59 -0700)]
OMAP: mach-omap2: Fix miscellaneous sparse warnings

This patch fixes miscellaneous sparse warnings in mach-omap2.

arch/arm/mach-omap2/board-am3517evm.c:141:17: warning: Initializer entry defined twice
arch/arm/mach-omap2/board-am3517evm.c:142:18:   also defined here

arch/arm/mach-omap2/irq.c:50:35: warning: Using plain integer as NULL pointer

Signed-off-by: Manjunath Kondaiah G <manjugk@ti.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP2plus: Fix static function warnings
Manjunath Kondaiah G [Fri, 8 Oct 2010 16:58:35 +0000 (09:58 -0700)]
OMAP2plus: Fix static function warnings

This patch fixes sparse warnings due non declarations of static functions.

arch/arm/mach-omap2/timer-gp.c:115:12: warning: symbol 'omap2_gp_clockevent_set_gptimer' was not declared. Should it be static?
arch/arm/mach-omap2/powerdomain.c:993:5: warning: symbol 'pwrdm_set_lowpwrstchange' was not declared. Should it be static?
arch/arm/mach-omap2/board-flash.c:141:8: warning: symbol 'board_nand_init' was not declared. Should it be static?
arch/arm/mach-omap2/board-n8x0.c:416:6: warning: symbol 'n8x0_mmc_slot1_cover_handler' was not declared. Should it be static?
arch/arm/mach-omap2/board-n8x0.c:544:13: warning: symbol 'n8x0_mmc_init' was not declared. Should it be static?
arch/arm/mach-omap2/board-rx51-peripherals.c:902:13: warning: symbol 'rx51_peripherals_init' was not declared. Should it be static?
arch/arm/mach-omap2/board-rx51-video.c:107:13: warning: symbol 'rx51_video_mem_init' was not declared. Should it be static?
arch/arm/mach-omap2/board-zoom-debugboard.c:155:12: warning: symbol 'zoom_debugboard_init' was not declared. Should it be static?
arch/arm/mach-omap2/board-zoom-peripherals.c:280:13: warning: symbol 'zoom_peripherals_init' was not declared. Should it be static?
arch/arm/mach-omap2/board-igep0020.c:110:13: warning: symbol 'igep2_flash_init' was not declared. Should it be static?
arch/arm/mach-omap2/board-am3517evm.c:109:6: warning: symbol 'am3517_evm_ethernet_init' was not declared. Should it be static?
drivers/mtd/onenand/omap2.c:577:5: warning: symbol 'omap2_onenand_rephase' was not declared. Should it be static?

Signed-off-by: Manjunath Kondaiah G <manjugk@ti.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP: mach-omap2: Fix static declaration warnings
Manjunath Kondaiah G [Fri, 8 Oct 2010 16:56:37 +0000 (09:56 -0700)]
OMAP: mach-omap2: Fix static declaration warnings

This patch fixes sparse warnings due to non declaration of
static structures and variables.

Sparse warning logs fixed:
arch/arm/mach-omap2/control.c:88:6: warning: symbol 'omap3_secure_ram_storage' was not declared. Should it be static?
n
arch/arm/mach-omap2/timer-gp.c:50:22: warning: symbol 'gptimer_wakeup' was not declared. Should it be static?
arch/arm/mach-omap2/timer-gp.c:240:18: warning: symbol 'omap_timer' was not declared. Should it be static?
arch/arm/mach-omap2/prcm.c:121:24: warning: symbol 'prcm_context' was not declared. Should it be static?
arch/arm/mach-omap2/mux2420.c:510:29: warning: symbol 'omap2420_pop_ball' was not declared. Should it be static?
arch/arm/mach-omap2/mux2430.c:589:29: warning: symbol 'omap2430_pop_ball' was not declared. Should it be static?
arch/arm/mach-omap2/mux34xx.c:934:28: warning: symbol 'omap3_cus_subset' was not declared. Should it be static?
arch/arm/mach-omap2/mux34xx.c:1080:29: warning: symbol 'omap3_cus_ball' was not declared. Should it be static?
arch/arm/mach-omap2/mux34xx.c:1272:28: warning: symbol 'omap3_cbb_subset' was not declared. Should it be static?
arch/arm/mach-omap2/mux34xx.c:1393:29: warning: symbol 'omap3_cbb_ball' was not declared. Should it be static?
arch/arm/mach-omap2/mux34xx.c:1603:28: warning: symbol 'omap36xx_cbp_subset' was not declared. Should it be static?
arch/arm/mach-omap2/mux34xx.c:1821:29: warning: symbol 'omap36xx_cbp_ball' was not declared. Should it be static?
arch/arm/mach-omap2/pm-debug.c:165:15: warning: symbol 'pm_dbg_dir' was not declared. Should it be static?
arch/arm/mach-omap2/board-omap3evm.c:587:30: warning: symbol 'ads7846_config' was not declared. Should it be static?
arch/arm/mach-omap2/board-omap3evm.c:606:23: warning: symbol 'omap3evm_spi_board_info' was not declared. Should it be static?
arch/arm/mach-omap2/board-rx51-sdram.c:46:25: warning: symbol 'rx51_sdrc_params' was not declared. Should it be static?
arch/arm/mach-omap2/board-rx51-sdram.c:211:25: warning: symbol 'rx51_get_sdram_timings' was not declared. Should it be static?
arch/arm/mach-omap2/board-omap3touchbook.c:64:15: warning: symbol 'touchbook_revision' was not declared. Should it be static?
arch/arm/mach-omap2/board-am3517evm.c:350:24: warning: symbol 'am3517_evm_dss_device' was not declared. Should it be static?
arch/arm/mach-omap2/board-omap3stalker.c:567:23: warning: symbol 'omap3stalker_spi_board_info' was not declared. Should it be static?

Signed-off-by: Manjunath Kondaiah G <manjugk@ti.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP: mach-omap2: Fix incorrect assignment warnings
Manjunath Kondaiah G [Fri, 8 Oct 2010 16:56:11 +0000 (09:56 -0700)]
OMAP: mach-omap2: Fix incorrect assignment warnings

This patch fixes below sparse warnings for incorrect assignments.

arch/arm/mach-omap2/control.c:195:16: warning: incorrect type in assignment (different address spaces)
arch/arm/mach-omap2/control.c:195:16:    expected unsigned int [usertype] *v_addr
arch/arm/mach-omap2/control.c:195:16:    got void [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/control.c:199:25: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/control.c:199:25:    expected void const volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/control.c:199:25:    got unsigned int [usertype] *
arch/arm/mach-omap2/control.c:320:28: warning: incorrect type in assignment (different address spaces)
arch/arm/mach-omap2/control.c:320:28:    expected void *[noderef] <asn:2>scratchpad_address
arch/arm/mach-omap2/control.c:320:28:    got void [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/control.c:321:9: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/control.c:321:9:    expected void volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/control.c:321:9:    got void *[noderef] <asn:2>scratchpad_address
arch/arm/mach-omap2/control.c:324:9: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/control.c:324:9:    expected void volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/control.c:324:9:    got void *
arch/arm/mach-omap2/control.c:327:9: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/control.c:327:9:    expected void volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/control.c:327:9:    got void *
arch/arm/mach-omap2/control.c:334:9: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/control.c:334:9:    expected void volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/control.c:334:9:    got void *
arch/arm/mach-omap2/control.c:321:9: warning: dereference of noderef expression
arch/arm/mach-omap2/control.c:324:9: warning: dereference of noderef expression
arch/arm/mach-omap2/control.c:327:9: warning: dereference of noderef expression
arch/arm/mach-omap2/control.c:334:9: warning: dereference of noderef expression

arch/arm/mach-omap2/pm34xx.c:323:28: warning: incorrect type in assignment (different address spaces)
arch/arm/mach-omap2/pm34xx.c:323:28:    expected unsigned int [usertype] *scratchpad_address
arch/arm/mach-omap2/pm34xx.c:323:28:    got void [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/pm34xx.c:326:26: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/pm34xx.c:326:26:    expected void const volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/pm34xx.c:326:26:    got unsigned int [usertype] *
arch/arm/mach-omap2/pm34xx.c:329:26: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/pm34xx.c:329:26:    expected void const volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/pm34xx.c:329:26:    got unsigned int [usertype] *
arch/arm/mach-omap2/pm34xx.c:334:29: warning: incorrect type in argument 1 (different address spaces)
arch/arm/mach-omap2/pm34xx.c:334:29:    expected void const volatile [noderef] <asn:2>*<noident>
arch/arm/mach-omap2/pm34xx.c:334:29:    got unsigned int [usertype] *

Signed-off-by: Manjunath Kondaiah G <manjugk@ti.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap: Keep nwires for omap1 and 2420 MMC controller
Tony Lindgren [Mon, 4 Oct 2010 23:58:01 +0000 (16:58 -0700)]
omap: Keep nwires for omap1 and 2420 MMC controller

A patch from Sukumar Ghorai <s-ghorai@ti.com> changed the
nwires to use caps instead. However, nwires is still
needed for the earlier controller.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Sukumar Ghorai <s-ghorai@ti.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
14 years agoOMAP1: Amstrad Delta: add camera controlled LEDS trigger
Janusz Krzysztofik [Fri, 1 Oct 2010 23:37:01 +0000 (16:37 -0700)]
OMAP1: Amstrad Delta: add camera controlled LEDS trigger

This patch extends the Amstrad Delta camera support with LEDS trigger that can
be used for automatic control of the on-board camera LED. The led turns on
automatically on camera device open and turns off on camera device close.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP1: Amstrad Delta: add support for camera
Janusz Krzysztofik [Fri, 1 Oct 2010 23:37:00 +0000 (16:37 -0700)]
OMAP1: Amstrad Delta: add support for camera

This patch adds configuration data and initialization code required for camera
support to the Amstrad Delta board.

Three devices are declared: SoC camera, OMAP1 camera interface and OV6650
sensor.

Default 12MHz clock has been selected for driving the sensor. Pixel clock has
been limited to get reasonable frame rates, not exceeding the board
capabilities. Since both devices (interface and sensor) support both pixel
clock polarities, decision on polarity selection has been left to drivers.
Interface GPIO line has been found not functional, thus not configured.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP1: Add support for SoC camera interface
Janusz Krzysztofik [Fri, 1 Oct 2010 23:37:00 +0000 (16:37 -0700)]
OMAP1: Add support for SoC camera interface

This patch adds a definition of the OMAP1 camera interface platform device,
and a function that allows for providing a board specific platform data.
The device will be used with the upcoming OMAP1 SoC camera interface driver.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap4 hsmmc: Update ocr mask for MMC2 for regulator to use
kishore kadiyala [Fri, 1 Oct 2010 23:35:28 +0000 (16:35 -0700)]
omap4 hsmmc: Update ocr mask for MMC2 for regulator to use

On OMAP4, MMC2 controller has eMMC which draws power from VAUX regulator
on TWL. Though the eMMC supports dual voltage[1.8v/3v] as per ocr register,
its VCC is fixed at 3V for operation. With this once the mmc core selects
the minimum voltage[1.8] supported based on the ocr value read from OCR register,
eMMC will not get detected. Thus the platform data for MMC2 is updated with ocr
mask and same will be communicated to core which will set the regulator to
always operate at 3V when ever turned ON.

Cc: Tony Lindgren <tony@atomide.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Madhusudhan Chikkature <madhu.cr@ti.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap4 hsmmc: Register offset handling
kishore kadiyala [Fri, 1 Oct 2010 23:35:28 +0000 (16:35 -0700)]
omap4 hsmmc: Register offset handling

In OMAP4, as per new PM programming model, the legacy registers
which were there in OMAP3 are all shifted by 0x100 while new one's
are added from offset 0 to 0x10.
For OMAP4, the register offset appending of 0x100 done in devices.c
currently, is moved to driver file.This change fits in for current
implementation as well as once the driver undergoes hwmod adaptation.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Madhusudhan Chikkature <madhu.cr@ti.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap4 hsmmc: Fix the init if CONFIG_MMC_OMAP_HS is not set
Benoit Cousson [Fri, 1 Oct 2010 23:35:26 +0000 (16:35 -0700)]
omap4 hsmmc: Fix the init if CONFIG_MMC_OMAP_HS is not set

Avoid possible crash if CONFIG_MMC_OMAP_HS is not set

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Madhusudhan Chikkature <madhu.cr@ti.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP4 ES2: HSMMC soft reset change
Madhusudhan Chikkature [Fri, 1 Oct 2010 23:35:25 +0000 (16:35 -0700)]
OMAP4 ES2: HSMMC soft reset change

The omap4 es2 hsmmc has a updated soft reset logic.After the
reset is issued monitor a 0->1 transition first. The reset of
CMD or DATA lines is complete only after a 0->1->0 transition
of SRC or SRD bits.

Signed-off-by: Madhusudhan Chikkature <madhu.cr@ti.com>
Tested-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap: pandora: enable twl4030 charger
Grazvydas Ignotas [Fri, 1 Oct 2010 23:35:25 +0000 (16:35 -0700)]
omap: pandora: enable twl4030 charger

Add platform data to make use of newly added charging driver.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap: pandora: add fixed regulator for wlan
Grazvydas Ignotas [Fri, 1 Oct 2010 23:35:25 +0000 (16:35 -0700)]
omap: pandora: add fixed regulator for wlan

Instead of enabling the wifi module explicitly using GPIO, add a fixed
regulator and hook it to MMC host card power control. This way it will
only be enabled when SDIO subsystem wants to talk to it, saving power
(as done by Zoom boards).

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap2/3: Update revision identification
Sanjeev Premi [Fri, 1 Oct 2010 23:35:24 +0000 (16:35 -0700)]
omap2/3: Update revision identification

The existing definitions for cpu revision used
upper nibble in the bits[15:08]. With OMAP3630,
definitions use lower nibble.

This patch unifies the definitions to start
at lower nibble.

Signed-off-by: Sanjeev Premi <premi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap: Fix omap_mux_init_signal not to trash muxname
Tony Lindgren [Fri, 1 Oct 2010 23:35:24 +0000 (16:35 -0700)]
omap: Fix omap_mux_init_signal not to trash muxname

Otherwise the muxname passed to the function will get truncated.

Based on an earlier patch by rockefeller.lin@innocomm.com.

Reported-by: rockefeller.lin@innocomm.com
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP: PM: Fix build when CONFIG_PM_DEBUG isn't set
Loïc Minier [Mon, 27 Sep 2010 21:04:20 +0000 (23:04 +0200)]
OMAP: PM: Fix build when CONFIG_PM_DEBUG isn't set

Since 6cdee91257bee23a46dc869ca62469b67cba2c7e the references to
enable_off_mode and sleep_while_idle can't be resolved when CONFIG_PM_DEBUG
isn't set:
arch/arm/mach-omap2/built-in.o: In function `omap_uart_restore_context':
arch/arm/mach-omap2/serial.c:253: undefined reference to `enable_off_mode'
arch/arm/mach-omap2/built-in.o: In function `omap3_can_sleep':
arch/arm/mach-omap2/pm34xx.c:479: undefined reference to `sleep_while_idle'

Simply #define these in pm.h just like omap2_pm_debug.

Signed-off-by: Loïc Minier <loic.minier@linaro.org>
[khilman: moved down into existing #ifdef section]
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP3: CPUidle: remove redundant setting of PER next power state
Kevin Hilman [Fri, 1 Oct 2010 15:35:47 +0000 (08:35 -0700)]
OMAP3: CPUidle: remove redundant setting of PER next power state

When checking how to program the next powerstate for the PER
powerdomain, the next state of PER powerdomain was written twice.
Remove the duplicate write.

Reported-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agomanual merge for pm-hwmod-uart due to conflicts
Kevin Hilman [Fri, 1 Oct 2010 20:24:10 +0000 (13:24 -0700)]
manual merge for pm-hwmod-uart due to conflicts

14 years agoMerge branch 'pm-hwmod-wdog' into pm-hwmods
Kevin Hilman [Fri, 1 Oct 2010 20:24:09 +0000 (13:24 -0700)]
Merge branch 'pm-hwmod-wdog' into pm-hwmods

14 years agoOMAP3: SERIAL: Initialize all omap-uarts for zoom boards
Govindraj.R [Mon, 27 Sep 2010 14:51:05 +0000 (20:21 +0530)]
OMAP3: SERIAL: Initialize all omap-uarts for zoom boards

Initialize all omap-uarts for zoom boards.  Now zoom_peripheral_init
will initialise all uarts for 3630. 3630sdp_board_init call
zoom_peripheral_init so we can now remove serial_init from 3630sdp
board init as zoom_peripheral_init now will do that the same.

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP: SERIAL: Enable omap-serial driver in Kconfig
Govindraj.R [Mon, 27 Sep 2010 14:50:57 +0000 (20:20 +0530)]
OMAP: SERIAL: Enable omap-serial driver in Kconfig

Enable omap-serial driver in /mach-omap2/Kconfig and
move 8250 driver selection for zoom boards. With omap-serial
driver addition all omap-uarts can be handled with
omap-serial driver.

With addition of omap-serial driver console parameter
needs be changed in bootargs from ttyS* should be
replaced with ttyO* [O --> OMAP not ZERO]

For example: ttyS0[UART1 on 3430SDP] changes to ttyO0.

But with some boards that do not use omap-uart as console uart.
we need to handle them with 8250 driver. Ex: ZOOM2/3.
For zoom2/3 board we need to use 8250 serial driver and
console parameter will remain ttyS0 which basically uses
a Quad uart placed on the debug board connected through a
gpio line.

Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoserial: Add OMAP high-speed UART driver
Govindraj.R [Mon, 27 Sep 2010 14:50:49 +0000 (20:20 +0530)]
serial: Add OMAP high-speed UART driver

This patch adds driver support for OMAP2/3/4 high speed UART.

The driver is made separate from 8250 driver as we cannot
over load 8250 driver with omap platform specific configuration for
features like DMA, it makes easier to implement features like DMA and
hardware flow control and software flow control configuration with
this driver as required for the omap-platform.
This patch involves only the core driver and its dependent.

Cc: Tony Lindgren <tony@atomide.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP3: serial: Fix uart4 handling for 3630
Govindraj.R [Mon, 27 Sep 2010 14:50:41 +0000 (20:20 +0530)]
OMAP3: serial: Fix uart4 handling for 3630

This patch makes the following:
 - Adds missing wakeup padding register handling.
 - Fixes a hardcode to use PER module ONLY on UART3.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP3: PM: Add prepare idle and resume idle call for uart4
Govindraj.R [Mon, 27 Sep 2010 14:50:32 +0000 (20:20 +0530)]
OMAP3: PM: Add prepare idle and resume idle call for uart4

Add prepare idle and resume idle call for uart4 used by 3630.

Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs
Govindraj.R [Mon, 27 Sep 2010 14:50:25 +0000 (20:20 +0530)]
OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs

To standarize among other uarts (1 to 3), we shall now:

 - Enable uart4 autodile bit.
 - Enable uart4 wakeup in PER.
 - Allow uart4 to wakeup the MPU.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP clock: Add uart4_ick/fck definitions for 3630
Govindraj.R [Mon, 27 Sep 2010 14:50:17 +0000 (20:20 +0530)]
OMAP clock: Add uart4_ick/fck definitions for 3630

This is only valid for omap 36xx family of chips.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP: UART: use non-locking versions of hwmod enable/idle functions
Kevin Hilman [Mon, 27 Sep 2010 14:50:06 +0000 (20:20 +0530)]
OMAP: UART: use non-locking versions of hwmod enable/idle functions

Since the UART enable/idle is done during the idle path (with
interrupts disabled), use the non-locking versions of the hwmod
enable/idle functions.

Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP: UART: don't do automatic bus-level suspend/resume
Kevin Hilman [Mon, 27 Sep 2010 14:49:53 +0000 (20:19 +0530)]
OMAP: UART: don't do automatic bus-level suspend/resume

Since the omap_device for UART is currently managed inside the idle
path itself,  don't let the bus-level code suspend/resume the UART.

To prevent this, pm_runtime_get() is used when preparing for suspend
and pm_runtime_put() is used when finished with suspend.

Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP2: UART: remove set_uart_globals
Govindraj.R [Mon, 27 Sep 2010 14:49:46 +0000 (20:19 +0530)]
OMAP2: UART: remove set_uart_globals

Remove set_uart_globals function as this will not be needed as
physical address for uarts will be taken from hwmod data file.

Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP: UART: omap_device conversions, remove implicit 8520 assumptions
Kevin Hilman [Mon, 27 Sep 2010 14:49:38 +0000 (20:19 +0530)]
OMAP: UART: omap_device conversions, remove implicit 8520 assumptions

Major rework of OMAP UART init for omap_device conversion as well as
use with either 8250 driver or new omap-serial driver.

In preparation for a new omap-serial driver, remove 8250 assumptions
and dependencies from the serial core.

Convert UART core and PM support to use omap_device layer. Also add
support for both console on 8250 or omap-serial driver.

omap_device conversion:
- Convert clock API calls to omap_device calls
- Remove all static platform_data setup and configuration.  This is
  all done by the omap_device build phase.

Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP2/3: UART: add omap_hwmod data for UARTs 1-4
Kevin Hilman [Mon, 27 Sep 2010 14:49:30 +0000 (20:19 +0530)]
OMAP2/3: UART: add omap_hwmod data for UARTs 1-4

This patch adds omap_hwmod data for UARTs on OMAP2 and OMAP3
platforms.

UART4 support for 3630 and OMAP2 hwmod data added by Govindraj R.

Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP4: UART: Add uart1-4 hwmods data for omap4
Benoit Cousson [Mon, 27 Sep 2010 14:49:19 +0000 (20:19 +0530)]
OMAP4: UART: Add uart1-4 hwmods data for omap4

Add uart1-4 hwmod data into omap4_hwmod data file.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP: WDT: Use PM runtime APIs instead of clk FW APIs
Varadarajan, Charulatha [Thu, 23 Sep 2010 14:32:43 +0000 (20:02 +0530)]
OMAP: WDT: Use PM runtime APIs instead of clk FW APIs

Call runtime pm APIs pm_runtime_put_sync() and pm_runtime_get_sync()
for enabling/disabling the clocks, sysconfig settings instead of using
clock FW APIs.

Signed-off-by: Charulatha V <charu@ti.com>
Acked-by: Cousson, Benoit <b-cousson@ti.com>
Acked-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP: WDT: Split OMAP1 and OMAP2PLUS device registration
Varadarajan, Charulatha [Thu, 23 Sep 2010 14:32:42 +0000 (20:02 +0530)]
OMAP: WDT: Split OMAP1 and OMAP2PLUS device registration

This patch splits omap_init_wdt() into separate omap_init_wdt()
functions under mach-omap1 and mach-omap2 and set them up with
subsys_initcall.

Also it uses  omap_device_build() API instead of
platform_device_register() for watchdog timer device registration
for OMAP2plus chips.

For OMAP2plus chips, the device specific data defined in centralized
hwmod database will be used.

Signed-off-by: Charulatha V <charu@ti.com>
Acked-by: Cousson, Benoit <b-cousson@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP4: hwmod data: Add watchdog timer
Benoit Cousson [Thu, 23 Sep 2010 14:32:41 +0000 (20:02 +0530)]
OMAP4: hwmod data: Add watchdog timer

Add watchdog timer hwmod data for OMAP4 chip

Note: wd_timer3 in enabled in the hwmod list but it is
not yet supported by the watchdog driver.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Charulatha V <charu@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP2430: hwmod data: Add watchdog timer
Varadarajan, Charulatha [Thu, 23 Sep 2010 14:32:40 +0000 (20:02 +0530)]
OMAP2430: hwmod data: Add watchdog timer

Add watchdog timer hwmod data for OMAP2430 chip

Signed-off-by: Charulatha V <charu@ti.com>
Acked-by: Cousson, Benoit <b-cousson@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP2420: hwmod data: Add watchdog timer
Varadarajan, Charulatha [Thu, 23 Sep 2010 14:32:39 +0000 (20:02 +0530)]
OMAP2420: hwmod data: Add watchdog timer

Add watchdog timer hwmod data for OMAP2420 chip

Signed-off-by: Charulatha V <charu@ti.com>
Acked-by: Cousson, Benoit <b-cousson@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP3: hwmod data: Add watchdog timer
Varadarajan, Charulatha [Thu, 23 Sep 2010 14:32:38 +0000 (20:02 +0530)]
OMAP3: hwmod data: Add watchdog timer

Add watchdog timer hwmod data for OMAP3 chip

Signed-off-by: Charulatha V <charu@ti.com>
Acked-by: Cousson, Benoit <b-cousson@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP2+: defconfig: disable CPUfreq
Kevin Hilman [Tue, 28 Sep 2010 19:07:28 +0000 (19:07 +0000)]
OMAP2+: defconfig: disable CPUfreq

Disable CPUfreq since

1) is not yet supported in mainline, and
2) the current driver fails to suspend properly

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoOMAP2+: defconfig: modularize bluetooth, audio and WLAN
Kevin Hilman [Tue, 28 Sep 2010 19:07:29 +0000 (19:07 +0000)]
OMAP2+: defconfig: modularize bluetooth, audio and WLAN

In working towards a smaller default kernel, only devices used for
early boot should be built in.  Toward that end, build the following
as modules by default:

- bluetooth
- audio: ALSA, ASoC
- WLAN

Uncompressed kernel size comparison:

Before:
   text    data     bss     dec     hex filename
6557576  465088 5616024 12638688  c0d9e0 vmlinux

After:
   text    data     bss     dec     hex filename
5616572  436448 5610800 11663820  b1f9cc vmlinux

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoARM: OMAP3LOGIC: Added SMSC Ethernet board support
Tim Nordell [Mon, 27 Sep 2010 16:05:50 +0000 (16:05 +0000)]
ARM: OMAP3LOGIC: Added SMSC Ethernet board support

Enable SMSC911x Ethernet driver for LogicPD's OMAP
3530 LV SOM and OMAP 35x Torpedo board.

Signed-off-by: Tim Nordell <tim.nordell@logicpd.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoARM: OMAP3LOGIC: Add generic smsc911x support when connected to GPMC
Tim Nordell [Mon, 27 Sep 2010 16:05:49 +0000 (16:05 +0000)]
ARM: OMAP3LOGIC: Add generic smsc911x support when connected to GPMC

Introduce of a generic way to setup smsc911x based Ethernet
controller connected to GPMC similar to gpmc-smc91x but without
timing setup.

Signed-off-by: Tim Nordell <tim.nordell@logicpd.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoARM: OMAP3LOGIC: Adding SDMMC support
Tim Nordell [Mon, 27 Sep 2010 16:05:48 +0000 (16:05 +0000)]
ARM: OMAP3LOGIC: Adding SDMMC support

Add low-level initialization for hsmmc controller for
LogicPD's OMAP 3530 LV SOM and OMAP 35x Torpedo board.

Signed-off-by: Tim Nordell <tim.nordell@logicpd.com>
[tony@atomide.com: updated for the recent mmc platform init changes]
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoARM: OMAP3LOGIC: Adding LogicPD OMAP3 board support
Tim Nordell [Mon, 27 Sep 2010 16:05:47 +0000 (16:05 +0000)]
ARM: OMAP3LOGIC: Adding LogicPD OMAP3 board support

Adding support for LogicPD's OMAP 3530 LV SOM and
OMAP 35x Torpedo board.

Signed-off-by: Tim Nordell <tim.nordell@logicpd.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoarm: remove cast from void*
matt mooney [Tue, 28 Sep 2010 02:04:32 +0000 (19:04 -0700)]
arm: remove cast from void*

Unnecessary cast from void* in assignment.

Signed-off-by: matt mooney <mfm@muteddisk.com>
Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: cm-t3517: add support for TI HECC
Igor Grinberg [Tue, 21 Sep 2010 16:03:13 +0000 (16:03 +0000)]
omap3: cm-t3517: add support for TI HECC

add support for TI HECC.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: cm-t3517: add support for NAND flash
Igor Grinberg [Tue, 21 Sep 2010 16:03:12 +0000 (16:03 +0000)]
omap3: cm-t3517: add support for NAND flash

add support for NAND flash.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: cm-t3517: add support for usb host
Igor Grinberg [Tue, 21 Sep 2010 16:03:11 +0000 (16:03 +0000)]
omap3: cm-t3517: add support for usb host

add support for hsusb host ports 1, 2 and on-module usb hub.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: cm-t3517: add support for v3020 rtc
Igor Grinberg [Tue, 21 Sep 2010 16:03:10 +0000 (16:03 +0000)]
omap3: cm-t3517: add support for v3020 rtc

add support for v3020 rtc.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoomap3: Introduce CompuLab CM-T3517 module
Igor Grinberg [Tue, 21 Sep 2010 16:03:09 +0000 (16:03 +0000)]
omap3: Introduce CompuLab CM-T3517 module

Add basic suppot, enable uart and led.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
14 years agoMerge branch 'omap4_and_sdrc_2.6.27' of git://git.pwsan.com/linux-2.6 into omap-for...
Tony Lindgren [Mon, 27 Sep 2010 20:17:13 +0000 (13:17 -0700)]
Merge branch 'omap4_and_sdrc_2.6.27' of git://git.pwsan.com/linux-2.6 into omap-for-linus

14 years agoomap3: Prevent SDRC deadlock when L3 is changing frequency
Jon Hunter [Mon, 27 Sep 2010 20:02:59 +0000 (14:02 -0600)]
omap3: Prevent SDRC deadlock when L3 is changing frequency

When changing the L3 clock frequency, the CPU is executing from internal RAM
and the SDRC clock is disabled. During this time accesses made to external
DDR are stalled. If the ARM subsystem attempts to access the DDR while the
SDRC clock is disabled this will stall the CPU until the access to the SDRC
timeouts. A timeout on the SDRC should never occur. Once a timeout occurs all
the following accesses will be aborted and the DDR is no longer accessible.

Although the code being executed in the internal RAM does not directly access
the DDR, it was found that the branch prediction logic in the CPU may cause
the CPU to prefetch code from a DDR location while the SDRC clock is disabled.
This was causing an SDRC timeout which resulted in a system hang.

This patch fixes this problem by ensuring the branch prediction logic is
disabled while changing the L3 clock frequency. The branch prediction logic
is disabled by clearing the Z-bit in the ARM CTRL register.

Disabling the branch prediction logic does not have any noticable impact
on the execution time of this code section. The hardware observability
signals were used to monitor the sdrc idle time with and without this
patch when operating at different CPU frequencies (150MHz, 500MHz and
600MHz) and the total sdrc idle time when changing frequenct was in
the range of 9-11us. This was measured on an omap3430 SDP running the
omapzoom p-android-omap-2.6.29 branch.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
14 years agoomap4: control: Fix the control module register accesses
Santosh Shilimkar [Mon, 27 Sep 2010 20:02:58 +0000 (14:02 -0600)]
omap4: control: Fix the control module register accesses

This patch has multiple fixes together. To ensure that git bisect work across
commits, all changes are clubbed together

1. Move the common control base address to control core
2. Remove the manually coeded defines and use the ones from headers.
3. Fix the the status register define in id.c for OMAP4
4. Fix all the register define in hsmmc.c
5. Use the control pad accessor API for omap4 hsmmc register accesses

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoomap4: control: Add the register definition headers
Santosh Shilimkar [Mon, 27 Sep 2010 20:02:58 +0000 (14:02 -0600)]
omap4: control: Add the register definition headers

On OMAP4, control module is divided into 4 separate IPs
- OMAP44XX_CTRL_MODULE_CORE
- OMAP44XX_CTRL_MODULE_PAD_CORE
- OMAP44XX_CTRL_MODULE_WKUP
- OMAP44XX_CTRL_MODULE_PAD_WKUP

This patch adds all the omap4 control module register data and
includes them in the common control.h

The register data is autogenerated from the codebase thanks
to Benoit Cousson efforts

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoomap4: control: Add accessor api's for pad control module
Santosh Shilimkar [Mon, 27 Sep 2010 20:02:57 +0000 (14:02 -0600)]
omap4: control: Add accessor api's for pad control module

On OMAP4 control pad are not addressable from control
core base. So the common omap_ctrl_read/write APIs breaks
Hence export separate APIs to manage the omap4 pad control
registers.

This APIs will work only for OMAP4

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoomap4: control: Add ctrl_pad_base to omap_globals
Santosh Shilimkar [Mon, 27 Sep 2010 20:02:57 +0000 (14:02 -0600)]
omap4: control: Add ctrl_pad_base to omap_globals

On omap4 control module is divided in four IP blocks.
- CTRL_MODULE_CORE 0x4a002000
- CTRL_MODULE_PAD_CORE 0x4a100000
- CTRL_MODULE_WKUP 0x4a30c000
- CTRL_MODULE_PAD_WKUP 0x4a31e000

Addressing all the modules with single base address is not possible
considering 16 bit offsets. The mux code manages the pad core and pad
wakeup related base address inside the mux framework. For other usage
only control core and control pad bases are necessary. So this patch
maps only needed pad control base address which is used by device drivers
and infrastructure code

The main control core base is still kept same in this patch to
keep git-bisect working. This will be fixed in the relevant patch
in this series.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
14 years agoOMAP4: clocks: Fix ES2 clock issues
Benoit Cousson [Mon, 27 Sep 2010 20:02:56 +0000 (14:02 -0600)]
OMAP4: clocks: Fix ES2 clock issues

Fix a few OMAP4430 clock tree problems after the recent manual merge of the
various ES2 clock patches:

- usim optional clock and its parent had the same name, rename the parent
usim_fclk -> usim_ck

- OPTFCLKEN_CLK32K is not handled anymore by the USBPHYOCP2SCP module in ES2
Create a new clock that belongs to CM_ALWON_USBPHY_CLKCTRL register

This patch depends on some of the PRCM macro updates from Rajendra.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
[paul@pwsan.com: tweaked patch description]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Rajendra Nayak <rnayak@ti.com>
14 years agoOMAP4: powerdomain: Update DSS logic state for ES2
Rajendra Nayak [Mon, 27 Sep 2010 20:02:56 +0000 (14:02 -0600)]
OMAP4: powerdomain: Update DSS logic state for ES2

DSS on ES2 supports only OSWR, hence remove the support
for CSWR from the powerdomain framework.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Benoît Cousson <b-cousson@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP4: PM: Define additional registers for ES2
Rajendra Nayak [Mon, 27 Sep 2010 20:02:56 +0000 (14:02 -0600)]
OMAP4: PM: Define additional registers for ES2

4430 ES2 has a few new registers added and a few modified
from ES1. This patch adds all the register changes in PRM
and CM for OMAP4430 ES2.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Benoît Cousson <b-cousson@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>
14 years agoOMAP4: CM & PRM: Update PRCM register bitshifts and masks for ES2
Rajendra Nayak [Mon, 27 Sep 2010 20:02:55 +0000 (14:02 -0600)]
OMAP4: CM & PRM: Update PRCM register bitshifts and masks for ES2

This patch updates the PRM and CM register bitshifts and masks
for OMAP4430 ES2.0.

Replace as well the BITFIELD macro with the shift operator in order
to be consistent with the previous OMAP2 & 3 format.

Sort the register list in comments in order to have a consistent
register order and avoid futur change during code generation.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Benoît Cousson <b-cousson@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>