ARM: dts: AM33XX: Add MMC support and documentation
authorMatt Porter <mporter@ti.com>
Tue, 10 Sep 2013 19:24:39 +0000 (14:24 -0500)
committerBenoit Cousson <bcousson@baylibre.com>
Fri, 11 Oct 2013 19:06:29 +0000 (21:06 +0200)
Adds AM33XX MMC support for am335x-bone, am335x-evm and am335x-evmsk boards.

Also added is the DMA binding definitions based on the generic DMA request
binding.

Additional changes made to DTS:
* Interrupt, reg and compatible properties added
* ti,needs-special-hs-handling added

Signed-off-by: Matt Porter <mporter@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Joel Fernandes <joelf@ti.com>
Signed-off-by: Benoit Cousson <bcousson@baylibre.com>
Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
arch/arm/boot/dts/am335x-bone.dts
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am335x-evmsk.dts
arch/arm/boot/dts/am33xx.dtsi

index ed271fc..8c8908a 100644 (file)
@@ -20,8 +20,29 @@ ti,dual-volt: boolean, supports dual voltage cards
 ti,non-removable: non-removable slot (like eMMC)
 ti,needs-special-reset: Requires a special softreset sequence
 ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High Speed
+dmas: List of DMA specifiers with the controller specific format
+as described in the generic DMA client binding. A tx and rx
+specifier is required.
+dma-names: List of DMA request names. These strings correspond
+1:1 with the DMA specifiers listed in dmas. The string naming is
+to be "rx" and "tx" for RX and TX DMA requests, respectively.
+
+Examples:
+
+[hwmod populated DMA resources]
+
+       mmc1: mmc@0x4809c000 {
+               compatible = "ti,omap4-hsmmc";
+               reg = <0x4809c000 0x400>;
+               ti,hwmods = "mmc1";
+               ti,dual-volt;
+               bus-width = <4>;
+               vmmc-supply = <&vmmc>; /* phandle to regulator node */
+               ti,non-removable;
+       };
+
+[generic DMA request binding]
 
-Example:
        mmc1: mmc@0x4809c000 {
                compatible = "ti,omap4-hsmmc";
                reg = <0x4809c000 0x400>;
@@ -30,4 +51,7 @@ Example:
                bus-width = <4>;
                vmmc-supply = <&vmmc>; /* phandle to regulator node */
                ti,non-removable;
+               dmas = <&edma 24
+                       &edma 25>;
+               dma-names = "tx", "rx";
        };
index 7993c48..d5f43fe 100644 (file)
@@ -9,3 +9,14 @@
 
 #include "am33xx.dtsi"
 #include "am335x-bone-common.dtsi"
+
+&ldo3_reg {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-always-on;
+};
+
+&mmc1 {
+       status = "okay";
+       vmmc-supply = <&ldo3_reg>;
+};
index e8ec875..bc4a69d 100644 (file)
                };
 
                vmmc_reg: regulator@12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3300000>;
                        regulator-always-on;
                };
        };
                ti,adc-channels = <4 5 6 7>;
        };
 };
+
+&mmc1 {
+       status = "okay";
+       vmmc-supply = <&vmmc_reg>;
+};
index 4f339fa..55fd194 100644 (file)
                };
 
                vmmc_reg: regulator@12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3300000>;
                        regulator-always-on;
                };
        };
        phy_id = <&davinci_mdio>, <1>;
        phy-mode = "rgmii-txid";
 };
+
+&mmc1 {
+       status = "okay";
+       vmmc-supply = <&vmmc_reg>;
+};
index 9cd60bf..553adc6 100644 (file)
                        status = "disabled";
                };
 
+               mmc1: mmc@48060000 {
+                       compatible = "ti,omap4-hsmmc";
+                       ti,hwmods = "mmc1";
+                       ti,dual-volt;
+                       ti,needs-special-reset;
+                       ti,needs-special-hs-handling;
+                       dmas = <&edma 24
+                               &edma 25>;
+                       dma-names = "tx", "rx";
+                       interrupts = <64>;
+                       interrupt-parent = <&intc>;
+                       reg = <0x48060000 0x1000>;
+                       status = "disabled";
+               };
+
+               mmc2: mmc@481d8000 {
+                       compatible = "ti,omap4-hsmmc";
+                       ti,hwmods = "mmc2";
+                       ti,needs-special-reset;
+                       dmas = <&edma 2
+                               &edma 3>;
+                       dma-names = "tx", "rx";
+                       interrupts = <28>;
+                       interrupt-parent = <&intc>;
+                       reg = <0x481d8000 0x1000>;
+                       status = "disabled";
+               };
+
+               mmc3: mmc@47810000 {
+                       compatible = "ti,omap4-hsmmc";
+                       ti,hwmods = "mmc3";
+                       ti,needs-special-reset;
+                       interrupts = <29>;
+                       interrupt-parent = <&intc>;
+                       reg = <0x47810000 0x1000>;
+                       status = "disabled";
+               };
+
                wdt2: wdt@44e35000 {
                        compatible = "ti,omap3-wdt";
                        ti,hwmods = "wd_timer2";