9
0
Fork 0
Commit Graph

45 Commits

Author SHA1 Message Date
Sascha Hauer 2cf467ec07 ARM: i.MX: move esdctl device registration to soc_init
The esdctl devices are currently not in the devicetrees. this means
they are not registered when booting from the devicetree. Move the
device registration from soc_devices_init to soc_init which is called
even with devicetree support so that we get esdctl devices.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-08-20 11:02:40 +02:00
Sascha Hauer f887536147 ARM: i.MX: centralize i.MX startup
Each i.MX SoC has its own SoC initcall. To ease multi SoC support
move it to a single initcall.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-24 08:35:00 +02:00
Sascha Hauer 49e94a4211 ARM: i.MX51: Adjust IPG_CLK_DIVR to 6:1
The same value as used in Mainline and Freescale U-Boot. This might
increase the stability of i.MX51 boards. The 5:1 ratio we have in barebox
probably goes back to copy/paste from the i.MX53 code.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-18 09:02:20 +02:00
Sascha Hauer 6ce708895c ARM: i.MX51: Make imx51_init_lowlevel callable from early init
imx_silicon_revision() can't be used from early init context, so
use imx51_silicon_revision() instead.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-18 09:02:08 +02:00
Sascha Hauer dac1ff16bc ARM: i.MX51: Use IIM for detecting silicon revision
The IROM is located at physical address 0x0, so reading the
silicon revision from it leads to a NULL pointer dereference
if done too late when the MMU is already enabled. Use the IIM
instead which is also done in the Kernel. This limits the silicon
revisions to 2.0 and 3.0, but I assume the earlier versions are
not seen in the wild anyway.

This also moves the call to imx_set_silicon_revision() out of
imx51_silicon_revision() so that imx51_silicon_revision() can be called
in early init context.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-18 09:02:04 +02:00
Sascha Hauer 064fdcec9f Merge branch 'for-next/imx-oftree'
Conflicts:
	arch/arm/boards/freescale-mx51-pdk/board.c
2013-06-02 12:36:38 +02:00
Sascha Hauer 2307901376 ARM: i.MX51: PLL errata workaround
This is a port of the official PLL errata workaround from Freescale.
The PLL's in the i.MX51 processor can go out of lock due to a metastable
condition in an analog flip-flop when used at high frequencies.
This workaround implements an undocumented feature in the PLL (dither
mode), which causes the effect of this failure to be much lower (in terms
of frequency deviation), avoiding system failure, or at least decreasing
the likelihood of system failure.

This is based on U-Boot commit:

  commit 9db1bfa110ac411ab3468e817f7f74b2439eb8c8
  Author: David Jander <david@protonic.nl>
  Date:   Wed Jul 13 21:11:53 2011 +0000

    ARM: MX51: PLL errata workaround

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-30 12:19:30 +02:00
Sascha Hauer b276cf0ab6 ARM: i.MX51: skip devices register when devicetree is present
When we have a devicetree, do not register the platform devices.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-23 15:10:09 +02:00
Sascha Hauer 389785f106 ARM: i.MX53: Fix pll216 setup
The value for i.MX53 216MHz is actually 432MHz. Use the same value
as for i.MX51 which really corresponds to 216MHz. These are the same
PLL216 values as U-Boot uses.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-04 23:24:01 +02:00
Sascha Hauer 0994834462 ARM: i.MX: rename barebox_loc to bootsource
Rename the barebox_loc environment variable to bootsource, since
- barebox_loc is a mixture between abbriviation and fulltext which is not nice
- technically it describes the source the SoC has booted from. This is not
  necessarily barebox but could also be some other first stage loader.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-03 14:21:13 +02:00
Sascha Hauer 20f2dae6d2 ARM i.MX51: Add USB device functions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-13 22:18:47 +01:00
Sascha Hauer e8fa8b5ccf ARM i.MX5: move pll setup defines to header file
The pll setup function is exported, so it makes sense to export
the convenience wrappers for specific frequencies aswell.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:43:10 +01:00
Sascha Hauer 042a8c8d06 ARM i.MX: register esdctl controller device
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:43:09 +01:00
Robert P. J. Day 1b6041a662 mach-imx: Comment typo fix, "enviroment" -> "environment"
A couple trivial spelling fixes.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-11-19 10:14:11 +01:00
Sascha Hauer b1b76f6027 ARM i.MX: get rid of imx-regs.h
- remove now unused __REG definitions
- include individual SoC register files instead of imx-regs.h
- move IMX_GPIO_NR to generic.h
- finally remove imx-regs.h

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-17 20:22:02 +02:00
Sascha Hauer 09efce4ad3 Merge branch 'for-next/imx-work' into for-next/imx
Conflicts:
	arch/arm/mach-imx/imx1.c

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-17 08:49:18 +02:00
Sascha Hauer f36c792109 ARM i.MX: Print silicon revision in common place
Rather than doing this in the SoC specific code just print
it in imx_set_silicon_revision. This saves some lines of code
and also results in i.MX27 now also having the silicon revision
printed during startup.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-15 19:44:36 +02:00
Sascha Hauer a029e32d7f ARM i.MX: rework bootsource setting
This moves the known i.MX bootsource settings to a single file
so that the code can be shared. Also we add a enum for the different
boot sources so that it can be used in C Code and not only on the shell.
The pcm038 board is changed to use it instead of digging in the registers
manually.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-15 19:44:36 +02:00
Sascha Hauer cff3972712 ARM i.MX: Turn iomux-v3 into driver
To get proper resources allocated for it and to get rid of IMX_IOMUXC_BASE
usage.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-05 20:03:04 +02:00
Sascha Hauer 5003e4ddc8 ARM i.MX: streamline imx_silicon_revision
All i.MX SoCs now use the same imx_silicon_revision() function to get
the revision. Add a separate header file for it and a common function
used on all SoCs.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-05 20:03:01 +02:00
Sascha Hauer 83f87b14eb ARM i.MX: Add watchdog devices to SoCs
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-05 12:23:35 +02:00
Sascha Hauer ef38819eaa ARM i.MX5: Switch to common clk support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:56 +02:00
Sascha Hauer fcd2ece1c2 ARM i.MX51: Use defines rather than hardcoded addresses
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:53 +02:00
Sascha Hauer d1e65d2a7b Merge branch 'for-next/remove-fsf-address'
Conflicts:
	drivers/net/miidev.c
	include/miidev.h
