Commit Graph

354 Commits

Author SHA1 Message Date
Shawn Guo
db63a49383 ARM: mxs: add helper macro for pad control
This patch is to add pad control helper macro to make the code easy
to read.  The need is being seen when adding pad definitions for
LCDIF which gets ~30 pads to define.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-07 19:29:45 +01:00
Wolfram Sang
761b6d1a3e arm: mxs: add irq_chip-name for GPIO IRQs
Reported-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-07 19:29:32 +01:00
Sascha Hauer
2e8fd69614 ARM i.MX23/28: Add framebuffer device support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawn.guo@freescale.com>
2011-03-07 19:29:31 +01:00
Sascha Hauer
f0a523b5e5 video: Add i.MX23/28 framebuffer driver
changes since v2:

- use v3 and v4 for specifying the ip version instead of i.MX23/28.
  This is a better namespace when future versions are added.
- rename mach/fb.h to mach/mxsfb.h

changes since v1:
- Add a LCDC_ prefix to the register names.
- use set/clear registers where appropriate
- protect call to mxsfb_disable_controller() in mxsfb_remove()
  with a (host->enabled) as suggested by Lothar Wassmann

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: linux-fbdev@vger.kernel.org
2011-03-07 19:29:30 +01:00
Wolfram Sang
a77dd2aa92 arm: mxs: tx28: add i2c bus and connected RTC
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-07 19:29:18 +01:00
Wolfram Sang
30feed37f2 arm: mxs: add i2c-devices for mx28
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-07 19:29:17 +01:00
Lothar Waßmann
1cb59f9f79 ARM: mxs: Initial support for Ka-Ro TX28
Based on code created by Lothar Waßmann, Sascha Hauer, Wolfram Sang and
me.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2011-03-07 19:29:07 +01:00
Sascha Hauer
ccb24d50b7 ARM: mxs: Add missing EXPORT_SYMBOL for mxs_reset_block
It is used for example in the i2c driver which can be compiled modular.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2011-03-07 19:29:06 +01:00
Shawn Guo
a580b8c542 dmaengine: mxs-dma: add dma support for i.MX23/28
This patch adds dma support for Freescale MXS-based SoC i.MX23/28,
including apbh-dma and apbx-dma.

* apbh-dma and apbx-dma are supported in the driver as two mxs-dma
  instances.

* apbh-dma is different between mx23 and mx28, hardware version
  register is used to differentiate.

* mxs-dma supports pio function besides data transfer.  The driver
  uses dma_data_direction DMA_NONE to identify the pio mode, and
  steals sgl and sg_len to get pio words and numbers from clients.

* mxs dmaengine has some very specific features, like sense function
  and the special NAND support (nand_lock, nand_wait4ready).  These
  are too specific to implemented in generic dmaengine driver.

* The driver refers to imx-sdma and only a single descriptor is
  statically assigned to each channel.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2011-03-02 07:06:27 +05:30
Sascha Hauer
2301dfa7be ARM: mxs: Add pwm clocks and device registration
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2011-03-01 14:19:59 +01:00
Lothar Waßmann
f4b5d2b0d1 ARM: mxs: add a dma mask to fec devices
This is not strictly necessary but the right thing to do.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2011-03-01 14:19:57 +01:00
Lothar Waßmann
84082d665d ARM: mxs: free dma_mask in error path
This fixes a small memory leak that was only hit in very unlikely error
paths.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2011-03-01 14:19:55 +01:00
Uwe Kleine-König
bf0c11183f ARM: 6744/1: mxs: irq_data conversion
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Lennert Buytenhek <buytenh@secretlab.ca>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-02-23 16:22:18 +00:00
Shawn Guo
15808182ae ARM: mxs/mx28evk: add auart devices
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-17 12:03:11 +01:00
Shawn Guo
2e8acbc283 ARM: mxs/mx23evk: add auart device
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-17 12:03:11 +01:00
Shawn Guo
edca314f27 ARM: mx23: dynamically allocate mx23 auart device
i.MX23 Reference Manaul starts auart index from 1 than 0.  Changing
the index to start from 0 requires corresponding changes on base
address, irq, and iomux definitions, and will probably confuse people
who reads codes and hardware documents together.

