forked from beagleboard/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'mmc-merge-for-3.7-rc1' of git://git.kernel.org/pub/scm/lin…
…ux/kernel/git/cjb/mmc Pull MMC updates from Chris Ball: "Core: - Add DT properties for card detection (broken-cd, cd-gpios, non-removable) - Don't poll non-removable devices - Fixup/rework eMMC sleep mode/"power off notify" feature - Support eMMC background operations (BKOPS). To set the one-time programmable fuse that enables bkops on an eMMC that doesn't already have it set, you can use the "mmc bkops enable" command in: git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git Drivers: - atmel-mci, dw_mmc, pxa-mci, dove, s3c, spear: Add device tree support - bfin_sdh: Add support for the controller in bf60x - dw_mmc: Support Samsung Exynos SoCs - eSDHC: Add ADMA support - sdhci: Support testing a cd-gpio (from slot-gpio) instead of presence bit - sdhci-pltfm: Support broken-cd DT property - tegra: Convert to only supporting DT (mach-tegra has gone DT-only)" * tag 'mmc-merge-for-3.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (67 commits) mmc: core: Fixup broken suspend and eMMC4.5 power off notify mmc: sdhci-spear: Add clk_{un}prepare() support mmc: sdhci-spear: add device tree bindings mmc: sdhci-s3c: Add clk_(enable/disable) in runtime suspend/resume mmc: core: Replace MMC_CAP2_BROKEN_VOLTAGE with test for fixed regulator mmc: sdhci-pxav3: Use sdhci_get_of_property for parsing DT quirks mmc: dt: Support "broken-cd" property in sdhci-pltfm mmc: sdhci-s3c: fix the wrong number of max bus clocks mmc: sh-mmcif: avoid oops on spurious interrupts mmc: sh-mmcif: properly handle MMC_WRITE_MULTIPLE_BLOCK completion IRQ mmc: sdhci-s3c: Fix crash on module insertion for second time mmc: sdhci-s3c: Enable only required bus clock mmc: Revert "mmc: dw_mmc: Add check for IDMAC configuration" mmc: mxcmmc: fix bug that may block a data transfer forever mmc: omap_hsmmc: Pass on the suspend failure to the PM core mmc: atmel-mci: AP700x PDC is not connected to MCI mmc: atmel-mci: DMA can be used with other controllers mmc: mmci: use clk_prepare_enable and clk_disable_unprepare mmc: sdhci-s3c: Add device tree support mmc: dw_mmc: add support for exynos specific implementation of dw-mshc ...
- Loading branch information
Showing
55 changed files
with
2,277 additions
and
809 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
* Atmel High Speed MultiMedia Card Interface | ||
|
||
This controller on atmel products provides an interface for MMC, SD and SDIO | ||
types of memory cards. | ||
|
||
This file documents differences between the core properties described | ||
by mmc.txt and the properties used by the atmel-mci driver. | ||
|
||
1) MCI node | ||
|
||
Required properties: | ||
- compatible: should be "atmel,hsmci" | ||
- #address-cells: should be one. The cell is the slot id. | ||
- #size-cells: should be zero. | ||
- at least one slot node | ||
|
||
The node contains child nodes for each slot that the platform uses | ||
|
||
Example MCI node: | ||
|
||
mmc0: mmc@f0008000 { | ||
compatible = "atmel,hsmci"; | ||
reg = <0xf0008000 0x600>; | ||
interrupts = <12 4>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
[ child node definitions...] | ||
}; | ||
|
||
2) slot nodes | ||
|
||
Required properties: | ||
- reg: should contain the slot id. | ||
- bus-width: number of data lines connected to the controller | ||
|
||
Optional properties: | ||
- cd-gpios: specify GPIOs for card detection | ||
- cd-inverted: invert the value of external card detect gpio line | ||
- wp-gpios: specify GPIOs for write protection | ||
|
||
Example slot node: | ||
|
||
slot@0 { | ||
reg = <0>; | ||
bus-width = <4>; | ||
cd-gpios = <&pioD 15 0> | ||
cd-inverted; | ||
}; | ||
|
||
Example full MCI node: | ||
mmc0: mmc@f0008000 { | ||
compatible = "atmel,hsmci"; | ||
reg = <0xf0008000 0x600>; | ||
interrupts = <12 4>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
slot@0 { | ||
reg = <0>; | ||
bus-width = <4>; | ||
cd-gpios = <&pioD 15 0> | ||
cd-inverted; | ||
}; | ||
slot@1 { | ||
reg = <1>; | ||
bus-width = <4>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
* Samsung Exynos specific extensions to the Synopsis Designware Mobile | ||
Storage Host Controller | ||
|
||
The Synopsis designware mobile storage host controller is used to interface | ||
a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | ||
differences between the core Synopsis dw mshc controller properties described | ||
by synposis-dw-mshc.txt and the properties used by the Samsung Exynos specific | ||
extensions to the Synopsis Designware Mobile Storage Host Controller. | ||
|
||
Required Properties: | ||
|
||
* compatible: should be | ||
- "samsung,exynos4210-dw-mshc": for controllers with Samsung Exynos4210 | ||
specific extentions. | ||
- "samsung,exynos4412-dw-mshc": for controllers with Samsung Exynos4412 | ||
specific extentions. | ||
- "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 | ||
specific extentions. | ||
|
||
* samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface | ||
unit (ciu) clock. This property is applicable only for Exynos5 SoC's and | ||
ignored for Exynos4 SoC's. The valid range of divider value is 0 to 7. | ||
|
||
* samsung,dw-mshc-sdr-timing: Specifies the value of CIU clock phase shift value | ||
in transmit mode and CIU clock phase shift value in receive mode for single | ||
data rate mode operation. Refer notes below for the order of the cells and the | ||
valid values. | ||
|
||
* samsung,dw-mshc-ddr-timing: Specifies the value of CUI clock phase shift value | ||
in transmit mode and CIU clock phase shift value in receive mode for double | ||
data rate mode operation. Refer notes below for the order of the cells and the | ||
valid values. | ||
|
||
Notes for the sdr-timing and ddr-timing values: | ||
|
||
The order of the cells should be | ||
- First Cell: CIU clock phase shift value for tx mode. | ||
- Second Cell: CIU clock phase shift value for rx mode. | ||
|
||
Valid values for SDR and DDR CIU clock timing for Exynos5250: | ||
- valid value for tx phase shift and rx phase shift is 0 to 7. | ||
- when CIU clock divider value is set to 3, all possible 8 phase shift | ||
values can be used. | ||
- if CIU clock divider value is 0 (that is divide by 1), both tx and rx | ||
phase shift clocks should be 0. | ||
|
||
Required properties for a slot: | ||
|
||
* gpios: specifies a list of gpios used for command, clock and data bus. The | ||
first gpio is the command line and the second gpio is the clock line. The | ||
rest of the gpios (depending on the bus-width property) are the data lines in | ||
no particular order. The format of the gpio specifier depends on the gpio | ||
controller. | ||
|
||
Example: | ||
|
||
The MSHC controller node can be split into two portions, SoC specific and | ||
board specific portions as listed below. | ||
|
||
dwmmc0@12200000 { | ||
compatible = "samsung,exynos5250-dw-mshc"; | ||
reg = <0x12200000 0x1000>; | ||
interrupts = <0 75 0>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
}; | ||
|
||
dwmmc0@12200000 { | ||
num-slots = <1>; | ||
supports-highspeed; | ||
broken-cd; | ||
fifo-depth = <0x80>; | ||
card-detect-delay = <200>; | ||
samsung,dw-mshc-ciu-div = <3>; | ||
samsung,dw-mshc-sdr-timing = <2 3>; | ||
samsung,dw-mshc-ddr-timing = <1 2>; | ||
|
||
slot@0 { | ||
reg = <0>; | ||
bus-width = <8>; | ||
gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>, | ||
<&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>, | ||
<&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>, | ||
<&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>, | ||
<&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
* PXA MMC drivers | ||
|
||
Driver bindings for the PXA MCI (MMC/SDIO) interfaces | ||
|
||
Required properties: | ||
- compatible: Should be "marvell,pxa-mmc". | ||
- vmmc-supply: A regulator for VMMC | ||
|
||
Optional properties: | ||
- marvell,detect-delay-ms: sets the detection delay timeout in ms. | ||
- marvell,gpio-power: GPIO spec for the card power enable pin | ||
|
||
This file documents differences between the core properties in mmc.txt | ||
and the properties used by the pxa-mmc driver. | ||
|
||
Examples: | ||
|
||
mmc0: mmc@41100000 { | ||
compatible = "marvell,pxa-mmc"; | ||
reg = <0x41100000 0x1000>; | ||
interrupts = <23>; | ||
cd-gpios = <&gpio 23 0>; | ||
wp-gpios = <&gpio 24 0>; | ||
}; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
* Samsung's SDHCI Controller device tree bindings | ||
|
||
Samsung's SDHCI controller is used as a connectivity interface with external | ||
MMC, SD and eMMC storage mediums. This file documents differences between the | ||
core mmc properties described by mmc.txt and the properties used by the | ||
Samsung implmentation of the SDHCI controller. | ||
|
||
Note: The mmc core bindings documentation states that if none of the core | ||
card-detect bindings are used, then the standard sdhci card detect mechanism | ||
is used. The Samsung's SDHCI controller bindings extends this as listed below. | ||
|
||
[A] The property "samsung,cd-pinmux-gpio" can be used as stated in the | ||
"Optional Board Specific Properties" section below. | ||
|
||
[B] If core card-detect bindings and "samsung,cd-pinmux-gpio" property | ||
is not specified, it is assumed that there is no card detection | ||
mechanism used. | ||
|
||
Required SoC Specific Properties: | ||
- compatible: should be one of the following | ||
- "samsung,s3c6410-sdhci": For controllers compatible with s3c6410 sdhci | ||
controller. | ||
- "samsung,exynos4210-sdhci": For controllers compatible with Exynos4 sdhci | ||
controller. | ||
|
||
Required Board Specific Properties: | ||
- gpios: Should specify the gpios used for clock, command and data lines. The | ||
gpio specifier format depends on the gpio controller. | ||
|
||
Optional Board Specific Properties: | ||
- samsung,cd-pinmux-gpio: Specifies the card detect line that is routed | ||
through a pinmux to the card-detect pin of the card slot. This property | ||
should be used only if none of the mmc core card-detect properties are | ||
used. | ||
|
||
Example: | ||
sdhci@12530000 { | ||
compatible = "samsung,exynos4210-sdhci"; | ||
reg = <0x12530000 0x100>; | ||
interrupts = <0 75 0>; | ||
bus-width = <4>; | ||
cd-gpios = <&gpk2 2 2 3 3>; | ||
gpios = <&gpk2 0 2 0 3>, /* clock line */ | ||
<&gpk2 1 2 0 3>, /* command line */ | ||
<&gpk2 3 2 3 3>, /* data line 0 */ | ||
<&gpk2 4 2 3 3>, /* data line 1 */ | ||
<&gpk2 5 2 3 3>, /* data line 2 */ | ||
<&gpk2 6 2 3 3>; /* data line 3 */ | ||
}; | ||
|
||
Note: This example shows both SoC specific and board specific properties | ||
in a single device node. The properties can be actually be seperated | ||
into SoC specific node and board specific node. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
* Marvell sdhci-dove controller | ||
|
||
This file documents differences between the core properties in mmc.txt | ||
and the properties used by the sdhci-pxav2 and sdhci-pxav3 drivers. | ||
|
||
- compatible: Should be "marvell,dove-sdhci". | ||
|
||
Example: | ||
|
||
sdio0: sdio@92000 { | ||
compatible = "marvell,dove-sdhci"; | ||
reg = <0x92000 0x100>; | ||
interrupts = <35>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
* SPEAr SDHCI Controller | ||
|
||
This file documents differences between the core properties in mmc.txt | ||
and the properties used by the sdhci-spear driver. | ||
|
||
Required properties: | ||
- compatible: "st,spear300-sdhci" | ||
|
||
Optional properties: | ||
- cd-gpios: card detect gpio, with zero flags. | ||
|
||
Example: | ||
|
||
sdhci@fc000000 { | ||
compatible = "st,spear300-sdhci"; | ||
reg = <0xfc000000 0x1000>; | ||
cd-gpios = <&gpio0 6 0>; | ||
}; |
79 changes: 79 additions & 0 deletions
79
Documentation/devicetree/bindings/mmc/synposis-dw-mshc.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
* Synopsis Designware Mobile Storage Host Controller | ||
|
||
The Synopsis designware mobile storage host controller is used to interface | ||
a SoC with storage medium such as eMMC or SD/MMC cards. This file documents | ||
differences between the core mmc properties described by mmc.txt and the | ||
properties used by the Synopsis Designware Mobile Storage Host Controller. | ||
|
||
Required Properties: | ||
|
||
* compatible: should be | ||
- snps,dw-mshc: for controllers compliant with synopsis dw-mshc. | ||
* #address-cells: should be 1. | ||
* #size-cells: should be 0. | ||
|
||
# Slots: The slot specific information are contained within child-nodes with | ||
each child-node representing a supported slot. There should be atleast one | ||
child node representing a card slot. The name of the child node representing | ||
the slot is recommended to be slot@n where n is the unique number of the slot | ||
connnected to the controller. The following are optional properties which | ||
can be included in the slot child node. | ||
|
||
* reg: specifies the physical slot number. The valid values of this | ||
property is 0 to (num-slots -1), where num-slots is the value | ||
specified by the num-slots property. | ||
|
||
* bus-width: as documented in mmc core bindings. | ||
|
||
* wp-gpios: specifies the write protect gpio line. The format of the | ||
gpio specifier depends on the gpio controller. If the write-protect | ||
line is not available, this property is optional. | ||
|
||
Optional properties: | ||
|
||
* num-slots: specifies the number of slots supported by the controller. | ||
The number of physical slots actually used could be equal or less than the | ||
value specified by num-slots. If this property is not specified, the value | ||
of num-slot property is assumed to be 1. | ||
|
||
* fifo-depth: The maximum size of the tx/rx fifo's. If this property is not | ||
specified, the default value of the fifo size is determined from the | ||
controller registers. | ||
|
||
* card-detect-delay: Delay in milli-seconds before detecting card after card | ||
insert event. The default value is 0. | ||
|
||
* supports-highspeed: Enables support for high speed cards (upto 50MHz) | ||
|
||
* broken-cd: as documented in mmc core bindings. | ||
|
||
Aliases: | ||
|
||
- All the MSHC controller nodes should be represented in the aliases node using | ||
the following format 'mshc{n}' where n is a unique number for the alias. | ||
|
||
Example: | ||
|
||
The MSHC controller node can be split into two portions, SoC specific and | ||
board specific portions as listed below. | ||
|
||
dwmmc0@12200000 { | ||
compatible = "snps,dw-mshc"; | ||
reg = <0x12200000 0x1000>; | ||
interrupts = <0 75 0>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
}; | ||
|
||
dwmmc0@12200000 { | ||
num-slots = <1>; | ||
supports-highspeed; | ||
broken-cd; | ||
fifo-depth = <0x80>; | ||
card-detect-delay = <200>; | ||
|
||
slot@0 { | ||
reg = <0>; | ||
bus-width = <8>; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1544,7 +1544,7 @@ S: Supported | |
F: drivers/rtc/rtc-bfin.c | ||
|
||
BLACKFIN SDH DRIVER | ||
M: Cliff Cai <cliff.cai@analog.com> | ||
M: Sonic Zhang <sonic.zhang@analog.com> | ||
L: [email protected] | ||
W: http://blackfin.uclinux.org | ||
S: Supported | ||
|
@@ -5207,8 +5207,10 @@ S: Maintained | |
F: drivers/mmc/host/omap.c | ||
|
||
OMAP HS MMC SUPPORT | ||
M: Venkatraman S <[email protected]> | ||
L: [email protected] | ||
L: [email protected] | ||
S: Orphan | ||
S: Maintained | ||
F: drivers/mmc/host/omap_hsmmc.c | ||
|
||
OMAP RANDOM NUMBER GENERATOR SUPPORT | ||
|
Oops, something went wrong.