2012-10-03 21:12:48 +02:00
Sascha Hauer 6a2262de50 ARM i.MX: implement clocksource as driver
To get rid of the register definitions in the SoC header files.
platform_device_id is used to distinguish between gpt types.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-09-17 18:14:37 +02:00
Sascha Hauer 77322aa896 Treewide: remove address of the Free Software Foundation
The FSF address has changed in the past. Instead of updating it
each time the address changes, just drop it completely treewide.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-09-17 10:57:41 +02:00
Sascha Hauer fdf74cafd6 ARM i.MX: Use platform_device_id for gpio driver
So we get the type of the gpio controller from the device

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-09-14 13:35:49 +02:00
Sascha Hauer b395e8bfb0 ARM i.MX: switch to gpiolib support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
2012-09-04 21:01:05 +02:00
Alexander Shiyan b2533ec18e i.MX51: Raise frequency for SDHC by switch to PLL2 source
Currently, both SDHC clock source is PLL3. We can raise clock
for SDHC driver by change source from PLL3 to PLL2.
Below, is debug ouputs with old and new settings.

Detection (PLL3):
set clock: wanted: 400000 got: 375000
Operation (PLL3):
set clock: wanted: 25000000 got: 18000000
Operation SD4.0 (PLL3):
set clock: wanted: 52000000 got: 27000000

Detection (PLL2):
set clock: wanted: 400000 got: 399639
Operation (PLL2):
set clock: wanted: 25000000 got: 23750000
Operation SD4.0 (PLL2):
set clock: wanted: 52000000 got: 41562500

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-05-25 08:39:43 +02:00
Alexander Shiyan 4ff04d6503 Merge silicon definitions i.MX35, i.MX51 and i.MX53
Also definition can be modified in arch/arm/boards/pcm043/lowlevel.c,
but I am not sure is we can call imx_silicon_revision() from
board_init_lowlevel().

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-04-19 08:47:49 +02:00
Alexander Shiyan f5e301340c i.MX51: Allow to pass cpu clock to lowlevel init
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-04-13 09:26:12 +02:00
Alexander Shiyan a50f9d5487 i.MX51: Removed 1000 MHz pll definition
i.MX51 operates at speeds up to 800 MHz.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-04-04 10:54:58 +02:00
Alexander Shiyan bba5f543de i.MX51: Use register names for imx_gpio_base
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-04-04 10:52:51 +02:00
Alexander Shiyan 1960730768 i.MX51: Added definition for 600 mHz PLL setup.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-04-02 10:03:06 +02:00
Sascha Hauer f762f4bf04 ARM i.MX51 lowlevel: setup full cpu speed unconditionally
What looked like a TO specific hack really is a hack for
older babbage boards. As the babbage code now handles this
correctly we can remove it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-03-23 11:33:03 +01:00
Alexander Shiyan 105c276faa i.MX51: Remove GPIO2.6 setup from lowlevel_init
Remove GPIO2.6 setup from lowlevel_init. It can be defined in board
initialization code if it necessary.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-03-17 17:20:58 +01:00
Sascha Hauer e9cff5cb4a ARM i.MX51: implement a imx51_lowlevel_init
Reimplement the code from lowlevel.S in C. It is run
from SDRAM anyway, so we can safely do this initialization
in a regular barebox environment instead in Assembly.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-02 15:00:28 +01:00
Sascha Hauer 597da1b76e Merge branch 'next' 2011-10-09 03:58:49 +02:00
Sascha Hauer 3ee7877a48 introduce io.h
To allow for some generic io accessors introduce io.h and use
this instead of asm/io.h throughout the tree.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-22 19:03:05 +02:00
Sascha Hauer e8d4f5a393 Merge branch 'next' 2011-08-26 16:24:56 +02:00
Sascha Hauer 5067d9bcb1 ARM i.MX51: set barebox_loc according to boot source
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-17 09:37:48 +02:00
Sascha Hauer 8ddfe5911d ARM i.MX51: Fix gpio1 base address
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-15 10:50:16 +02:00
Sascha Hauer 1bb8f6b047 ARM i.MX51: Add IIM support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-29 12:06:57 +02:00
Sascha Hauer fbad06735b ARM i.MX: Add basic i.MX51 support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-10-11 13:22:14 +02:00
Sascha Hauer f601b74d01 complete i.MX GPIO support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2009-12-10 12:15:01 +01:00