Commit Graph

15071 Commits

Author SHA1 Message Date
Arnaud Patard (Rtp) 4c4cbce68f ARM: mx5: fix clock usage for suspend
While suspending, we're enabling a clock in ->suspend() but we're in atomic
context, leading to this :

[30803.667305] PM: late suspend of devices complete after 1.237 msecs
[30803.667449] BUG: sleeping function called from invalid context at kernel/mutex.c:271
[30803.667464] in_atomic(): 0, irqs_disabled(): 128, pid: 4941, name: pm-suspend
[30803.667474] INFO: lockdep is turned off.
[30803.667483] irq event stamp: 0
[30803.667489] hardirqs last  enabled at (0): [<  (null)>]   (null)
[30803.667503] hardirqs last disabled at (0): [<c001e4a8>] copy_process.part.48+0x1e0/0xa7c
[30803.667543] softirqs last  enabled at (0): [<c001e4a8>] copy_process.part.48+0x1e0/0xa7c
[30803.667562] softirqs last disabled at (0): [<  (null)>]   (null)
[30803.667574] Backtrace:
[30803.667611] [<c0010e00>] (dump_backtrace+0x0/0x110) from [<c0424c00>] (dump_stack+0x18/0x1c)
[30803.667624]  r6:00000000 r5:00000000 r4:d9648000 r3:d9648000
[30803.667652] [<c0424be8>] (dump_stack+0x0/0x1c) from [<c0424eec>] (__might_sleep.part.101+0x90/0xa8)
[30803.667673] [<c0424e5c>] (__might_sleep.part.101+0x0/0xa8) from [<c001a5c4>] (__might_sleep+0x80/0x94)
[30803.667686]  r4:c05d58c0
[30803.667705] [<c001a544>] (__might_sleep+0x0/0x94) from [<c043230c>] (mutex_lock_nested+0x2c/0x30c)
[30803.667735] [<c04322e0>] (mutex_lock_nested+0x0/0x30c) from [<c0017834>] (clk_enable+0x28/0x50)
[30803.667747]  r8:c0438464 r7:00000003 r6:00000000 r5:00000000 r4:c05d2e98
[30803.667780] [<c001780c>] (clk_enable+0x0/0x50) from [<c0017260>] (mx5_suspend_enter+0x1c/0x98)
[30803.667792]  r4:00000003 r3:c060dfe0
[30803.667821] [<c0017244>] (mx5_suspend_enter+0x0/0x98) from [<c0059b48>] (suspend_enter+0xec/0x15c)
[30803.667833]  r4:00000003 r3:c0017244
[30803.667856] [<c0059a5c>] (suspend_enter+0x0/0x15c) from [<c0059c4c>] (suspend_devices_and_enter+0x94/0x130)
[30803.667868]  r6:00000000 r5:00000003 r4:c0c0af00 r3:00002710
[30803.667897] [<c0059bb8>] (suspend_devices_and_enter+0x0/0x130) from [<c0059db0>] (enter_state+0xc8/0x130)
[30803.667909]  r6:00000000 r5:00000003 r4:c05286e4
[30803.667934] [<c0059ce8>] (enter_state+0x0/0x130) from [<c00592d4>] (state_store+0xac/0xc0)
[30803.667945]  r6:00000003 r5:00000003 r4:df39d000 r3:00000003
[30803.667978] [<c0059228>] (state_store+0x0/0xc0) from [<c01b0100>] (kobj_attr_store+0x1c/0x28)
[30803.668009] [<c01b00e4>] (kobj_attr_store+0x0/0x28) from [<c00e435c>] (sysfs_write_file+0x88/0xbc)
[30803.668032] [<c00e42d4>] (sysfs_write_file+0x0/0xbc) from [<c0091fa0>] (vfs_write+0xbc/0x138)
[30803.668051] [<c0091ee4>] (vfs_write+0x0/0x138) from [<c0092204>] (sys_write+0x44/0x70)
[30803.668062]  r8:00000000 r7:00000004 r6:00000003 r5:002694d0 r4:d966acc0
[30803.668094] [<c00921c0>] (sys_write+0x0/0x70) from [<c000db00>] (ret_fast_syscall+0x0/0x3c)
[30803.668106]  r9:d9648000 r8:c000dcc4 r6:00000001 r5:002694d0 r4:00000003
[30803.669927] PM: early resume of devices complete after 0.972 msecs

