9
0
Fork 0
Commit Graph

730 Commits

Author SHA1 Message Date
Sascha Hauer 0f15dee78f mtd: nand: mxs-nand: Add i.MX6 support
The i.MX6 uses the same GPMI NAND controller as i.MX23/28 do. This adds
i.MX6 support to the driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-23 16:25:14 +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 1ee484f382 ARM: i.MX6: TQ tqma6x initial board support
The TQ tqma6x comes in two different variants. One i.MX6s based
tqma6s and a i.MX6q based tqma6q.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-11 09:53:16 +02:00
Sascha Hauer ed91fac6e2 ARM: i.MX: External Nand boot: remove ifdefs around SoC functions
The ifdefs around the SoC specific boot_nand_external functions
can be removed when all functions go into their own sections so
that the linker can discard the unused functions.

This also adds a #ifdef BROKEN around the i.MX21 code which currently
does not have the imx21_barebox_entry function.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-11 09:53:16 +02:00
Sascha Hauer 3ccb034fa1 ARM: i.MX: External Nand boot: remove ifdefs
Instead of ifdeffing out the correct NFC base address just pass
it to imx_nand_load_image which is called from SoC specific
context anyway.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-11 09:53:16 +02:00
Sascha Hauer 09b96768c7 ARM: i.MX: External Nand boot: move pagesize detection into SoC specific code
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-11 09:53:16 +02:00
Sascha Hauer 3de30a438a ARM: i.MX: External Nand boot: remove debug command
The debug command does not work with SoC specific entry points.
remove it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-11 09:53:16 +02:00
Sascha Hauer 5a3329f6ad ARM: i.MX: External Nand boot: make 2k support nonoptional
All boards using the external nand boot code autodetect the
pagesize, so make this nonoptional to make the code simpler.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-11 09:53:15 +02:00
Philipp Zabel d427ee38fb ARM: gk802: Add support for Zealz GK802
Add support for the GK802 'QUAD CORE Mini PC', which seems to be loosely
based on the Freescale i.MX6Q HDMI dongle reference design.
It is supposedly identical to the Hiapad Hi802.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-11 09:53:11 +02:00
Sascha Hauer 1f6ec400f7 Revert "ARM: i.MX27 pcm038: switch to multi image"
This reverts commit 08c0e206b3.

The external NAND boot code currently uses the _text linker variable
to determine a place for the image. This doesn't work with multi image
support which will link the binary at 0x0. Revert multi image support
for the pcm038 for now until a solution is found.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-09 19:29:28 +02:00
Sascha Hauer 7457f69e17 ARM: i.MX51 efikasb: switch to multiboard support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:08 +02:00
Sascha Hauer e1ec8d514a ARM: i.MX6 realq7: switch to multiboard
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:08 +02:00
Sascha Hauer d1c3520011 ARM: i.MX53 loco: Move over to multiboard
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:08 +02:00
Sascha Hauer 7f900e0b60 ARM: i.MX51 babbage: Move over to multiboard
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:08 +02:00
Sascha Hauer 41f53d8d17 ARM: i.MX: select SoC from board
In principle we could build barebox for multiple i.MX SoCs, so
select the correct SoC from the board selection.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:08 +02:00
Sascha Hauer c37be8632b ARM: i.MX: remove now unused ARCH_IMX_INTERNAL_BOOT_USE_IMXIMAGE
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:07 +02:00
Sascha Hauer fd2e121b5b ARM: i.MX51 babbage: switch to multi image support
The image will be named:

barebox-freescale-imx51-babbage.img

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:07 +02:00
Sascha Hauer 9172539a60 ARM: dmo realq7: switch to multi image support
The image will be named after the official name of this board:

barebox-datamodul-edm-qmx6.img

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:07 +02:00
Sascha Hauer cd977b9364 ARM: i.MX53 loco: Switch to multi image support
This converts the Freescale i.MX53 loco aka qsb board to
multi image. The image will be named:

