9
0
Fork 0
Commit Graph

159 Commits

Author SHA1 Message Date
Sascha Hauer 3c7655c4ee mci: factor out mci/sd specific startup functions
This saves an indention level and makes the code more readable.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:44:32 +01:00
Sascha Hauer 113cb98041 mci: replace pr_debug with dev_dbg
The mci layer uses pr_debug throughout. Use dev_dbg instead
which is very useful when multiple cards are involved.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:44:32 +01:00
Sascha Hauer f27152ccc6 mci: Use struct mci for internal argument passing
The mci layer currently passes around a struct device_d for
its internal use. Apart from being confusing this drops
typesafety for no good reason. Instead, pass around a struct
mci.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:44:32 +01:00
Sascha Hauer f15f7d4ca0 mci core: fix mixup of max write/read block len
The argmument order in this pr_debug does not match
the string printed. Fix this.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:44:32 +01:00
Sascha Hauer 0b3c58c820 mci: remove unused device argument from set_ios
This argmuent is unused in all drivers, so remove it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:44:27 +01:00
Sascha Hauer 4f2cf36acb mci s3c: pass around the right pointer
The s3c driver passes around a struct device_d * internally in which
it is never interested in. Instead pass around a struct s3c_mci_host
and get rid of all this ugly void * derefs.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:40:11 +01:00
Sascha Hauer 7c1e1e3ddf mci s3c: allocate host struct dynamically
Yes, it does make sense. First there will always be the next
hardware which has multiple controllers. Also, we shouldn't
give bad examples to others.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:40:11 +01:00
Sascha Hauer d126aaba4c mci s3c: Do not mess with struct mci_host
This structure is owned by the core, do not change its contents
in the driver.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:40:11 +01:00
Sascha Hauer 0f9892cce8 mci core: replace discrete ios values with struct ios
As we'll need more arguments to set_ios over time put them
in a struct mci_ios like the kernel does.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:40:11 +01:00
Sascha Hauer 74b83f9119 mci mxs: do not use external define for internal use
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 12:40:11 +01:00
Sascha Hauer 4b8a61dbfd mci: fix high capacity detection
Whether a card is high capacity is checked in
sd_send_op_cond/mmc_send_op_cond. Remove the wrong check in
mmc_change_freq which wrongly recognizes some eMMC flash
as high capacity.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 11:53:33 +01:00
Sascha Hauer 58cc0eb274 mci: use card type definitions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-02-09 11:53:24 +01:00
Sascha Hauer 192d6fe9be Merge branch 'pu/debug' into next 2012-01-27 09:31:13 +01:00
Jean-Christophe PLAGNIOL-VILLARD 3874b16997 atmel/mci: fix slot_b support
in commit commit f60f6c58e
atmel_mci: check for device id we use to address the right slot

the driver use the dev_id to detect the slot which is wrong on 9263 as we have
2 devices with 2 slots

use slot_b paramter to specify the slot as done in linux

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-16 09:33:41 +01:00
Jean-Christophe PLAGNIOL-VILLARD 57baef0939 mci_spi: specify hw_dev
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-06 09:42:30 +01:00
Juergen Beisert 4e7151d11c MACH SAMSUNG/S3C: Separate S3C24XX clock management
There are major differences in the clock tree of the S3C24xx family and the
more recent CPUs of the S3C family. Keep the S3C24XX clock routines separate to
avoid an ifdef hell. But also use generic function names to be able to
share drivers among the S3C family.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-02 13:32:13 +01:00
Juergen Beisert d32acc5544 MACH SAMSUNG/S3C: Parts of the SDHC driver can be shared in the S3C CPU family
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-02 13:32:13 +01:00
Juergen Beisert cbc08bfb42 MACH SAMSUNG/S3C: Make it more generic for future updates
Start with renaming files to share them in the S3C CPU family,

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-02 13:32:13 +01:00
Robert Jarzmik 6449b9cff5 drivers/mci: pxa fix clockrate
The clock rate was incorrectly calculated, leading to a
frequency of 19.5MHz / 64 instead of 19.5Mz for the host
controller.

