mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-21 11:44:01 +08:00
mmc: dt: Consolidate DT bindings
This patch unifies the current DT MMC bindings documentation and code, adds generic MMC DT bindings documentation, and updates .dts files for consistency. [cjb: typo fixes, addition of max-frequency property] Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
e6511df4f2
commit
7f217794ff
@ -11,9 +11,11 @@ Required properties:
|
||||
- interrupt-parent : interrupt source phandle.
|
||||
- clock-frequency : specifies eSDHC base clock frequency.
|
||||
- sdhci,wp-inverted : (optional) specifies that eSDHC controller
|
||||
reports inverted write-protect state;
|
||||
reports inverted write-protect state; New devices should use
|
||||
the generic "wp-inverted" property.
|
||||
- sdhci,1-bit-only : (optional) specifies that a controller can
|
||||
only handle 1-bit data transfers.
|
||||
only handle 1-bit data transfers. New devices should use the
|
||||
generic "bus-width = <1>" property.
|
||||
- sdhci,auto-cmd12: (optional) specifies that a controller can
|
||||
only handle auto CMD12.
|
||||
|
||||
|
@ -9,7 +9,7 @@ Required properties:
|
||||
- interrupts : Should contain eSDHC interrupt
|
||||
|
||||
Optional properties:
|
||||
- fsl,card-wired : Indicate the card is wired to host permanently
|
||||
- non-removable : Indicate the card is wired to host permanently
|
||||
- fsl,cd-internal : Indicate to use controller internal card detection
|
||||
- fsl,wp-internal : Indicate to use controller internal write protection
|
||||
- cd-gpios : Specify GPIOs for card detection
|
||||
|
@ -10,7 +10,8 @@ Required properties:
|
||||
|
||||
Optional properties:
|
||||
- gpios : may specify GPIOs in this order: Card-Detect GPIO,
|
||||
Write-Protect GPIO.
|
||||
Write-Protect GPIO. Note that this does not follow the
|
||||
binding from mmc.txt, for historic reasons.
|
||||
- interrupts : the interrupt of a card detect interrupt.
|
||||
- interrupt-parent : the phandle for the interrupt controller that
|
||||
services interrupts for this device.
|
||||
|
27
Documentation/devicetree/bindings/mmc/mmc.txt
Normal file
27
Documentation/devicetree/bindings/mmc/mmc.txt
Normal file
@ -0,0 +1,27 @@
|
||||
These properties are common to multiple MMC host controllers. Any host
|
||||
that requires the respective functionality should implement them using
|
||||
these definitions.
|
||||
|
||||
Required properties:
|
||||
- bus-width: Number of data lines, can be <1>, <4>, or <8>
|
||||
|
||||
Optional properties:
|
||||
- cd-gpios : Specify GPIOs for card detection, see gpio binding
|
||||
- wp-gpios : Specify GPIOs for write protection, see gpio binding
|
||||
- cd-inverted: when present, polarity on the wp gpio line is inverted
|
||||
- wp-inverted: when present, polarity on the wp gpio line is inverted
|
||||
- non-removable: non-removable slot (like eMMC)
|
||||
- max-frequency: maximum operating clock frequency
|
||||
|
||||
Example:
|
||||
|
||||
sdhci@ab000000 {
|
||||
compatible = "sdhci";
|
||||
reg = <0xab000000 0x200>;
|
||||
interrupts = <23>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&gpio 69 0>;
|
||||
cd-inverted;
|
||||
wp-gpios = <&gpio 70 0>;
|
||||
max-frequency = <50000000>;
|
||||
}
|
@ -7,12 +7,12 @@ Required properties:
|
||||
- compatible : Should be "nvidia,<chip>-sdhci"
|
||||
- reg : Should contain SD/MMC registers location and length
|
||||
- interrupts : Should contain SD/MMC interrupt
|
||||
- bus-width : Number of data lines, can be <1>, <4>, or <8>
|
||||
|
||||
Optional properties:
|
||||
- cd-gpios : Specify GPIOs for card detection
|
||||
- wp-gpios : Specify GPIOs for write protection
|
||||
- power-gpios : Specify GPIOs for power control
|
||||
- support-8bit : Boolean, indicates if 8-bit mode should be used.
|
||||
|
||||
Example:
|
||||
|
||||
@ -23,5 +23,5 @@ sdhci@c8000200 {
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ Optional properties:
|
||||
ti,dual-volt: boolean, supports dual voltage cards
|
||||
<supply-name>-supply: phandle to the regulator device tree node
|
||||
"supply-name" examples are "vmmc", "vmmc_aux" etc
|
||||
ti,bus-width: Number of data lines, default assumed is 1 if the property is missing.
|
||||
bus-width: Number of data lines, default assumed is 1 if the property is missing.
|
||||
cd-gpios: GPIOs for card detection
|
||||
wp-gpios: GPIOs for write protection
|
||||
ti,non-removable: non-removable slot (like eMMC)
|
||||
@ -27,7 +27,7 @@ Example:
|
||||
reg = <0x4809c000 0x400>;
|
||||
ti,hwmods = "mmc1";
|
||||
ti,dual-volt;
|
||||
ti,bus-width = <4>;
|
||||
bus-width = <4>;
|
||||
vmmc-supply = <&vmmc>; /* phandle to regulator node */
|
||||
ti,non-removable;
|
||||
};
|
||||
|
@ -35,7 +35,7 @@
|
||||
};
|
||||
|
||||
esdhc@50008000 { /* ESDHC2 */
|
||||
fsl,card-wired;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -76,7 +76,7 @@
|
||||
};
|
||||
|
||||
esdhc@50020000 { /* ESDHC3 */
|
||||
fsl,card-wired;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -41,7 +41,7 @@
|
||||
};
|
||||
|
||||
usdhc@0219c000 { /* uSDHC4 */
|
||||
fsl,card-wired;
|
||||
non-removable;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -57,7 +57,7 @@
|
||||
&mmc1 {
|
||||
vmmc-supply = <&vmmc1>;
|
||||
vmmc_aux-supply = <&vsim>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
|
@ -55,7 +55,7 @@
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <&vmmc>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
@ -72,5 +72,5 @@
|
||||
|
||||
&mmc5 {
|
||||
ti,non-removable;
|
||||
ti,bus-width = <4>;
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
@ -94,12 +94,12 @@
|
||||
|
||||
&mmc1 {
|
||||
vmmc-supply = <&vmmc>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
vmmc-supply = <&vaux1>;
|
||||
ti,bus-width = <8>;
|
||||
bus-width = <8>;
|
||||
ti,non-removable;
|
||||
};
|
||||
|
||||
@ -112,6 +112,6 @@
|
||||
};
|
||||
|
||||
&mmc5 {
|
||||
ti,bus-width = <4>;
|
||||
bus-width = <4>;
|
||||
ti,non-removable;
|
||||
};
|
||||
|
@ -54,6 +54,7 @@
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||
power-gpios = <&gpio 31 0>; /* gpio PD7 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@78000200 {
|
||||
@ -66,5 +67,6 @@
|
||||
|
||||
sdhci@78000400 {
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
|
@ -100,6 +100,7 @@
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 155 0>; /* gpio PT3 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000400 {
|
||||
@ -111,5 +112,6 @@
|
||||
wp-gpios = <&gpio 59 0>; /* gpio PH3 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
|
@ -97,6 +97,7 @@
|
||||
cd-gpios = <&gpio 173 0>; /* gpio PV5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 169 0>; /* gpio PV1 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000200 {
|
||||
@ -109,6 +110,7 @@
|
||||
|
||||
sdhci@c8000600 {
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
|
@ -104,10 +104,12 @@
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
|
||||
usb@c5000000 {
|
||||
|
@ -100,9 +100,11 @@
|
||||
cd-gpios = <&gpio 69 0>; /* gpio PI5 */
|
||||
wp-gpios = <&gpio 57 0>; /* gpio PH1 */
|
||||
power-gpios = <&gpio 70 0>; /* gpio PI6 */
|
||||
bus-width = <4>;
|
||||
};
|
||||
|
||||
sdhci@c8000600 {
|
||||
support-8bit;
|
||||
bus-width = <8>;
|
||||
};
|
||||
};
|
||||
|
@ -119,6 +119,7 @@
|
||||
sdhc@2e000 {
|
||||
status = "disabled";
|
||||
sdhci,1-bit-only;
|
||||
bus-width = <1>;
|
||||
};
|
||||
|
||||
par_io@e0100 {
|
||||
|
@ -1766,7 +1766,7 @@ static struct omap_mmc_platform_data *of_get_hsmmc_pdata(struct device *dev)
|
||||
pdata->slots[0].nonremovable = true;
|
||||
pdata->slots[0].no_regulator_off_init = true;
|
||||
}
|
||||
of_property_read_u32(np, "ti,bus-width", &bus_width);
|
||||
of_property_read_u32(np, "bus-width", &bus_width);
|
||||
if (bus_width == 4)
|
||||
pdata->slots[0].caps |= MMC_CAP_4_BIT_DATA;
|
||||
else if (bus_width == 8)
|
||||
|
@ -402,7 +402,7 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
|
||||
if (!np)
|
||||
return -ENODEV;
|
||||
|
||||
if (of_get_property(np, "fsl,card-wired", NULL))
|
||||
if (of_get_property(np, "non-removable", NULL))
|
||||
boarddata->cd_type = ESDHC_CD_PERMANENT;
|
||||
|
||||
if (of_get_property(np, "fsl,cd-controller", NULL))
|
||||
|
@ -42,7 +42,8 @@ static struct sdhci_ops sdhci_pltfm_ops = {
|
||||
#ifdef CONFIG_OF
|
||||
static bool sdhci_of_wp_inverted(struct device_node *np)
|
||||
{
|
||||
if (of_get_property(np, "sdhci,wp-inverted", NULL))
|
||||
if (of_get_property(np, "sdhci,wp-inverted", NULL) ||
|
||||
of_get_property(np, "wp-inverted", NULL))
|
||||
return true;
|
||||
|
||||
/* Old device trees don't have the wp-inverted property. */
|
||||
@ -59,13 +60,16 @@ void sdhci_get_of_property(struct platform_device *pdev)
|
||||
struct sdhci_host *host = platform_get_drvdata(pdev);
|
||||
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
|
||||
const __be32 *clk;
|
||||
u32 bus_width;
|
||||
int size;
|
||||
|
||||
if (of_device_is_available(np)) {
|
||||
if (of_get_property(np, "sdhci,auto-cmd12", NULL))
|
||||
host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12;
|
||||
|
||||
if (of_get_property(np, "sdhci,1-bit-only", NULL))
|
||||
if (of_get_property(np, "sdhci,1-bit-only", NULL) ||
|
||||
(of_property_read_u32(np, "bus-width", &bus_width) == 0 &&
|
||||
bus_width == 1))
|
||||
host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA;
|
||||
|
||||
if (sdhci_of_wp_inverted(np))
|
||||
|
Loading…
Reference in New Issue
Block a user