Just move the clk_enable/disable in ->prepare() and ->finish()

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2011-10-07 21:42:44 +02:00
Sascha Hauer ca4e419c20 Merge branches 'features/assorted', 'features/imx-pata' and 'features/imx-multi-irq-v2' into imx-features
Conflicts:
	arch/arm/plat-mxc/avic.c
	arch/arm/plat-mxc/include/mach/common.h

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-29 10:40:29 +02:00
Sascha Hauer 05822c83d2 ARM i.MX entry-macro.S: remove now unused code
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-26 11:40:36 +02:00
Sascha Hauer ffa2ea3f5d ARM i.MX boards: use CONFIG_MULTI_IRQ_HANDLER
Also, add handle_irq callbacks to machine descriptors.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-26 11:40:36 +02:00
Sascha Hauer 58a926008c ARM i.MX tzic: add handle_irq function
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-26 11:40:35 +02:00
Sascha Hauer b6de943bdf ARM i.MX avic: add handle_irq function
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-26 11:40:35 +02:00
Jason Liu 6132ae8154 ARM: mx25: Add the missing IIM base definition
This fix the mx25 building issue of no IIM base definition

Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-23 08:44:50 +02:00
Hui Wang 3439a397a8 ARM i.MX avic: convert to use generic irq chip
Convert i.MX avic irq handler to use generic irq chip. This not only
provides a cleanup implementation of irq chip handler, but also
implements suspend/resume interface with the help of generic irq chip
interface.

Change mxc_irq_chip to a new structure mxc_extra_irq to handle fiq
and priority functions.

Signed-off-by: Hui Wang <jason77.wang@gmail.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-23 08:32:14 +02:00
Philippe Rétornaz 40d97b89bd mx31moboard: Add poweroff support
This patch add poweroff support on mx31moboard platform.
A watchdog timeout is generated while enabling the watchdog
reset IO to trigger a PMIC poweroff.

Signed-off-by: Philippe Rétornaz <philippe.retornaz@epfl.ch>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-20 14:53:00 +02:00
Fabio Estevam bbb433639c ARM: mach-qong: Add watchdog support
Add watchdog support for mach-qong target.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by : Stefano Babic <sbabic@denx.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-20 09:41:12 +02:00
Arnaud Patard (Rtp) 600ea5cd76 efika: Configure esdhc cd/wp on efika mx/sb
Update sdhc support on efika to make use of the latest mmc fixes.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-27 20:31:41 +02:00
Arnaud Patard (Rtp) 318007e900 Fix pata imx resource
Commit 236c4e8be4
"ARM: imx: Add PATA resources for other i.MX processors"
has broken resource declaration of pata_imx device by using iobase instead of
iosize.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-27 20:31:06 +02:00
Sascha Hauer e93aabb552 Merge branches 'features/assorted', 'features/imx-cpurev', 'features/imx-pata', 'features/multisoc' and 'features/mxs' into imx-features-for-arnd 2011-08-26 10:10:12 +02:00
Fabio Estevam 91dcc7f437 ARM: mach-imx/mx25_3ds: Add FlexCAN support
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 10:08:04 +02:00
Jason Liu e4bb9361de ARM: i.MX: initialize l2x0 at early_init time
This can make the l2 cache work at early time which
will benefit the boot up time.

Tested on i.mx31pdk board, test result shows:

Before: arch_initcall(mxc_init_l2x0);

[    0.558755] console [ttymxc0] enabled

After: early_initcall(mxc_init_l2x0);

[    0.555716] console [ttymxc0] enabled

Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 08:52:36 +02:00
Jason Liu c52c983551 ARM: mx5: use generic function for displaying silicon revision
Update to use generic function for displaying silicon revision

Tested on my mx53 loco board:
CPU identified as i.MX53, silicon rev 2.0

Test on my mx51 babbage board:
CPU identified as i.MX51, silicon rev 3.0

Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 08:51:00 +02:00
Jason Liu 8d75a2620d ARM: mx35: use generic function for displaying silicon revision
update to use generic function for displaying silicon revision

Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 08:50:59 +02:00
Jason Liu ab116a86fa ARM: mx31: use generic function for displaying silicon revision
Update to use generic function for displaying silicon revision

Tested on mx31pdk board as print the following information:
CPU identified as i.MX31, silicon rev 2.0

Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 08:50:59 +02:00
Jason Liu 3f5492c513 ARM: mx27: Print silicon revision on boot
Silicon revision is useful information to have during kernel boot.