with the fix applied, a copy of a file of 230 kB shrinks
from 6000ms to 123ms.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-01-02 12:44:02 +01:00
Alexander Aring 659f150e90 omap_hsmmc: setup mmc voltage on twl6030
Support the setup of the mmc voltage, when booting OMAP4 with twl6030
from nand.

Signed-off-by: Alexander Aring <a.aring@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-21 12:48:08 +01:00
Robert Jarzmik edd0f1cede drivers/mci: pxa read data performance boost
Increase pxa reading performance by reading 4 bytes at a
time instead of 4 reads of 1 byte.
As the mci controller FIFO accepts reads on bytes, halfwords
or words, use words whenether possible.

The boost is for a 250KBytes file read and display (bmp):
 - before: 6900ms
 - after: 6000ms

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-21 11:15:31 +01:00
Robert Jarzmik 64aa9692c8 drivers/mci: pxa writedata timeout
The write data timeout is too small for old cards,
especially the Transcend 256MBytes SD card. Increase it from
10ms to 100ms.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-21 11:15:31 +01:00
Robert Jarzmik eae6d3beb7 drivers/mci: add PXA host controller
Add a simple PIO based host controller for MMC and SD cards
on PXA SoCs. Reads and writes are available, and no usage is
made of DMA or IRQs.
SPI mode is not supported yet.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-08 10:22:58 +01:00
Sascha Hauer 249a1ba06e mci s3c: remove unused code
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-07 13:03:19 +01:00
Sascha Hauer 8b3d10265d mci Kconfig: select DISK_WRITE instead of ATA_WRITE
ATA_WRITE does not exist anymore. DISK_WRITE is the successor
for it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-07 10:40:56 +01:00
Michael Grzeschik f60f6c58e2 atmel_mci: check for device id we use to address the right slot
We have to check which sd card slot we use. The registered mmc_id is the
the correct parameter for this.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-07 09:39:12 +01:00
Jean-Christophe PLAGNIOL-VILLARD 3bb6ee8dd5 mci: add the probe parameter if any error happened during the probe
as example today if the timeout happened we can not probe the SD card again

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-05 22:05:09 +01:00
Jean-Christophe PLAGNIOL-VILLARD 521c8ff41e imx-esdhc: add support of card detect
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-05 17:57:38 +01:00
Sascha Hauer 2a169b51b1 mci imx-esdhc: do not overwrite probed host caps
The caps are read from the hardware but overwritten afterwards.
Fix this.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-05 09:56:46 +01:00
Sascha Hauer 8675e8c575 mci imx esdhc: enable i.MX53 fix for i.MX51 aswell
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-12-05 09:56:35 +01:00
Sascha Hauer 3db0a1e7fe mmc spi: compile fix
Without CRC support the mmc spi driver fails to compile with
the following:

drivers/mci/mci_spi.c:74:18: error: static declaration of 'crc7' follows non-static declaration

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-11-28 09:38:16 +01:00
Sascha Hauer 81dbc7421e mmc spi: add missing dependency on SPI
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-11-28 09:34:31 +01:00
Juergen Beisert 82db23d3f4 Use generic block layer to access the drives and do partition parsing
Change all relevant blockdevice users to the simplified interface.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-11-28 09:23:24 +01:00
Juergen Beisert bda834847d ATA/DISK: Reorganize file structure and names for future updates
'ATA' means more an interface than a disk drive. Change the names to reflect
their real meaning.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-11-28 09:23:24 +01:00
Franck Jullien 2aad209b78 mci: Add MCI over SPI support
This patch adds MMC over SPI support to mci-core.c and
mci_spi.c driver.

This driver is useful when SOC doesn't have built-in MCI
component. Tested with nios, 2Go SD-CARD and FAT file system.

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-11-25 12:38:29 +01:00
Sascha Hauer 50a62491c5 mci: remove unnecessary loops
We used to loop around the sectors in mci_sd_write/mci_sd_read.
Now that we have multi block read and write this is not necessary
anymore.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-11-11 12:58:24 +01:00
Sascha Hauer a2ca100344 mci: implement multi block write
This speeds up writes to MMC/SD cards significantly.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-11-11 12:58:18 +01:00
Sascha Hauer ec1ebda198 mci omap: do not fail on nonexistent pdata
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-13 16:53:51 +02:00
Robert Schwebel c3d7a97726 mci-core: fix typo for pr_warn
It is pr_warning(), not pr_warn().

Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-10-12 08:50:28 +02: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
Wolfram Sang 75d9c8abeb mci: mxs: fix 'use resources' conversion
Commit 4c542622 used the wrong variable name and caused a build failure.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-14 10:37:10 +02:00
Juergen Kilb b9126db43f Add omap_hsmmc platform data.
Add platform data to specify maximum frequency of hsmmc interface
which can be restricted due to external level shifters.

