9
0
Fork 0
Commit Graph

61 Commits

Author SHA1 Message Date
Lucas Stach 0dd421f272 arm: imx6: add cpu lowlevel init function
Enables all relevant errata workarounds for the
i.MX6 SoC.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2014-06-26 08:05:21 +02:00
Sascha Hauer 964966be6a ARM: i.MX6: Add Nand boot bbu handler
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2014-04-03 07:56:25 +02:00
Sascha Hauer 8cd342fb77 ARM: i.MX6: Add ocotp driver
The only functionality at the moment is to register a MAC Address for
an ethernet device.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-22 16:17:19 +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 579b794b5d Merge branch 'for-next/of'
Conflicts:
	arch/arm/mach-imx/Makefile
2013-05-06 09:30:37 +02:00
Sascha Hauer 32dc070fd4 pinctrl: move imx-iomux-v1 to drivers/pinctrl/
For consistency reasons.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-23 09:48:25 +02:00
Sascha Hauer e2f9687c02 pinctrl: move imx-iomux-v2 to drivers/pinctrl/
For consistency reasons.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-23 09:47:24 +02:00
Sascha Hauer e20ee612d8 pinctrl: switch i.MX iomux-v3 support to pinctrl
This switches the iomux-v3 (found on i.MX25,35,51,53,6) to pinctrl
support. The old SoC specific API is kept for compatibility. The
pinctrl devicetree support is enabled automatically when OFDEVICE
support is available.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-23 09:46:32 +02:00
Alexander Shiyan 6c9bc19df2 ARM: i.MX: Move GPIO driver to drivers/gpio
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-22 18:56:50 +02:00
Sascha Hauer ab5f6c463c Merge branch 'for-next/imx-realq7'
Fix realq7 compilation
2013-04-04 14:20:05 +02:00
Sascha Hauer 1512479a6e ARM: i.MX: Add bbu handler for external NAND boot
The external NAND boot code currently does not handle bad blocks
correctly on 2k NAND flashes. This patch adds a barebox_update
handler for external NAND boot which embeds a Bad block table in
the flashed image. The boot code will skip bad blocks found in
this bad block table then.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-12 11:04:33 +01:00
Sascha Hauer 09a2a3aacd ARM i.MX6: Add mmdc calibration support
This adds support for the various DDR calibration functions in the
i.MX6 MMDC.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-11 09:16:41 +01:00
Jean-Christophe PLAGNIOL-VILLARD 0d8ce86780 switch boards to lwl-y
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-21 14:42:51 +01:00
Sascha Hauer f2a8e35898 ARM i.MX boards: switch to barebox_arm_entry
Most i.MX boards can use the imx*_barebox_entry functions. The remaining
(i.MX21, i.MX6) use hardcoded base addresses.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-04 15:52:39 +01:00
Sascha Hauer 744696bbfc ARM i.MX: add esdctl-v4 support
This adds support for initializing DDR3 RAMs on the i.MX53 type
SDRAM controller. The code automatically detects size/layout of
the connected RAM, detects the bus width and which chipselects are
populated.
While I believe this code is not 100% generic, it is far too
sophisticated to stay in a single board directory. I'm sure
other boards could make use of this aswell.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:43:10 +01:00
Sascha Hauer 4fa54b7e5d ARM i.MX: Add driver to get sdram base and size
The code initializing the SDRAM controller is not at the same
place where SDRAM is registered with barebox. To reduce the
risk of registering wrong SDRAM sizes this patch adds a
driver for the ESDCTL which reads back the configured SDRAM
size and registers the memory found with barebox.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:43:08 +01:00
Sascha Hauer f207ca79a0 ARM i.MX: Add barebox update handler for internal boot
This adds support for an update handler for internal boot. Currently
handled are:

- v1 MMC/SD
- v2 MMC/SD
- v2 NAND

where v1 is found on i.MX25, i.MX35 and i.MX51. v2 is found on i.MX53.

This code intentionally does not use the DCD data compiled into every
i.MX internal boot image. This makes it possible to make a pure second
stage barebox bootable on i.MX internal boot devices later.

This has been tested on the i.MX51 babbage, i.MX53 loco and i.MX53 tx53
board.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-17 20:23:42 +02:00
Sascha Hauer 4ad34853f1 ARM i.MX53: enable imx53_init_lowlevel for pbl
The KARO Tx53 board in the revision 8030 has an instable SDRAM
setup. It works as long as the MMU is disabled, but the board
crashes at arbitrary places once the MMU gets enabled. So we
need the PLL setup early. Enable it for pbl.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-17 20:22:58 +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 2155bc5ba8 ARM i.MX: move reset source detection code
- for i.MX1 the register is in the System Control unit, so move
  the code to arch/arm/mach-imx/imx1.c