Print the MX27 silicon revision.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 08:50:58 +02:00
Jason Liu d27536c661 ARM: mx25: Print silicon revision on boot
Silicon revision is useful information to have during kernel boot.
Print the MX25 silicon revision.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 08:50:58 +02:00
Fabio Estevam 059e58f6f3 ARM: imx: Introduce generic function for displaying silicon revision
Currently each i.MX processor has its own function for displaying the silicon
revision.

Introduce a generic function for this purpose, so that all i.MX processors can
reuse it.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Jason Liu <jason.hui@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-26 08:50:58 +02:00
Sascha Hauer f32609c5a0 ARM i.MX defconfigs: use one defconfig for all ARMv4/v5 SoCs
Now that we can compile all ARMv4/v5 based i.MX SoCs into a single
kernel, update the defconfigs accordingly

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-25 08:53:48 +02:00
Sascha Hauer 06965c39b4 ARM i.MX5: update defconfig
Rename it from mx51_defconfig to mx5_defconfig since the i.MX53
is now supported aswell. Also, remove the DEBUG_LL and enable
some more drivers useful for i.MX5 boards. For supporting
1GiB of SDRAM vmsplit 2/2 is enabled.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-25 08:52:53 +02:00
Fabio Estevam 2f81b4d977 ARM: mx53_loco: Add support for the accelerometer
mx53_loco has a MMA8450 accelerometer connected to i2c0.

Add support for it.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-25 08:42:38 +02:00
Fabio Estevam d5534ba6c7 ARM: imx: Define functions for registering PATA
Define functions for registering PATA on MX27/MX31/MX35/MX53.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-24 18:13:34 +02:00
Fabio Estevam 03b20b07be ARM: imx: Add PATA clock support
Add PATA clock support for MX27/MX31/MX35/MX53.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-24 10:12:00 +02:00
Fabio Estevam 236c4e8be4 ARM: imx: Add PATA resources for other i.MX processors
MX27/31/35/53 also have PATA block.

Add PATA resources for them.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-24 10:11:40 +02:00
Fabio Estevam 97f453136e ARM: imx: pwm: Add support for MX53
Instead of adding the check for MX53 CPU type, use the negative logic and let
PWM to be configured for MX53 as well.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-24 10:10:41 +02:00
Sascha Hauer 7409cd1cd5 ARM i.MX: allow to compile together all i.MX5 based SoCs
For this we need CONFIG_AUTO_ZRELADDR and CONFIG_ARM_PATCH_PHYS_VIRT.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-24 09:24:50 +02:00
Sascha Hauer ae4fa7f66e ARM i.MX: allow to compile together ARMv4 and ARMv5 based SoCs
For this we need CONFIG_AUTO_ZRELADDR and CONFIG_ARM_PATCH_PHYS_VIRT.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-24 09:24:43 +02:00
Wolfram Sang 87d022cc49 arm: mach-mxs: add rtc to all boards
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Tested-by: Shawn Guo <shawn.guo@freescale.com> (for mx23evk and mx28evk)
2011-08-23 08:56:15 +02:00
Wolfram Sang a4de0424a1 arm: mach-mxs: add device for rtc
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Tested-by: Shawn Guo <shawn.guo@freescale.com>
2011-08-23 08:56:15 +02:00
Wolfram Sang e55e48ff69 arm: mxs: mx28evk: add fixed regulators for audio
Add these fixed regulators to enable basic audio-support until full regulator
support is done.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
2011-08-23 08:56:14 +02:00
Dong Aisheng b00d533ebc ARM: mxs: correct the using of frac div for saif
According to spec, set to 1 is the enable of fractional devide
or the clock can not be generated properly.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
2011-08-23 08:56:14 +02:00
Dong Aisheng ce9b8e6f9f ARM: mxs: add mxs-sgtl5000 device
Signed-off-by: Dong Aisheng <b29396@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
2011-08-23 08:56:14 +02:00
Dong Aisheng 074c54f422 ARM: mxs: add sgtl5000 i2c device
Signed-off-by: Dong Aisheng <b29396@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
2011-08-23 08:56:13 +02:00
Dong Aisheng c8ebcac823 ARM: mxs: add saif device
Signed-off-by: Dong Aisheng <b29396@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
2011-08-23 08:56:13 +02:00
Dong Aisheng cf66ea8e14 ARM: mxs: add saif clock
Set pll0 as parent.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
2011-08-23 08:56:13 +02:00
Arnaud Patard (Rtp) d8f4059bf9 imx: efika: Enable pata.
Enable pata support on efika mx/sb platforms.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-23 08:55:03 +02:00
Arnaud Patard (Rtp) 5bc59bff8c imx51: add pata clock
Define the clock used by the imx51 pata device.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-23 08:55:02 +02:00
Arnaud Patard (Rtp) a45adf1ce8 imx51: add pata device
Declare the pata device found on mx51

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-23 08:55:01 +02:00
Linus Torvalds c44efbaa0e Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (32 commits)
  ARM: mmp: Change the way we use timer 0 as clockevent timer.
  ARM: mmp: Switch to using timer 1 as clocksource timer.
  ARM: mmp: Also start timer 1 on boot.
  ARM: pxa168/gplugd: free correct GPIO
  ARM: pxa168/gplugd: get rid of mfp-gplugd.h
  ARM: pxa: fix logic error in PJ4 iWMMXt handling
  mach-sa1100: fix PCI build problem
  omap: timer: Set dmtimer used as clocksource in autoreload mode
  OMAP3: am3517crane: remove NULL board_mux from board file
  arm: mach-omap2: mux: use kstrdup()
  arch:arm:plat-omap:iovmm: remove unused variable 'va'
  Update Nook Color machine 3284 to common Encore name
  am3505/3517: Various platform defines for UART4
  OMAP: hwmod: fix build break on non-OMAP4 multi-OMAP2 builds
  OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds
  iMX: Fix build for iMX53
  ARM: mx5: board-cpuimx51.c fixup irq_to_gpio() usage
  OMAP2+: PM: SmartReflex: use put_sync_suspend for IRQ-safe disabling
  OMAP3: beagle: don't touch omap_device internals
  OMAP1: enable GENERIC_IRQ_CHIP
  ...
