Add a Driver to support the SDHCI controller of the Marvell Berlin SoCs.
This controller supports 3 sockets.
+
+static struct sdhci_ops sdhci_berlin_ops = {
+ .get_max_clock = sdhci_pltfm_clk_get_max_clock,
+};
+
+static struct sdhci_pltfm_data sdhci_berlin2_pdata = {
+ .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
+ SDHCI_QUIRK_BROKEN_ADMA |
+ SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
+ .ops = &sdhci_berlin_ops,
+};
+
+static struct sdhci_pltfm_data sdhci_berlin2q_pdata = {
+ .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
+ SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
+ SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
+ .ops = &sdhci_berlin_ops,
+};
+
+static const struct of_device_id sdhci_berlin_of_match_table[] = {
+ {
+ .compatible = "marvell,berlin2-sdhci",
+ .data = &sdhci_berlin2_pdata,
+ },
+ {
+ .compatible = "marvell,berlin2cd-sdhci",
+ .data = &sdhci_berlin2_pdata,
+ },
+ {
+ .compatible = "marvell,berlin2q-sdhci",
+ .data = &sdhci_berlin2q_pdata,
+ },
+ {}