barebox-freescale-imx53-loco.img

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:07 +02:00
Sascha Hauer 09bc89f539 ARM: i.MX53 loco: Switch to imximage
Use the imximage tool to generate an imximage instead of the linker
based process.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-02 08:24:07 +02:00
Sascha Hauer 939c2173a3 Merge branch 'for-next/multi-image' 2013-07-01 10:14:40 +02:00
Sascha Hauer 08c0e206b3 ARM: i.MX27 pcm038: switch to multi image
This also converts the Phytec phyCORE i.MX27 aka pcm038 to use
image compression. The image will be named

barebox-phytec-phycore-imx27.img

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-07-01 10:14:35 +02:00
Sascha Hauer 2078438662 Add multi images support
This adds the make infrastructure to build multiple SoC or
board specific images from a single barebox binary.

The basic idea is that we no longer have a single pbl, but instead
multiple pbls, one per image if necessary. Each pbl is defined
by its entry function so that each pbl can do exactly what a given
board needs. Additionally the pbls together with a self extracting
barebox binary can be encapsulated in specific image formats.

squashed in build fixes from Lucas Stach for make version >= 3.82:

Split Multimage Makefile rule in explicit and implicit parts

Fixes build with make version >=3.82

Frome the make 3.82 NEWS file:
* WARNING: Backward-incompatibility!
  In previous versions of make it was acceptable to list one or more explicit
  targets followed by one or more pattern targets in the same rule and it
  worked "as expected".  However, this was not documented as acceptable and if
  you listed any explicit targets AFTER the pattern targets, the entire rule
  would be mis-parsed.  This release removes this ability completely: make
  will generate an error message if you mix explicit and pattern targets in
  the same rule.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Lucas Stach <dev@lynxeye.de>
2013-07-01 10:13:12 +02:00
Sascha Hauer be1ebac429 Merge branch 'for-next/mci'
Conflicts:
	arch/arm/boards/ccxmx51/ccxmx51js.c
	arch/arm/boards/dmo-mx6-realq7/board.c
2013-07-01 09:37:35 +02:00
Sascha Hauer e60e6d3ae8 Merge branch 'for-next/imx-realq7'
Conflicts:
	arch/arm/dts/Makefile
2013-07-01 09:37:15 +02:00
Sascha Hauer 33a6e99a38 Merge branch 'for-next/imx'
Conflicts:
	drivers/usb/imx/chipidea-imx.c
2013-07-01 09:37:04 +02:00
Sascha Hauer b70bfc27e6 ARM: i.MX6: Add cputype detection
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-25 16:05:35 +02:00
Sascha Hauer 549ccf4d0c ARM: i.MX: Make debug UART selectable from Kconfig
To make early debugging on i.MX a bit simpler. This uses a similar
magic than the kernel does.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-25 11:52:36 +02:00
Sascha Hauer a4daf50305 ARM: i.MX: adopt cpu_is_* for multiple SoCs
This makes cpu_is_* functions when necessary for upcoming multisoc
support. When only one SoC type is compiled in cpu_is_* still expand
to static values.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-25 11:52:05 +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 2260389da4 ARM: i.MX: Make timer available earlier
This moves the CCM drivers to core_initcall since this has no dependencies.
This way we can be sure that the clock for the clocksource is available in
at postcore_initcall time.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-18 09:02:44 +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
Markus Niebel 0b2735aad3 ARM: i.MX53: tqma53: move RAM setting to submenu
Signed-off-by: Markus Niebel <Markus.Niebel@tqs.de>
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-08 15:06:43 +02:00
Markus Niebel 841a8a213a ARM: i.MX53: tqma53: fix board name in Kconfig
Signed-off-by: Markus Niebel <Markus.Niebel@tqs.de>
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-08 15:06:43 +02:00
Philipp Zabel fb2b3e2cd4 ARM i.MX6: Fix bootsource detection
This patch fixes boot_mode detection for non-internal boot and
bootsource detection for i2c boot. Further, the bootsouce_instance
is now determined for spi, i2c, and mmc/sd boot.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-08 15:04:10 +02:00
Sascha Hauer 9e97c970c4 ARM: i.MX6 RealQ7: switch to imximage
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-06 16:21:32 +02:00
S. Fricke e69ab77f79 ARM i.MX6: set imx6 silicon revision
This is mainly a backport of the imx6_revision function of
arch/arm/mach-imx/mach-imx6q.c in the linux kernel sources.