Signed-off-by: Juergen Kilb <J.Kilb@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-12 12:31:08 +02:00
Hubert Feurstein 8cc995ed42 atmel_mci: handle clk_get error correctly
Signed-off-by: Hubert Feurstein <h.feurstein@gmail.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-09-12 12:25:05 +02:00
Sascha Hauer c41360cd20 mci: parent fixups
Make the mci host a child of the hardware device and the disk
a child of the mci host.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-17 09:36:30 +02:00
Sascha Hauer 31c88a6929 mci: embed mci_dev into mci_host instead of allocating it seperately
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-15 09:48:03 +02:00
Sascha Hauer ad8d12dd66 mci mxs: fix line endings
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-08-15 09:45:48 +02:00
Jean-Christophe PLAGNIOL-VILLARD 6e2e7a67f2 mci-core: switch to resource
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2011-07-30 02:05:27 +08: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 8f24f965e1 mci: do not use unitialized resource
disk_dev->resource is unitialized. Do not use it. This
got broken in:

commit 4c542622cb
Author: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Date:   Mon Jul 18 20:17:04 2011 +0800

    mci: switch to "struct resource"

    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-29 12:03:38 +02:00
Sascha Hauer 152dbd5553 Merge branch 'resource' of git://uboot.jcrosoft.org/barebox into next 2011-07-25 11:24:15 +02:00
Sascha Hauer db0c472af8 MCI imx-esdhc: remove unnecessary large delay
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-25 11:14:01 +02:00
Sascha Hauer d8f171b96e MCI imx-esdhc: Fix multiblock transfers on i.MX53
In the Kernel this bug is described like this:

> The CMDTYPE of the CMD register (offset 0xE) should be set to
> "11" when the STOP CMD12 is issued on imx53 to abort one
> open ended multi-blk IO. Otherwise the TC INT wouldn't
> be generated.
> In exact block transfer, the controller doesn't complete the
> operations automatically as required at the end of the
> transfer and remains on hold if the abort command is not sent.
> As a result, the TC flag is not asserted and SW  received timeout
> exeception. Bit1 of Vendor Spec registor is used to fix it.

We do not use exact block transfers in barebox, so we only need
the first part of this fix.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-25 11:14:01 +02:00
Jean-Christophe PLAGNIOL-VILLARD 4c542622cb mci: switch to "struct resource"
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2011-07-23 13:52:17 +08:00
Jean-Christophe PLAGNIOL-VILLARD 358ab3eb84 atmel/drivers: switch to dev_request_mem_region
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-20 08:25:43 +02:00
Sascha Hauer 50f998edf4 mci i.MX esdhc: convert to struct resource
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-19 00:12:51 +08:00
Sascha Hauer 8713744dac mci i.MX: convert to struct resource
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-19 00:12:51 +08:00
Jean-Christophe PLAGNIOL-VILLARD a42dc1226b atmel_mci: switch to "struct resource"
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2011-07-18 07:57:50 +08:00
Sascha Hauer e6c03f01bf Merge branch 'next' 2011-07-06 10:25:04 +02:00
Sascha Hauer 26daaaa730 MCI imx-esdhc: Fix cache flush/inval for multi block support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-05 09:32:19 +02:00
Hubert Feurstein c034843ada atmel-mci: fix initialization of 8bit-bus-width-mode for at91sam9g45
When the bus_width was set to 8, then only one data-line has been initialized.

