aboutsummaryrefslogtreecommitdiff
path: root/include/linux/mmc/host.h
AgeCommit message (Collapse)AuthorFilesLines
2007-12-12mmc: remove unused 'mode' from the mmc_host structureNicolas Pitre1-4/+0
This field and corresponding defines are simply never used anywhere in the code. But its mere presence is enough to confuse some host driver authors who attempt to rely on it. Let's eliminate the possibility for confusion and remove it entirely. Signed-off-by: Nicolas Pitre <[email protected]> Signed-off-by: Pierre Ossman <[email protected]>
2007-09-24mmc: add led triggerPierre Ossman1-0/+6
Add a led trigger for each host controller that indicates if there is a request active on the controller. Signed-off-by: Pierre Ossman <[email protected]>
2007-09-23MMC headers learn about SPIDavid Brownell1-5/+11
Teach the MMC/SD/SDIO system headers that some hosts use SPI mode - New host capabilities and status bits * MMC_CAP_SPI, with mmc_host_is_spi() test * mmc_host.use_spi_crc flag - SPI-specific declarations: * Response types, MMC_RSP_SPI_R* * Two SPI-only commands * Status bits used native to SPI: R1_SPI_*, R2_SPI_* - Fix a few (unrelated) whitespace bugs in the headers. - Reorder a few mmc_host fields, removing several bytes of padding None of these changes affect current code. Signed-off-by: David Brownell <[email protected]> Signed-off-by: Pierre Ossman <[email protected]>
2007-09-23sdio: add interface for host side SDIO interrupt reportingNicolas Pitre1-0/+8
Signed-off-by: Nicolas Pitre <[email protected]> Signed-off-by: Pierre Ossman <[email protected]>
2007-09-23sdio: core support for SDIO function interruptNicolas Pitre1-0/+4
Signed-off-by: Nicolas Pitre <[email protected]> Signed-off-by: Pierre Ossman <[email protected]>
2007-09-23mmc: remove BYTEBLOCK capabilityPierre Ossman1-3/+2
Remove the BYTEBLOCK capability and let the broken hosts fail the requests with -EINVAL instead. Signed-off-by: Pierre Ossman <[email protected]>
2007-05-01MMC: Fix handling of low-voltage cardsPhilip Langdale1-8/+1
Fix handling of low voltage MMC cards. The latest MMC and SD specs both agree that support for low-voltage operations is indicated by bit 7 in the OCR. The MMC spec states that the low voltage range is 1.65-1.95V while the SD spec leaves the actual voltage range undefined - meaning that there is still no such thing as a low voltage SD card. However, an old Sandisk spec implied that bits 7.0 represented voltages below 2.0V in 1V or 0.5V increments, and the code was accordingly written with that expectation. This confusion meant that host drivers attempting to support the typical low voltage (1.8V) would set the wrong bits in the host OCR mask (usually bits 5 and/or 6) resulting in the the low voltage mode never being used. This change corrects the low voltage range and adds sanity checks on the reserved bits (0-6) and for SD cards that claim to support low-voltage operations. Signed-off-by: Philip Langdale <[email protected]> Signed-off-by: Pierre Ossman <[email protected]>
2007-05-01MMC: Consolidate voltage definitionsPhilip Langdale1-24/+1
Consolidate the list of available voltages. Up until now, a separate set of defines has been used for host->vdd than that used for the OCR voltage mask values. Having two sets of defines allows them to get out of sync and the current sets are already inconsistent with one claiming to describe ranges and the other specific voltages. Only the SDHCI driver uses the host->vdd defines and it is easily fixed to use the OCR defines. Signed-off-by: Philip Langdale <[email protected]> Signed-off-by: Pierre Ossman <[email protected]>
2007-05-01mmc: add bus handlerPierre Ossman1-1/+6
Delegate protocol handling to "bus handlers". This allows the core to just handle the task of arbitrating the bus. Initialisation and pampering of cards is now done by the different bus handlers. This design also allows MMC and SD (and later SDIO) to be more cleanly separated, allowing easier maintenance. Signed-off-by: Pierre Ossman <[email protected]>
2007-05-01mmc: Move core functions to subdirPierre Ossman1-1/+1
Create a "core" subdirectory to house the central bus handling functions. Signed-off-by: Pierre Ossman <[email protected]>
2007-05-01mmc: deprecate mmc bus topologyPierre Ossman1-3/+1
The classic MMC bus was defined as multi card bus system, which is reflected in the design in the MMC layer. When SD showed up, the bus topology was abandoned and a star topology (one card per host) was mandated. MMC version 4 has followed this, officially deprecating the bus topology. As we do not have any known users of the bus topology we can remove support for it. This will simplify the code and rectify some incorrect assumptions in the newer additions. Signed-off-by: Pierre Ossman <[email protected]>
2007-05-01mmc: Flush pending detects on host removalPierre Ossman1-0/+3
Make sure we kill of any pending detection runs when the host is removed instead of when it is freed. Also add some debugging to make sure the driver doesn't queue up more detection after it has removed the host. Signed-off-by: Pierre Ossman <[email protected]>
2007-05-01mmc: Move OCR bit definesPierre Ossman1-0/+25
All host drivers were #include:ing mmc/protocol.h just to get access to the OCR bit defines. Move these to host.h instead. Signed-off-by: Pierre Ossman <[email protected]>
2007-03-06mmc: require explicit support for high-speedPierre Ossman1-0/+8
The new high-speed timings are similar to each other and the old system, but not identical. And although things "just work" most of the time, sometimes it does not. So we need to start marking which hosts are known to fully comply with the new timings. Signed-off-by: Pierre Ossman <[email protected]>
2007-02-04mmc: Allow host drivers to specify max block countPierre Ossman1-1/+2
Many controllers have an upper limit on the number of blocks that can be transferred in one request. Allow the host drivers to specify this and make sure we avoid hitting this limit. Also change the max_sectors field to avoid confusion. This makes it map less directly to the block layer limits, but as they didn't apply directly on MMC cards anyway, this isn't a great loss. Signed-off-by: Pierre Ossman <[email protected]>
2007-02-04mmc: Allow host drivers to specify a max block sizePierre Ossman1-0/+1
Most controllers have an upper limit on the block size. Allow the host drivers to specify this and make sure we avoid hitting this limit. Signed-off-by: Pierre Ossman <[email protected]>
2007-02-04mmc: let host be parent of cardsPierre Ossman1-0/+1
Change the parent of cards to be a specific host (a class device), not the physical controller. This is particularly useful when the hardware has multiple slots, meaning multiple hosts. Signed-off-by: Pierre Ossman <[email protected]>
2007-02-04mmc: replace host->card_busyPierre Ossman1-2/+3
As card_busy was only used to indicate if the host was exclusively claimed and not really used to identify a particular card, replacing it with just a boolean makes things a lot more easily understandable. Signed-off-by: Pierre Ossman <[email protected]>
2006-12-05Merge branch 'master' of ↵David Howells1-4/+4
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: drivers/infiniband/core/iwcm.c drivers/net/chelsio/cxgb2.c drivers/net/wireless/bcm43xx/bcm43xx_main.c drivers/net/wireless/prism54/islpci_eth.c drivers/usb/core/hub.h drivers/usb/input/hid-core.c net/core/netpoll.c Fix up merge failures with Linus's head and fix new compilation failures. Signed-Off-By: David Howells <[email protected]>
2006-12-01Driver core: convert mmc code to use struct deviceGreg Kroah-Hartman1-4/+4
Converts from using struct "class_device" to "struct device" making everything show up properly in /sys/devices/ with symlinks from the /sys/class directory. Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-11-22WorkStruct: make allyesconfigDavid Howells1-1/+1
Fix up for make allyesconfig. Signed-Off-By: David Howells <[email protected]>
2006-09-24[MMC] MMC_CAP_BYTEBLOCK flag for non-log2 block sizes capable hostsRussell King1-0/+1
Some MMC hosts can only handle log2 block sizes. Unfortunately, the MMC password support needs to be able to send non-log2 block sizes. Provide a capability so that the MMC password support can decide whether it should use this support or not. The unfortunate side effect of this host limitation is that any MMC card protected by a password which is not a log2 block size can not be accessed on a host which only allows a log2 block size. This change just adds the flag. The MMC password support code needs updating to use it (if and when it is finally submitted.) Signed-off-by: Russell King <[email protected]>
2006-09-16[MMC] Add multi block-write capabilityRussell King1-0/+1
Add a capability flag for drivers to set when they can perform multi- block transfers to cards _and_ correctly report the number of bytes transferred should an error occur. The last point is very important - if a driver reports more bytes than were actually accepted by the card and an error occurs, there is the possibility for data loss. Pierre Ossman provided the patch for wbsd and sdhci. Signed-off-by: Pierre Ossman <[email protected]> Signed-off-by: Russell King <[email protected]>
2006-09-07[MMC] constify mmc_host_opsDavid Brownell1-1/+1
Let drivers constify MMC host method operations tables, moving them from ".data" to ".rodata". Signed-off-by: David Brownell <[email protected]> Acked-by: Pierre Ossman <[email protected]> Signed-off-by: Russell King <[email protected]>
2005-09-08[MMC] Ensure correct mmc_priv() behaviourRussell King1-1/+7
mmc_priv() has some nasty effects if the wrong pointer type is passed to it. Introduce type checking, which also means we get the right type. Also add an additional member to mmc_host which is used to align host-private data appropriately. Signed-off-by: Russell King <[email protected]>
2005-09-08[MMC] Allow detection/removal to be delayedRichard Purdie1-1/+1
Change mmc_detect_change() to take a delay argument such that the detection of card insertions and removals can be delayed according to the requirements of the host driver or platform. Signed-off-by: Richard Purdie <[email protected]> Signed-off-by: Russell King <[email protected]>
2005-09-07[PATCH] sd: SD 4-bit busPierre Ossman1-0/+9
Infrastructure for 4-bit bus transfers with SD cards. Signed-off-by: Pierre Ossman <[email protected]> Cc: Russell King <[email protected]> Cc: David Brownell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2005-09-07[PATCH] sd: read-only switchPierre Ossman1-0/+1
Support for the read-only switch on SD cards which must be enforced by the host. Signed-off-by: Pierre Ossman <[email protected]> Cc: Russell King <[email protected]> Cc: David Brownell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2005-09-07[PATCH] sd: initialize SD cardsPierre Ossman1-0/+4
Support for the Secure Digital protocol in the MMC layer. A summary of the legal issues surrounding SD cards, as understood by yours truly: Members of the Secure Digital Association, hereafter SDA, are required to sign a NDA[1] before given access to any specifications. It has been speculated that including an SD implementation would forbid these members to redistribute Linux. This is the basic problem with SD support so it is unclear if it even is a problem since it has no effect on those of us that aren't members. The SDA doesn't seem to enforce these rules though since the patches included here are based on documentation made public by some of the members. The most complete specs[2] are actually released by Sandisk, one of the founding companies of the SDA. Because of this the NDA is considered a non-issue by most involved in the discussions concerning these patches. It might be that the SDA is only interested in protecting the so called "secure" bits of SD, which so far hasn't been found in any public spec. (The card is split into two sections, one "normal" and one "secure" which has an access scheme similar to TPM:s). (As a side note, Microsoft is working to make things easier for us since they want to be able to include the source code for a SD driver in one of their development kits. HP is making sure that the new NDA will allow a Linux implementation. So far only the SDIO specs have been opened up[3]. More will hopefully follow.) [1] http://www.sdcard.org/membership/images/ippolicy.pdf [2] http://www.sandisk.com/pdf/oem/ProdManualSDCardv1.9.pdf [3] http://www.sdcard.org/sdio/Simplified%20SDIO%20Card%20Specification.pdf This patch contains the central parts of the SD support. If no MMC cards are found on a bus then the MMC layer proceeds looking for SD cards. Helper functions are extended to handle the special needs of SD cards. Signed-off-by: Pierre Ossman <[email protected]> Cc: Russell King <[email protected]> Cc: David Brownell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2005-09-03[MMC] ios for mmc chip selectPierre Ossman1-0/+6
Adds a new ios for setting the chip select pin on MMC cards. Needed on SD controllers which use this pin for other things and therefore cannot have it pulled high at all times. Signed-off-by: Pierre Ossman <[email protected]> Signed-off-by: Russell King <[email protected]>
2005-08-19[MMC] Use an IDR for host name indiciesRussell King1-0/+1
Signed-off-by: Russell King <[email protected]>
2005-08-19[MMC] Use class device name for mmc host nameRussell King1-2/+1
There's no point in having the host name duplicated between the mmc_host structure and the encapsulated class device structure. Signed-off-by: Russell King <[email protected]>
2005-08-19[MMC] Add MMC class devicesRussell King1-0/+1
Create a mmc_host class to allow enumeration of MMC host controllers even though they have no card(s) inserted. Patch based on work by Pierre Ossman. Signed-off-by: Russell King <[email protected]>
2005-08-19[MMC] Add mmc_hostname() macroRussell King1-0/+1
mmc_hostname() returns a pointer to the hostname for the mmc_host. Signed-off-by: Russell King <[email protected]>
2005-04-16[PATCH] fix u32 vs. pm_message_t in rest of the treePavel Machek1-1/+1
This fixes u32 vs. pm_message_t confusion in remaining places. Fortunately there's few of them. Signed-off-by: Pavel Machek <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2005-04-16Linux-2.6.12-rc2Linus Torvalds1-0/+108
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!