Signed-off-by: S. Fricke <sfricke@data-modul.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-05 08:51:52 +02:00
Sascha Hauer 2302fc6076 mci: rename capabilities flags
Use MMC_CAP_ names instead of MMC_MODE_. This makes it more
clear that these are capabilities of host/card and do not refer
to the current mode. These are in line with the Linux Kernel
except for MMC_CAP_MMC_HIGHSPEED_52MHZ which could be fixed
later.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-06-03 10:59:53 +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 f56b064fa3 Merge branch 'for-next/imx'
Conflicts:
	arch/arm/Makefile
2013-06-02 12:36:29 +02:00
Sascha Hauer 253d5133a4 ARM: i.MX6 sabrelite: switch to devicetree probing
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-31 08:34:06 +02:00
Sascha Hauer 6e22ff1b38 ARM: i.MX6: 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-31 08:33:45 +02:00
Sascha Hauer b62be26793 ARM: i.MX6: Fix CCM compatible node
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-31 08:33:41 +02:00
Sascha Hauer b381e781bf treewide include/: Add missing includes
This adds several missing includes to files under include/ which
we relied on being included implicitly.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-31 08:32:59 +02:00
Sascha Hauer 2f228f72e0 ARM: i.MX51 babbage: switch to imx-image
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-31 08:31:41 +02:00
Sascha Hauer 134a788ac5 scripts: Add imx-usb-loader tool
This adds host tools for i.MX to generate the i.MX internal
flash header format and a tool to upload these images to an
i.MX SoC via USB.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-31 08:31:41 +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 4699fa44a8 ARM: i.MX: iim: Add devicetree probe support
Only adds the dt ids.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-23 09:19:49 +02:00
Sascha Hauer d79515b91f ARM: i.MX: remove unused .mac_addr_base in iim
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-23 09:19:27 +02:00
Sascha Hauer ef0299f172 ARM: i.MX: Allow disabling SDRAM autodetection
Some boards setup more memory than they actually have. The real memory
size can then be detected later for example by reading a board id.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-08 08:24:43 +02:00
Andreas Pretzsch 3c4c5eefab ARM i.MX31: cleanup MX31_ prefix: fix leftover IOMUXC_BASE defines
The prefix/cleanup series
	ad09b59f8b
	a8c6359667
	4c53af062b
missed a few unprefixed IOMUXC_BASE define users. Fix these.

Signed-off-by: Andreas Pretzsch <apr@cn-eng.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-05-07 08:36:21 +02:00
Sascha Hauer c19efab886 Merge branch 'for-next/param'
Conflicts:
	drivers/mci/mci-core.c
2013-05-06 09:30:50 +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 c8af035b41 Merge branch 'for-next/misc' 2013-05-06 09:30:28 +02:00
Sascha Hauer bb1bd4d582 Merge branch 'for-next/imx' 2013-05-06 09:30:27 +02:00
Alexander Shiyan 7077230b46 ARM: imx: Fix incorrect Kconfig symbols for some boards
This patch fix incorrect Kconfig symbols for MACH_FREESCALE_MX51_PDK,
MACH_FREESCALE_MX53_LOCO and MACH_FREESCALE_MX53_SMD.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-30 08:21:34 +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
Alexander Shiyan 6ec32579b6 ARM: i.MX: Update MX51 iomux definitions
The patch updates MX51 iomux definitions from kernel.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-12 19:24:45 +02:00
Alexander Shiyan d8b6bb6e1a ARM: i.MX: Update MX2x iomux definitions
The patch updates MX2x iomux definitions from kernel.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-12 19:24:45 +02:00
Sascha Hauer 3c9b5c1a61 ARM: i.MX: iim: Use dev_add_param_bool for parameters
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-11 11:48:35 +02:00
Sascha Hauer 17ad33b5d5 ARM: i.MX53: split lowlevel function into early/nonearly version
clock_notifier_call_chain() can't be called before init time. Protecting
it with IS_ENABLED(__PBL__) is not enough. This patch splits out a new
imx53_init_lowlevel_early which can be called before init time and does
not have the call to clock_notifier_call_chain() in it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-05 08:27:52 +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 dd9f6d08a2 Merge branch 'for-next/relocate'
Conflicts:
	arch/arm/lib/barebox.lds.S