This patch introduced the field 'hwid' to distinguish the driver id
and controller id.  These two ids are different on mx23 while
identical on mx28.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-17 12:03:10 +01:00
Shawn Guo
08ec1130d4 ARM: mx23: rename mx23 auart irq definition to align with mx28
i.MX23 Reference Manual names auart irq differently from i.MX28.
This patch is to align the naming with mx28, so that some device
registration codes can be shared.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-17 12:03:10 +01:00
Sascha Hauer
f19693a17c Merge commit 'v2.6.38-rc4' into imx-for-2.6.39
Conflicts:
	arch/arm/mach-mxs/clock-mx28.c

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-11 08:33:14 +01:00
Marc Kleine-Budde
22cbba1b82 ARM: mxs: dynamically register flexcan devices for mx28
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-03 15:11:19 +01:00
Marc Kleine-Budde
6ea038a777 ARM: mxs: adjust flexcan clock definition
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-03 15:11:18 +01:00
Uwe Kleine-König
014aaf6b15 ARM: mxs/imx28: remove now unused clock lookup "fec.0"
Commit b2878fa (ARM: mx28: update clock and device name for dual fec
support) added only the new lookups without removing the old one.

Cc: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-01 10:44:25 +01:00
Shawn Guo
303783aac8 ARM: mxs: fix clock base address missing
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-02-01 10:35:38 +01:00
Sascha Hauer
44b4ca32fe ARM i.MX28: remove reserved register defines
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
2011-01-28 08:28:57 +01:00
Sascha Hauer
d69934bc7b ARM i.MX23: remove reserved register defines
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
2011-01-28 08:28:52 +01:00
Sascha Hauer
0e8b462de0 ARM i.MX23/28: do not use complicated macros if not necessary
Get rid of ## preprocessor construct where it only makes the
code harder to read.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
2011-01-28 08:28:46 +01:00
Sascha Hauer
ef19660b0a ARM i.MX23/28: deobfuscate gpio initialization
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
2011-01-28 08:28:35 +01:00
Shawn Guo
376e9c5848 ARM: mxs: add initial pm support
This is a very initial pm support and basically does nothing.
With this pm support entry, drivers can start testing their own
pm functions.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-26 08:30:49 +01:00
Uwe Kleine-König
1f6b5dd41f ARM: mxs: acknowledge gpio irq
This fixes a machine hang after a gpio irq triggered.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-26 08:27:56 +01:00
Sascha Hauer
cf3567aaad ARM MXS: Add auart platform support for i.MX28
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-25 08:39:58 +01:00
Sascha Hauer
71b71518c7 ARM i.MX23: use correct register for setting the rate
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
2011-01-24 09:01:55 +01:00
Sascha Hauer
5080e9c981 ARM i.MX23/28: remove secondary field from struct clk. It's unused
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
2011-01-24 09:01:48 +01:00
Sascha Hauer
34d80730c3 ARM i.MX28: use correct register for setting the rate
_CLK_SET_RATE does not only handle the cpu clock but also other
clocks, so do not hardcode the HW_CLKCTRL_CPU register.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
2011-01-24 09:01:39 +01:00
Sascha Hauer
13be9f00c3 ARM i.MX28: fix bit operation
reg | (1 << clk->enable_shift) always evaluates to true. Switch it
to & which makes much more sense

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@freescale.com>
2011-01-24 09:01:04 +01:00
Shawn Guo
a320b2793d ARM: mxs/mx28evk: read fec mac address from ocotp
Read fec mac address from ocotp and save it into fec_platform_data
mac field for fec driver to use.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-21 11:36:49 +01:00
Shawn Guo
67f43086a2 ARM: mxs: add ocotp read function
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-21 11:36:49 +01:00
Sascha Hauer
b9214b9780 ARM mxs: clkdev related compile fixes
Since commit

	6d803ba (ARM: 6483/1: arm & sh: factorised duplicated clkdev.c)