Signed-off-by: Hubert Feurstein <h.feurstein@gmail.com>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-06-22 00:22:23 +02:00
Hubert Feurstein 1ecd192be8 atmel-mci: fix wrong pointer cast
Signed-off-by: Hubert Feurstein <h.feurstein@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-06-22 00:22:23 +02:00
Sascha Hauer c6abd61fa8 Merge branch 'master' into next 2011-06-20 09:08:13 +02:00
Hubert Feurstein 6cf02124b1 mci: add Atmel AT91 MCI driver
The driver supports push and pull transfers.
Tested on at91sam9m10 SoC.

Signed-off-by: Hubert Feurstein <h.feurstein@gmail.com>
2011-06-16 17:54:12 +02:00
Hubert Feurstein d1c02cfcec mci-core: add missing newline in debug message
Signed-off-by: Hubert Feurstein <h.feurstein@gmail.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-06-01 14:52:31 +02:00
Sascha Hauer 0f16a03b00 mci: turn several pr_* statements into debug
These are mostly useful for developers, so turn them off by default.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-05-06 08:35:59 +02:00
Sascha Hauer 3af51e9edd mci: shrink string footprint
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-05-06 08:34:15 +02:00
Sascha Hauer 342c8de8f5 mci-core: fix debug statements
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-12 10:39:20 +02:00
Sascha Hauer 9d6246199e mci omap: make write support optional
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-12 10:39:20 +02:00
Sascha Hauer 3381b83a78 mci omap: rename functions from mxc to omap
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-12 10:39:20 +02:00
Sascha Hauer 355b713b86 mci omap: hsmmc is also found on the omap3
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-12 09:54:57 +02:00
Sascha Hauer 64cc568eda mci: make write support optional
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-11 15:57:51 +02:00
Sascha Hauer 1ac850c488 mci: make it compile without info support
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-11 12:36:07 +02:00
Sascha Hauer 9ba8f95724 Merge branch 'omap-drivers' into next 2011-04-06 09:20:21 +02:00
Sascha Hauer 4cdf069d2a mci: Add omap hsmmc driver
This driver is based on the U-Boot omap hsmmc driver by
Sukumar Ghorai <s-ghorai@ti.com>.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-04 15:27:45 +02:00
Sascha Hauer c8df17c05f mmc: check correctness of the voltage mask in ocr
Most cards do not answer if some reserved bits
in the ocr are set. However, some controllers
can set bit 7 (reserved for low voltages), but
how to manage low voltages SD card is not yet
specified.

based on the original U-Boot patch from
Stefano Babic <sbabic@denx.de>

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-04 15:02:35 +02:00
Sascha Hauer 086b06aa51 mci mxs: no need to call mxs_mci_setup_clock_speed in init
It will be called by set_ios anyway later. Also, do not
alter host->clock field, this is none of our business.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-08 12:30:58 +01:00
Sascha Hauer 5259adf5c9 mci mxs: make the mci_host a member of mxs_mci_host
This allows for more type safety. passing a struct device_d
internally in the driver is not a good idea. Also, this
patch adds a void __iomem *regs to mxs_mci_host. dev->map_base
should not be used for register accesses.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-08 12:30:58 +01:00
Sascha Hauer 353d1ffa3d mci mxs: rename mci_pdata to host
struct mci_host is named host in the rest of the driver, so
name it like this consistently.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-08 12:30:58 +01:00
Sascha Hauer 11acf70800 mci mxs: give functions a uniq mxs_mci_ namespace
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-08 12:30:58 +01:00
Sascha Hauer bbee3017c7 mci mxs: put only once used function inline
Also, rename mci_rename after the callback it implements: stm_mci_initialize.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-08 12:28:46 +01:00
Sascha Hauer 246dbb3001 mci i.MX23/28: rename driver to mxs.c
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-08 12:28:46 +01:00
Sascha Hauer a4ad98bfa4 mci stmp378x: remove ifdefed code
There is no need to fill the FIFOs before starting a transfer, so
remove corresponding code which is commented out anyway. Additionally
this fixes a compiler warning with gcc4.5

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Jürgen Beisert <jbe@pengutronix.de>
2011-03-08 12:27:43 +01:00
Sascha Hauer e88d86a445 ARM: rename STM arch to mxs
We never supported the sigmatel stm chips and probably
never will. So do the first step and rename the architecture
to mxs just like in the kernel.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-20 10:43:24 +01:00
Sascha Hauer 2f0109b1bb Merge branch 'master' into next 2011-01-17 09:43:40 +01:00
Sascha Hauer 7c1e5d6dd7 mci-core: fix printf compiler warnings
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-07 11:38:11 +01:00
Sascha Hauer 48a028bb8d imx-esdhc: fix printf compiler warnings
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-07 11:38:02 +01:00
Krzysztof Halasa c5baa0edc4 Fix error handling with malloc, memalign etc. Introduce xmemalign().
The idea is to panic() when there is no memory available for normal
operation. Exception: code which can consume arbitrary amount of RAM
(example: files allocated in ramfs) must report error instead of panic().