2013-04-04 14:20:42 +02:00
Sascha Hauer 45b87922a6 Merge branch 'for-next/misc-arm' 2013-04-04 14:20:32 +02:00
Sascha Hauer 8f2c6a3d2b Merge branch 'for-next/misc' 2013-04-04 14:20:32 +02:00
Sascha Hauer ab5f6c463c Merge branch 'for-next/imx-realq7'
Fix realq7 compilation
2013-04-04 14:20:05 +02:00
Sascha Hauer da718ca89d Merge branch 'for-next/imx-external-nand-boot' 2013-04-04 12:03:20 +02:00
Sascha Hauer 7a552a41a4 Merge branch 'for-next/bootsource' 2013-04-04 12:03:19 +02:00
Sascha Hauer d2ebeb2944 ARM: i.MX53: Add bootsource instance information
The i.MX53 has the bootsource instance information stored
in SBMR[21:22], expose it to the environment.

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-04 10:54:27 +02:00
Marc Kleine-Budde 7b66d9cddd bootsource: create arch independent bootsource framework
This patch seperates the imx independent from the arch independent code. The
following functions and enums are renamed:

- imx_bootsource() -> bootsource_get()
- imx_set_bootsource() -> bootsource_set()
- enum imx_bootsource -> enum bootsource

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-04 10:54:22 +02:00
Sascha Hauer eb84709192 clk: remove unused __clk_[get|put]
This is some unused code resulting from copying stuff from the
kernel. Remove it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-04-03 17:22:11 +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 f1e1dc306d ARM i.MX ESDCTL: Fix default enabled esdctl v2 controller
On some i.MX SoCs the SDRAM controller has chipselect 2 enabled
by reset default. This confuses our SDRAM size detection. We
already have a fix for this in place. This patch adds the fix
for i.MX35 which needs it aswell. Also since we now detect the
SDRAM size in the SoC specific entry functions we have to apply
the fixup there, too.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-26 10:23:01 +01:00
Marc Kleine-Budde c74fb45f64 ARM i.MX bootsource: add separate function for mx25 and mx35
This patch creates a seperate function for mx25 and mx35 to save it's
bootsource.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-26 10:20:17 +01:00
Marc Kleine-Budde 39c350aa50 ARM i.MX bootsource: rename imx_27_boot_save_loc -> imx27_boot_save_loc
This patch renames imx_27_boot_save_loc() to imx27_boot_save_loc(), so that all
imx*_boot_save_loc() functions follow the same nameing sheme.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-26 10:20:17 +01:00
Marc Kleine-Budde c4f79aff8b ARM i.MX bootsource: imx_25_35_boot_save_loc: remove leftover do-nothing code
This patch removes some code leftover from:
    a029e32 ARM i.MX: rework bootsource setting
which is now a no-op.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-26 10:20:17 +01:00
Marc Kleine-Budde 9f6614d644 ARM i.MX bootsource: convert all imx*_boot_save_loc functions to void
This function gives all functions a common, i.e. void, return value.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-26 10:20:17 +01:00
Marc Kleine-Budde 19e5e04d81 ARM i.MX bootsource: convert enums from enum imx_bootsource to uppercase
Enums are in the same way as defines, so write them in uppercase.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-26 10:20:14 +01: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 6e2a07e32a ARM: i.MX: external nand boot: check for bad blocks
The i.MX external NAND boot code checks for a bad block every
page, which is wrong. Instead, check for a bad block at the
beginning of each block.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-12 10:21:14 +01:00
Sascha Hauer 19486d492f Add DMO RealQ7 board support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-11 09:19:55 +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
Sascha Hauer 3f8a1c0be2 ARM i.MX: Add double include protection for generic.h
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-10 11:09:40 +01:00
Sascha Hauer 9eefa7445e include asm/sections.h instead of asm-generic/sections.h
To let the architectures override asm-generic/sections.h

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-10 11:05:46 +01:00
Sascha Hauer 019712525a ARM boards: Use accessor functions to access linker variables
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-03-07 12:38:01 +01:00
Sascha Hauer 678832e17a Merge branch 'for-next/usb' 2013-03-04 09:21:54 +01:00
Sascha Hauer 13408877f4 Merge branch 'for-next/misc' 2013-03-04 09:21:37 +01:00
Sascha Hauer 908bc8ce45 Merge branch 'for-next/imx' 2013-03-04 09:21:37 +01:00
Sascha Hauer 74421f2f47 ARM i.MX pcm043: Switch to new environment
- switch to new environment
- make barebox partitions 512K big
- update defconfig for new env:
  - enable menu support
  - miitool support
  - clk commands
  - oftree support
  - let/dirname/readlink commands
  - enable external nand boot support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-27 08:57:04 +01:00
