
28 Nov
2012
28 Nov
'12
8:41 a.m.
On Tue, Nov 27, 2012 at 8:30 PM, Stephen Warren swarren@wwwdotorg.orgwrote:
This adds a simple driver for the BCM2835's SD controller.
Workarounds are implemented for:
- Register writes can't be too close to each-other in time, or they will be lost.
- Register accesses must all be 32-bit, so implement custom accessors.
This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko.
Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley.
swarren changed the following for upstream:
- Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues.
- Remove register logging from read*/write* functions.
- Sort out confusion with min/max_freq values passed to add_sdhci().
- Use more descriptive variable names and calculations in IO accessors.
- Simplified and commented twoticks_delay calculation.
- checkpatch fixes.
Cc: Andy Fleming afleming@gmail.com Signed-off-by: Oleksandr Tymoshenko gonzo@bluezbox.com Signed-off-by: Stephen Warren swarren@wwwdotorg.org
Acked-by: Andy Fleming afleming@freescale.com