This patch also fixes code which didn't check for NULL from malloc() etc.

Usage: malloc(), memalign() return NULL when out of RAM.
xmalloc(), xmemalign() always return non-NULL or panic().

Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-01-07 10:21:22 +01:00
Sascha Hauer 50352ae9d9 Merge branch 'led' into next 2010-12-21 08:25:31 +01:00
Juergen Beisert 0df242defb STM378x: Adapt the MCI driver to support i.MX23 and i.MX28
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-12-14 15:15:07 +01:00
Juergen Beisert 8dc537022e STM378x: Use Hz as the clock unit like in all other arch
i.MX23 currently uses kHz as the unit for its clock handling and calculation
to avoid overflows when calculation with the internal 480 MHz PLL and its
fractional divider. This patch changes all routines to accept Hz and deliver
Hz as the clock unit.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-12-14 15:15:06 +01:00
Juergen Beisert f3d7fe0673 Add macro for correct rounding in integer devisions
Just stolen from Linux.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-12-14 15:15:06 +01:00
Juergen Beisert 46862a199c STM/MCI: Fix wrong register bit
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-12-09 16:16:24 +01:00
Marek Belisko 804e0b0084 drivers: mci: Fix compilation warning.
Fix compilation warning:
drivers/mci/mci-core.c:1002:
warning: comparison of distinct pointer types lacks a cast

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-11-26 08:24:35 +01:00
Robert Schwebel d65ee96da2 doc: fix parameter name in mci-core
Silence this warning:

drivers/mci/mci-core.c:1324: Warning: argument `pdata' of command @param is not found in the argument list of mci_register(struct mci_host *host)
drivers/mci/mci-core.c:1324: Warning: The following parameters of mci_register(struct mci_host *host) are not documented:
  parameter host

Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-10-22 20:47:03 +02:00
Sascha Hauer 13c09da676 mci: align data for commands
Some mci controllers cannot transfer data with their DMA engines
if the data is not sufficiently aligned. Normally this is a driver
problem, but hey, we have no problem aligning the data and keep
the burden from the drivers.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Juergen Beisert <jbe@pengutronix.de>
Acked-by: Juergen Beisert <jbe@pengurtronix.de>
2010-10-22 19:32:01 +02:00
Sascha Hauer d339b76797 mci-core: add multiple block support
So far only for reading blocks. This is based on the corresponding
U-Boot code.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Juergen Beisert <jbe@pengutronix.de>
Acked-by: Juergen Beisert <jbe@pengurtronix.de>
2010-10-22 19:31:35 +02:00
Juergen Beisert fe366aa8ec Adapt the i.MX23 MCI driver to the v2 i.MX23 patch series
The i.MX23 v2 architecture patch series was sligthly modified to easify
the i.MX28 architecture addition later on. So, we need now an index to
query the SSP clock frequency.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-10-21 22:16:10 +02:00
Juergen Beisert 32fc00e72f Make the clock calculation easier to read and correct
Due to a wrong rounding while calculating the clock divider the requested clock
of 25 MHz resulted into a 48 MHz clock. With this patch a clock frequency
below or equal the requested one will be set.
By using 'div' and 'rate' as vars, its also easier to check against the data
sheet.

Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-10-21 22:15:36 +02:00
Eric Bénard 7c9016431b mci-core: add more tested SD Cards
note :
- Transcend 16GiB fails (no log)
- Micron 8GiB eMMC fails (hangs after : Detecting a 4.0 revision card)

Signed-off-by: Eric Bénard <eric@eukrea.com>
2010-10-14 13:07:14 +02:00