Alexander Shiyan 4a963a2513 ARM: i.MX: Replace numbers with predefined constants in several places
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-26 15:08:36 +01:00
Sascha Hauer 457c038f83 ARM i.MX35: Let MAX clk be in run-mode-on
The reset value for the MAX clk gate is 0b10, that is it is turned
on in CPU run mode and off in stop mode. Configure it that way during
startup.

The 0b11 value previously in this field causes some nasty behaviour in
the Linux kernel:

- The i.MX35 has two bits per clock gate which are decoded as follows:
  0b00 -> clock off
  0b01 -> clock is on in run mode, off in wait/doze
  0b10 -> clock is on in run/wait mode, off in doze
  0b11 -> clock is always on

The MAX clock is needed by the SoC, yet unused in the Kernel, so the
common clock framework will disable it during late init time. It will
only disable clocks though which it detects as being on. This detection
is made depending on the lower bit of the gate. So with the value of
0b11 the clock framework will detect the clock as turned on, yet unused,
hence it will turn it off and the system locks up.
With the value of 0b10 instead, the clock framework will detect the
clock as being disabled and will not try to turn it off, so the
system works.

The real bug is in the Linux clock framework. However, the value 0f 0b10
seems to be a sane default value, so restore it. This lets Linux work
again and gives time to fix the bug in Linux.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-26 11:00:30 +01:00
Sascha Hauer 94466be718 ARM i.MX: Fix booting from NOR when external nand boot is enabled
We cannot jump to SDRAM unconditionally in imx*_barebox_boot_nand_external.
When we really boot from NOR flash the binary is not yet copied to SDRAM.
Instead, let the return value of imx_barebox_boot_nand_external() indicate
whether we really boot from NAND and only jump to SDRAM in this case.
Otherwise just continue to the normal SoC specific entry.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-26 11:00:25 +01:00
Alexander Shiyan 5f19b73344 ARM: i.MX27: Use DEVICE_ID_SINGLE for IIM, CCM and ESDCTL
Only one of IIM, CCM or ESDCTL device is allowed, so use DEVICE_ID_SINGLE
for these devices.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-25 08:57:40 +01:00
Alexander Shiyan fac23aaccd ARM: pcm038: Select IIM by default
PCM038 uses IIM in board code, so select IMX_IIM symbol by default.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-25 08:57:40 +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
Alexander Shiyan bbc0b6bc15 mfd: Using MFD_xx prefix for symbols
This patch provides rename MFD-related symbols for using MFD-prefix.
Additionally, sorting mfd/Kconfig and mfd/Makefile records.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-18 09:21:08 +01:00
Sascha Hauer a6b1f17d5d ARM i.MX21: Fix device names for gpio
The i.MX21 has a imx1 gpio type. Change the name accordingly, otherwise
the gpio driver does not probe successfully.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-15 16:43:03 +01:00
Sascha Hauer 9a98894c1a ARM i.MX35: Fix device names for gpio
The i.MX35 has a imx31 gpio type. Change the name accordingly, otherwise
the gpio driver does not probe successfully.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-15 16:41:43 +01:00
Sascha Hauer 1943567163 ARM i.MX6: Fix HSIC pad definitions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-14 09:55:50 +01:00
Hubert Feurstein b0917935dd ARM i.MX6: Add support for SabreSD board
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Hubert Feurstein <h.feurstein@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-12 10:00:56 +01:00
George Pontis 3fa377ae66 i.MX53 i2c, add support for third i2c interface
Signed-off-by: George Pontis <gpontis@spamcop.net>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-11 20:56:19 +01:00
Jean-Christophe PLAGNIOL-VILLARD c49819d903 arm: rename reset and common_reset to barebox_arm_reset_vector and arm_cpu_lowlevel_init
reset is confusing with the cpu reset and impossible to grep

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-08 09:35:40 +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 cf4271ee12 ARM i.MX: prepare external nand boot for SoC specific entry
i.MX will get SoC specific entry points for barebox. To find the
correct one we have to call these from the SoC specific
imx*_barebox_boot_nand_external functions.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-04 15:52:38 +01:00
Sascha Hauer 028ae2ba6e ARM i.MX: Add i.MX specific entry point for barebox
Additionally to the generic entry point the i.MX specific ones
calculate the SDRAM size automatically so the boards do not have
to care.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-04 15:52:38 +01:00
Sascha Hauer ce2b453a79 ARM i.MX: Use SRAM stack in lowlevel code
Several i.MX boards setup a temporary stack in their lowlevel code.
Instead of using STACK_BASE use a stack in internal SRAM to get rid
of the STACK_BASE compile time dependency.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-02-04 15:52:38 +01:00
Sascha Hauer 9c5172fac2 Merge branch 'for-next/imx-usb-chipidea' 2013-02-04 15:48:53 +01:00
Sascha Hauer 265e6da19d Merge branch 'for-next/imx' 2013-02-04 15:48:53 +01:00
Sascha Hauer a01e54d201 treewide: fix format specifiers
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-27 14:24:10 +01:00
Sascha Hauer f791295528 Merge branch 'pu/imx-external-nand-boot' into for-next/imx 2013-01-21 13:53:20 +01:00
Sascha Hauer 6e45abe47e ARM i.MX: Add a common NAND entry for external boot mode
The pattern for i.MX boards starting in external NAND boot mode is always
the same:

