Commit 308f3f8d authored by Suman Tripathi's avatar Suman Tripathi Committed by Ulf Hansson

mmc: sdhci-of-arasan: Add the support for sdhci-arasan4.9a

This patch adds the quirks and compatible string in sdhci-of-arasan.c
to support sdhci-arasan4.9a version of controller.
Signed-off-by: default avatarSuman Tripathi <stripathi@apm.com>
Reviewed-by: default avatarMichal Simek <michal.simek@xilinx.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 4d0aa491
...@@ -8,7 +8,8 @@ Device Tree Bindings for the Arasan SDHCI Controller ...@@ -8,7 +8,8 @@ Device Tree Bindings for the Arasan SDHCI Controller
[3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt [3] Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
Required Properties: Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' - compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or
'arasan,sdhci-4.9a'
- reg: From mmc bindings: Register location and length. - reg: From mmc bindings: Register location and length.
- clocks: From clock bindings: Handles to clock inputs. - clocks: From clock bindings: Handles to clock inputs.
- clock-names: From clock bindings: Tuple including "clk_xin" and "clk_ahb" - clock-names: From clock bindings: Tuple including "clk_xin" and "clk_ahb"
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h>
#include "sdhci-pltfm.h" #include "sdhci-pltfm.h"
#define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c #define SDHCI_ARASAN_CLK_CTRL_OFFSET 0x2c
...@@ -168,6 +169,11 @@ static int sdhci_arasan_probe(struct platform_device *pdev) ...@@ -168,6 +169,11 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
goto clk_disable_all; goto clk_disable_all;
} }
if (of_device_is_compatible(pdev->dev.of_node, "arasan,sdhci-4.9a")) {
host->quirks |= SDHCI_QUIRK_NO_HISPD_BIT;
host->quirks2 |= SDHCI_QUIRK2_HOST_NO_CMD23;
}
sdhci_get_of_property(pdev); sdhci_get_of_property(pdev);
pltfm_host = sdhci_priv(host); pltfm_host = sdhci_priv(host);
pltfm_host->priv = sdhci_arasan; pltfm_host->priv = sdhci_arasan;
...@@ -208,6 +214,7 @@ static int sdhci_arasan_remove(struct platform_device *pdev) ...@@ -208,6 +214,7 @@ static int sdhci_arasan_remove(struct platform_device *pdev)
static const struct of_device_id sdhci_arasan_of_match[] = { static const struct of_device_id sdhci_arasan_of_match[] = {
{ .compatible = "arasan,sdhci-8.9a" }, { .compatible = "arasan,sdhci-8.9a" },
{ .compatible = "arasan,sdhci-4.9a" },
{ } { }
}; };
MODULE_DEVICE_TABLE(of, sdhci_arasan_of_match); MODULE_DEVICE_TABLE(of, sdhci_arasan_of_match);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment