Mark Brown [Tue, 23 Feb 2010 11:05:11 +0000 (11:05 +0000)]
mx31ads: Configure SSI5 pins in IOMUX for PMIC module audio support
SSI5 on the CPU is connected to the PMIC module to provide audio support
so unconditionally configure the relevant pins on the CPU to route out
the signals.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Uwe Kleine-König [Mon, 15 Feb 2010 20:52:34 +0000 (21:52 +0100)]
arm/imx/iomux-v1: rename header file
Addionally make iomux-mx*.h headers stand-alone and similar to iomux-v3
platform files should include their platform iomux header from now on.
For now iomux.h simply includes all iomux-v1 platform headers and so
provides compatibility until all files are converted.
Uwe Kleine-König [Mon, 15 Feb 2010 19:50:57 +0000 (20:50 +0100)]
arm/imx/iomux-mx25: unify style and comment cleanup
- use __MACH_IOMUX_MX25_H__ as header protector analogous to
<mach/mx...h>
- remove doxygen comments
- remove #error about mach/iomux.h which is unused on mx25
- remove #ifndef __ASSEMBLY__ which is unneeded here
Now if the problem occurs that triggered the BUG_ON before, the machine
runs in a NULL pointer dereference. So it wouldn't be much harder now
to debug the situation if it occured.
arm/imx/gpio: GPIO_INT_{HIGH,LOW}_LEV are not necessarily constant
GPIO_INT_LOW_LEV is defined as
(cpu_is_mx1_mx2() ? 0x3 : 0x0)
so depending on compiler optimisation and enabled SoCs this doesn't
qualify as a constant expression as needed by a switch statement.
Ditto for GPIO_INT_HIGH_LEV.
arm/mx2: define seperate gpio port descriptions for imx21 and imx27
As the gpio ports have different addresses on imx21 and imx27 there are
two different port descriptions needed if not relying on the overloaded
cpp macro IO_ADDRESS. So some cpp magic is added to minimize code
duplication.
Uwe Kleine-König [Thu, 11 Feb 2010 15:31:49 +0000 (16:31 +0100)]
arm/mx2: use per-SOC nand device
The previous commit introduced one nand device per SoC. Use this
directly instead of the compatibility macro that will break for
multi-SoC kernels. And while at it remove the compatibility macro now
that all in-tree users are fixed.
Baruch Siach [Wed, 17 Feb 2010 10:33:23 +0000 (12:33 +0200)]
imxfb: add support for i.MX25
The commit also introduces the HAVE_FB_IMX config that is to be selected from
the MX25 platform config. Once this commit gets merged, the two other i.MX
archs, ARCH_MX1 and ARCH_MX2, should follow this one.
We noticed that we were only able to communicate once with a GSM module
per session, if we powered down the module then the serial driver was
broken until reset, no traffic or /proc/interrupts activity could be
seen any more.
Volker noticed it was provoked by a long "break" seen on the wire when
the RX was not driven during powerdown, we discovered we could kill the
serial driver just by forcing RX low extenally for a little while.
I saw that the processing for BREAK in the driver gets too excited and
clears down all set bits in USR2, including that a character is pending.
This stops all further characters getting processed.
The attached one-liner makes the serial driver immortal against BREAK.
Signed-off-by: Andy Green <andy.green@txtr.com> Signed-off-by: Volker Ernst <volker.ernst@txtr.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arm/mx2: define seperate imx_nand devices for imx21 and imx27
As the NFC controller has different addresses on imx21 and imx27 there
are two different devices needed if not relying on the overloaded cpp
macro NFC_BASE_ADDR. So some cpp magic is added to minimize code
duplication.
As obviously these two defines need different names, the name of the old
device is #defined to the new one when building for only one of imx21 or
imx27.
Sascha Hauer [Fri, 4 Dec 2009 08:34:51 +0000 (09:34 +0100)]
mxc: refactor timer code to use timer versions
Refactor the timer code into version 1 and version 2.
Essentially there are 2 versions of the timer hardware on Freescale MXC
hardware. Version 1 is found on MX1/MXL, MX21 and MX27. Version 2 is found on
MX25, MX31, MX35, MX37, MX51, and future parts.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Amit Kucheria <amit.kucheria@canonical.com>
Sascha Hauer [Thu, 4 Feb 2010 13:45:11 +0000 (14:45 +0100)]
i.MX ehci platform support: Some fixes
- The SIC mask is only 2bits wide, not 4
- MX31_OTG_PM_BIT and MX31_H1_PM_BIT use negative logic
- clear MX31_H1_DT_BIT and MX31_H2_DT_BIT so that they can be cleared,
not only set.
- return -EINVAL if called with an invalid controller number
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Cc: Daniel Mack <daniel@caiaq.de>
Uwe Kleine-König [Wed, 13 Jan 2010 17:07:11 +0000 (18:07 +0100)]
mxc91231: use MXC91231_IO_ADDRESS instead of MXC91231_AIPS1_IO_ADDRESS
Apart from MXC91231_IO_ADDRESS itself this was the only usage of
MXC91231_AIPS1_IO_ADDRESS. Now MXC91231_IO_ADDRESS can be recoded with
IMX_IO_ADDRESS and all helper macros can go away.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Russell King <linux@arm.linux.org.uk> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Daniel Schaeffer <daniel.schaeffer@timesys.com> Cc: Alberto Panizzo <maramaopercheseimorto@gmail.com> Cc: Ivo Clarysse <ivo.clarysse@gmail.com>
Uwe Kleine-König [Mon, 11 Jan 2010 10:37:24 +0000 (11:37 +0100)]
mx1: prefix SOC specific defines with MX1_ and deprecate old names
The old names are defined only if the cpp symbol
IMX_NEEDS_DEPRECATED_SYMBOLS exists, which is defined (for now) for all
files below arch/arm/mach-mx1.
This was done earlier for mx2 and mx3, too.
USBD_INT0 is for now defined unconditionally to prevent breaking
drivers/usb/gadget/imx_udc.
While at it use IMX_IO_ADDRESS to define MX1_IO_ADDRESS which
adds a cast to the IO_ADDRESS macro fixing many warnings like
arch/arm/mach-mx1/generic.c:51: warning: passing argument 1 of 'mxc_init_irq' makes pointer from integer without a cast
Baruch Siach [Mon, 25 Jan 2010 10:58:21 +0000 (12:58 +0200)]
mx25: fix time accounting
The gpt_clk rate function doesn't consider the PER divider. This causes a
significant drift in time accounting. Fix this by introducing the correct rate
calculation function.
Mark Brown [Mon, 11 Jan 2010 16:33:18 +0000 (16:33 +0000)]
MXC: Add AUDMUXv2 register decode to debugfs
Since AUDMUX configuration appears to be one of the common stumbling
blocks for people setting up i.MX audio try to provide some diagnostic
information describing the current setup to assisist people in working
out what's going on.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
imx: define functions to configure chip selects in the WEIM
This has the addional effect that the macros CSCR_U, CSCR_L and CSCR_A
are not used anymore in mach-pcm038.c and mach-qong.c. These still use
the deprecated IO_ADDRESS macro and shouldn't be used in new code.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Russell King <linux@arm.linux.org.uk> Cc: Holger Schurig <hs4233@mail.mn-solutions.de> Cc: Dmitriy Taychenachev <dimichxp@gmail.com>
This include isn't needed and hurts when defining static inline
functions in mach/hardware.h (or files included by mach/hardware.h).
The reason is that the consumers of mach/uncompress.h are compiled using
-Dstatic= so the code for all inline function is included in e.g.
arch/arm/boot/compressed/misc.o.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Russell King <linux@arm.linux.org.uk> Cc: Jörg Knobloch <knobloch@incostartec.com> Cc: Alan Carvalho de Assis <acassis@gmail.com> Cc: Daniel Mack <daniel@caiaq.de> Cc: Dmitriy Taychenachev <dimichxp@gmail.com>