- Check if we are running in NFC address space, if not call
  board_init_lowlevel_return()
- copy binary to link address
- execute relocated binary
- call imx_nand_load_image()

Add a common function for this to make the board code easier.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-20 16:53:46 +01:00
Sascha Hauer fdc5a0cbfc ARM i.MX6: Add Chipidea support
This allows to register the USB ports for the chipidea driver. For
now the otg/h1 register functions also register the corresponding
USB phys.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-20 11:15:00 +01:00
Sascha Hauer bb2e752fb6 ARM i.MX6: Add usbphy clocks
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-20 11:08:47 +01:00
Sascha Hauer 59a22cb392 ARM i.MX6: Fix usb phy base addresses
What we had as usb phy1 base address is really usb phy2. Fix the names
and add the missing base address definition for usb phy1.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-20 11:07:50 +01:00
Sascha Hauer f051557a74 ARM i.MX6 USB phy: Fix phy function names
The imx6_usb_phy1* functions are misnamed. It's usb phy2 that is configured
here, so rename the functions accordingly.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-20 11:06:08 +01:00
Sascha Hauer 34b9298145 Merge branch 'pu/tx25' into for-next/imx 2013-01-18 11:25:15 +01:00
Sascha Hauer f8ca3d92e3 ARM Ka-Ro Tx25: Switch to new environment
Also update config for supporting external NAND boot.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-18 11:24:58 +01:00
Sascha Hauer 1ce154f0bb ARM i.MX25: Add missing device registration for the iomux
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-18 11:24:10 +01:00
Daniel Mierswa 39390eea26 i.MX27: fix shift amount for PCCR1_PERCLK3_EN
Signed-off-by: Daniel Mierswa <d.mierswa@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-17 19:02:42 +01:00
Daniel Mierswa 0f7bff88f0 i.MX21/27: don't enable lcd bus clocks too early
On the MX27 based board phycard-i.MX27 the display won't properly
come up.
Before removing imx-regs.h and the code that sets the register
in the i.MX video driver, the PCCR registers were set _after_
the screen start (LSSAR) was set.
This restores that old behaviour and makes the display come up
properly again.
I did not have a chance to test this on any other i.MX27 or i.MX21
hardware though I assume that the "old" order is required there
too.