platforms need to select CLKDEV_LOOKUP instead of COMMON_CLKDEV and need
to include <linux/clkdev.h>.

Cc: Shawn Guo <shawn.guo@freescale.com>
Cc: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-14 10:19:27 +01:00
Shawn Guo
dbc4245bb5 ARM: mxs: Change duart device to use amba-pl011
The mxs duart is actually an amba-pl011 device. This commit changes
the duart device code to dynamically allocate amba-pl011 device,
so that drivers/serial/amba-pl011.c can be used on mxs.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-12 14:47:15 +01:00
Shawn Guo
48f76ed1cc ARM: mx28: add the second fec device registration
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-11 13:59:39 +01:00
Shawn Guo
b2878fa41b ARM: mx28: update clock and device name for dual fec support
Change device name from "fec" to "imx28-fec", so that fec driver
can distinguish mx28.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-11 13:59:39 +01:00
Shawn Guo
1d3f33d541 ARM: mxs: Add build configuration for mxs
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:30:44 +01:00
Shawn Guo
4afbbb7c1b ARM: mxs: Add initial mx28evk support
Add initial mx28evk support with duart and fec0.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:30:43 +01:00
Shawn Guo
55cf4183d3 ARM: mxs: Add initial mx23evk support
Add initial mx23evk support with duart.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:30:29 +01:00
Shawn Guo
b9a2ada8ff ARM: mxs: Dynamically allocate fec devices
Dynamically allocate fec devices for MX28, which gets dual
fec interface.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:30:24 +01:00
Shawn Guo
dc38ad4052 ARM: mxs: Dynamically allocate duart devices
Dynamically allocate duart devices for MX23 and MX28.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:30:24 +01:00
Shawn Guo
faff3dc947 ARM: mxs: Add static memory mapping
Create static memory mapping for MX23 and MX28.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:30:23 +01:00
Shawn Guo
30a7585ff7 ARM: mxs: Add clock support
Add clock for MXS-based SoCs, MX23 and MX28.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:30:22 +01:00
Shawn Guo
bf985969e2 ARM: mxs: Add iomux support
MXS-based SoCs implements iomux functions in block PINCTRL.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:29:58 +01:00
Shawn Guo
fba311fcf0 ARM: mxs: Add gpio support
MXS-based SoCs implement gpio support in block PINCTRL.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:29:51 +01:00
Shawn Guo
4e472096fa ARM: mxs: Add timer support
There are 2 versions of the timrot on Freescale MXS-based SoCs.
The v1 on MX23 only gets 16 bits counter, while v2 on MX28
extends the counter to 32 bits.

The implementation uses two timers, one for clock_event and
another for clocksource. MX28 uses timrot 0 and 1, while MX23
uses 0 and 2.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:29:50 +01:00
Shawn Guo
41fa75bc09 ARM: mxs: Add low-level debug UART support
- DEBUG_LL support, which is incompatible with multi-soc MXS image
   because of different DUART base address on MX23 and MX28
 - uncompress message support

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 17:29:23 +01:00
Shawn Guo
289569f902 ARM: mxs: Add interrupt support
Add Interrupt Collector (ICOLL) support for MXS-based.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 10:37:56 +01:00
Shawn Guo
65d7d94405 ARM: mxs: Add reset routines
- The mxs wdog is implemented in RTC block.
 - There is a generic software reset routine for most modules on mxs.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-20 10:37:52 +01:00
Shawn Guo
fb410aef03 ARM: mxs: Add helper definition and function
Add helper definition and function for MXS-based.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-13 14:49:50 +01:00
Shawn Guo
b0b6e42aa6 ARM: mxs: Add core definitions
Add core definitions for MXS-based SoC MX23 and MX28.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2010-12-13 14:49:10 +01:00