dts: socfpga: Add support for SD/MMC on the SOCFPGA platform
authorDinh Nguyen <dinguyen@altera.com>
Tue, 18 Feb 2014 02:31:02 +0000 (20:31 -0600)
committerDinh Nguyen <dinguyen@altera.com>
Mon, 10 Mar 2014 04:11:35 +0000 (23:11 -0500)
Introduce "altr,socfpga-dw-mshc" to enable Altera's SOCFPGA platform
specific implementation of the dw_mmc driver.

Also add the "syscon" binding to the "altr,sys-mgr" node. The clock
driver can use the syscon driver to toggle the register for the SD/MMC
clock phase shift settings.

Finally, fix an indentation error for the sysmgr node.

Signed-off-by: Dinh Nguyen <dinguyen@altera.com>
Acked-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Tested-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Chris Ball <chris@printf.net>
Documentation/devicetree/bindings/mmc/socfpga-dw-mshc.txt [new file with mode: 0644]
arch/arm/boot/dts/socfpga.dtsi
arch/arm/boot/dts/socfpga_arria5.dtsi
arch/arm/boot/dts/socfpga_cyclone5.dtsi
arch/arm/boot/dts/socfpga_vt.dts

diff --git a/Documentation/devicetree/bindings/mmc/socfpga-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/socfpga-dw-mshc.txt
new file mode 100644 (file)
index 0000000..4897bea
--- /dev/null
@@ -0,0 +1,23 @@
+* Altera SOCFPGA specific extensions to the Synopsys Designware Mobile
+  Storage Host Controller
+
+The Synopsys 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 Synopsys dw mshc controller properties described
+by synopsys-dw-mshc.txt and the properties used by the Altera SOCFPGA specific
+extensions to the Synopsys Designware Mobile Storage Host Controller.
+
+Required Properties:
+
+* compatible: should be
+       - "altr,socfpga-dw-mshc": for Altera's SOCFPGA platform
+
+Example:
+
+       mmc: dwmmc0@ff704000 {
+               compatible = "altr,socfpga-dw-mshc";
+               reg = <0xff704000 0x1000>;
+               interrupts = <0 129 4>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
index 3ce09e3..d2ff3d5 100644 (file)
                        arm,data-latency = <2 1 1>;
                };
 
+               mmc: dwmmc0@ff704000 {
+                       compatible = "altr,socfpga-dw-mshc";
+                       reg = <0xff704000 0x1000>;
+                       interrupts = <0 139 4>;
+                       fifo-depth = <0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&l4_mp_clk>, <&sdmmc_clk>;
+                       clock-names = "biu", "ciu";
+               };
+
                /* Local timer */
                timer@fffec600 {
                        compatible = "arm,cortex-a9-twd-timer";
                };
 
                sysmgr@ffd08000 {
-                               compatible = "altr,sys-mgr";
-                               reg = <0xffd08000 0x4000>;
-                       };
+                       compatible = "altr,sys-mgr", "syscon";
+                       reg = <0xffd08000 0x4000>;
+               };
        };
 };
index a85b404..6c87b70 100644 (file)
                        };
                };
 
+               dwmmc0@ff704000 {
+                       num-slots = <1>;
+                       supports-highspeed;
+                       broken-cd;
+
+                       slot@0 {
+                               reg = <0>;
+                               bus-width = <4>;
+                       };
+               };
+
                serial0@ffc02000 {
                        clock-frequency = <100000000>;
                };
index a8716f6..ca41b0e 100644 (file)
                        };
                };
 
+               dwmmc0@ff704000 {
+                       num-slots = <1>;
+                       supports-highspeed;
+                       broken-cd;
+
+                       slot@0 {
+                               reg = <0>;
+                               bus-width = <4>;
+                       };
+               };
+
                ethernet@ff702000 {
                        phy-mode = "rgmii";
                        phy-addr = <0xffffffff>; /* probe for phy addr */
index c01acce..91f6ccf 100644 (file)
                        };
                };
 
+               dwmmc0@ff704000 {
+                       num-slots = <1>;
+                       supports-highspeed;
+                       broken-cd;
+
+                       slot@0 {
+                               reg = <0>;
+                               bus-width = <4>;
+                       };
+               };
+
                ethernet@ff700000 {
                        phy-mode = "gmii";
                        status = "okay";