2011-08-12 20:42:02 -07:00
Arnd Bergmann 696314cf53 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into fixes 2011-08-12 20:37:43 +02:00
Arnd Bergmann 419bb4e064 Merge branch 'fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into fixes 2011-08-12 15:49:38 +00:00
Arnd Bergmann 143ed290f0 Merge branch 'imx-fixes-for-arnd' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes 2011-08-12 15:45:44 +00:00
Lennert Buytenhek af9dafb1dc ARM: mmp: Change the way we use timer 0 as clockevent timer.
Instead of setting up a match interrupt for 'current_time + delta'
on ->set_next_event(), program timer 0 to count down from 'delta - 1'
and trigger an interrupt when it reaches zero.

Signed-off-by: Lennert Buytenhek <buytenh@laptop.org>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2011-08-11 10:10:46 +08:00
Lennert Buytenhek 71c0c34140 ARM: mmp: Switch to using timer 1 as clocksource timer.
Signed-off-by: Lennert Buytenhek <buytenh@laptop.org>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2011-08-11 10:10:45 +08:00
Lennert Buytenhek 7ce5ae39c4 ARM: mmp: Also start timer 1 on boot.
Currently, arch-mmp/time.c uses timer 0 both as a clocksource timer
and as a clockevent timer, the latter by setting up a comparator
interrupt to match on 'current_time + delta'.  This is problematic
if delta is small enough, as that can lead to 'current_time + delta'
already being in the past when comparator setup has finished, leading
to the requested event not triggering.

As there is also a silicon issue that requires stopping a timer's
counter while writing to one of its match registers, we'll switch to
using two separate timers -- timer 0 as clockevent timer, which we'll
start and stop on every invocation of ->set_next_event(), and timer 1
as clocksource timer, which will be free-running.

This first patch enables timer 1 on boot, so that we can use it as
clocksource timer.

Signed-off-by: Lennert Buytenhek <buytenh@laptop.org>
Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2011-08-11 10:10:44 +08:00
Tanmay Upadhyay 4c22ea8f44 ARM: pxa168/gplugd: free correct GPIO
Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2011-08-11 10:10:43 +08:00
Tanmay Upadhyay 3647a40f36 ARM: pxa168/gplugd: get rid of mfp-gplugd.h
Move definitions from mfp-gplugd.h to mfp-pxa168.h as they aren't
gplugD specific.

Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2011-08-11 10:10:43 +08:00