- for the other i.MX the register is in the watchdog unit, so move
  the code to drivers/watchdog/imxwd.c

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-08 21:41:36 +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 d4edd480b2 ARM i.MX: Remove old clock support
The old clock support is now unused. Remove it. The former i.MX clko
command is superseeded by generic clock manipulation commands.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:57 +02:00
Sascha Hauer b01f7e13b7 ARM i.MX35: Switch to common clk
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:56 +02:00
Sascha Hauer 018a986393 ARM i.MX21: Switch to common clk
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:56 +02:00
Sascha Hauer 555a1ff0c3 ARM i.MX6: Switch to common clk
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:56 +02:00
Sascha Hauer 44947a3bcd ARM i.MX31: Switch to common clk
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:56 +02:00
Sascha Hauer 13ccfddded ARM i.MX1: Switch to common clk support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:56 +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 3e40a76cba ARM i.MX25: Switch to common clk support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:55 +02:00
Sascha Hauer c422abc4e5 ARM i.MX27: implement clk support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:55 +02:00
Sascha Hauer 809549b1bf ARM i.MX: initial clk support
This adds the basic i.MX common clk support and some pll and pfd
drivers.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-04 15:19:55 +02:00
Sascha Hauer bed1a6ffab Merge branch 'for-next/pbl' 2012-09-05 12:59:29 +02:00
Steffen Trumtrar ab283d10be ARM i.MX6: enable usbphy1
Add a function to take the usbphy1 through its initialization procedure.
The imx6_usb_phy1_disable_oc function is needed at least on the sabrelite,
as the power design is faulty. The state on other imx6 boards is unknown,
therefore it is an extra function call at the moment.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-08-31 09:28:58 +02:00
Sascha Hauer 95423f8af2 ARM boards: Make boards pbl safe
With pbl support enabled most boards need a pbl-y for their lowlevel
stuff.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2012-08-12 22:23:22 +02:00
Sascha Hauer 2935411dea Merge branch 'for-next/reset-source' 2012-08-01 17:49:27 +02:00
Sascha Hauer 1c01f8c273 ARM i.MX: rename internal-nand-boot.c to external-nand-boot.c
Because that's what it is.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-07-25 09:27:28 +02:00
Juergen Beisert 67e4d52b40 ARM/i.MX: add support to detect the reset source
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-07-18 16:21:43 +02:00
Sascha Hauer 2e7db33d4b ARM: add initial i.MX6 support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-04-24 10:31:44 +02: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 1679cebce7 ARM i.MX5: prepare to add a imx51_lowlevel_init
- move code which can be shared between i.MX53 and i.MX51
  to a common file
- rename mx53_init_lowlevel to imx53_init_lowlevel

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-02 15:00:27 +01:00
Marc Kleine-Budde 9eaaf1b1ca ARM: add support for the i.MX53
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-29 12:10:38 +02:00
Sascha Hauer 5fb8333d34 ARM i.MX: cleanup boot modes
The i.MX Processors support two different boot modes, the internal
boot mode and the external boot mode. Traditionally the external
NAND boot mode is handled in drivers/mtd/nand and the internal
boot mode is handled in arch/arm/mach-imx. This patch consolidates
the handling of both boot modes in arch/arm/mach-imx so that
the user does not have to look in the mtd kconfig section for
booting from NAND. Also, selecting between internal and external
boot mode now is a clear choice.
The external NAND boot mode has been independent of the mtd nand
driver, but as the code was contained in the NAND driver it was
not possible to support booting from NAND without a mtd nand driver.
This is changed with this patch.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-03 16:15:57 +01:00
Marc Reilly c69f625a71 imx(25,35): save boot location into $barebox_loc env.
Saves the boot source into an environment variable so env scripts
can more easily use boot source information.

Note only tested on imx35. I haven't added support for any other variants
because I'm not familiar with them. (And can't test them anyway).

Signed-off-by: Marc Reilly <marc@cpdesign.com.au>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-19 09:37:23 +01:00
Sascha Hauer e4aaf7f27f ARM i.MX: Add device convenience functions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-11-02 18:11:03 +01: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
Baruch Siach 5ccbeb3141 imx: driver for the IIM fusebox
This driver provides an interface for programming and sensing the IIM fusebox
which is present on some i.MX chips.

Since the IIM io addresses of the controlling registers and each fuse bank are
are not contiguous the driver implementation uses two drivers, imx_iim, and
imx_iim_bank.  The imx_iim is the "parent" driver for a device holding the
map_base address of the control registers.  The imx_iim_bank driver is for
child devices holding the map_base of each fuse bank.  The platform code then,
instantiate one imx_iim_bank device per fuse bank.

Fuses blow is a dangerous operation. Thus, the fuses blow functionality can be
disabled independently at configuration time. On run time this functionality
must be enabled explicitly by setting the permanent_write_enable parameter.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-08-17 10:21:17 +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
Sascha Hauer 6bd5caf6c6 i.MX: split out iomux-v1 support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2009-12-10 12:15:01 +01:00
Sascha Hauer 6986aa092e i.MX Nand: Set correct datawidth/pagesize in CCM module
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2009-12-03 10:46:47 +01:00
Sascha Hauer 13d3db22d3 Add MX25 support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2009-09-08 12:42:55 +02:00