Signed-off-by: Daniel Mierswa <d.mierswa@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-17 19:02:42 +01:00
Daniel Mierswa 1d37166cb2 i.MX21: Add periph. clock register name macros
Also put those names solely in the .c file as it's done with
the i.MX27 code.

Signed-off-by: Daniel Mierswa <d.mierswa@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-01-17 19:00:18 +01:00
Sascha Hauer 885694f827 Merge branch 'pu/efikasb' into for-next/imx 2012-12-17 11:29:20 +01:00
Sascha Hauer 40bd757243 Merge branch 'pu/usb' into for-next/imx
Conflicts:
	arch/arm/mach-imx/include/mach/devices-imx31.h
2012-12-17 08:45:49 +01:00
Sascha Hauer 3117c6f7bc ARM i.MX51: Add support for the Efika MX Smartbook
The Efika MX Smartbook is a i.MX51 based netbook. This patch adds
nearly full support for it including:

- USB
- SD card slots
- Internal SPI NOR flash
- Internal flash PATA drive
- LEDs

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-17 08:42:32 +01:00
Sascha Hauer de3c258d41 mci i.MX esdhc: Allow to specify devicename from platformdata
For boards which need to have persistent names for the device file.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-17 08:42:32 +01:00
Sascha Hauer 1690746c3a ARM i.MX31: Add USB device functions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-13 22:18:47 +01: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 9524e95a9b ARM i.MX27: Add USB device functions
Register the USB misc devices and provide convenience wrappers to
register the USB ports for i.MX27.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-13 22:18:47 +01:00
Sascha Hauer bce4fecc4e ARM i.MX31: Add mmc register convenience functions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-12 21:53:59 +01:00
Sascha Hauer d74be493f7 ARM i.MX31: sync iomux with kernel
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-12 21:53:58 +01:00
Sascha Hauer 6dbf674089 ARM i.MX31 pcm037: Switch to new environment
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-12 21:53:58 +01:00
Sascha Hauer 679f5277ff ARM i.MX31: Fix gpio device names
Has to be imx31-gpio, not imx-gpio.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-12 21:01:21 +01:00
Sascha Hauer 11cb1620fe esdctl: fix reset default bug on i.MX27/31
The i.MX27/31 have the second chip select enabled by reset default.
This can be considered as a hardware bug, because even boards which
need this settings cannot work out of reset because of the missing
initialization sequence. Detect this reset default setting and disable
this chipselect then to be able to properly detect the SDRAM size.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-12 19:59:38 +01:00
Sascha Hauer 8030ab24fa Merge branch 'kconfig' 2012-12-08 12:22:21 +01:00
Alexander Shiyan 4c20f9af97 Cleanup Kconfig files
This patch provides a global cleanup barebox Kconfig files. This includes
replacing spaces to tabs, formatting in accordance format, removing
extraneous lines and spaces. No functional changes.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-08 12:22:12 +01:00
Sascha Hauer 0ae4b1e827 Merge branch 'for-next/imx'
Conflicts:
	arch/arm/mach-imx/include/mach/devices-imx53.h
2012-12-07 16:43:12 +01:00
Sascha Hauer c3a84a3f76 Merge branch 'for-next/ext4' 2012-12-07 16:42:04 +01:00
Sascha Hauer 4bdb250c9f Merge branch 'for-next/clk' 2012-12-07 16:42:04 +01:00
Sascha Hauer cc7f346f24 ARM i.MX5: Add SATA support
Add the convenience wrappers for registering the SATA device.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-07 12:19:45 +01:00
Sascha Hauer 5a12d90361 ARM i.MX6: Add sata device
This also adds and enables the clocks needed for SATA.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 14:25:18 +01:00
Sascha Hauer 2ff02e7aa1 ARM i.MX: Add i.MX51 PATA device support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:52:54 +01:00
Sascha Hauer 77fd727b89 ARM i.MX6: save boot location
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:43:29 +01:00
Sascha Hauer 8e9a1d9943 ARM i.MX bbu internal: Add spi/i2c support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:43:29 +01:00
Sascha Hauer 1ad78f3c80 ARM i.MX bbu: Add i.MX6 MMC handler
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-12-06 13:43:29 +01:00