linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] mmc: sdhci-of-arasan: Add support for Intel Keem
@ 2020-03-16  9:13 Wan Ahmad Zainie
  2020-03-16  9:13 ` [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay Wan Ahmad Zainie
  2020-03-16  9:13 ` [PATCH 2/2] mmc: sdhci-of-arasan: Add support " Wan Ahmad Zainie
  0 siblings, 2 replies; 5+ messages in thread
From: Wan Ahmad Zainie @ 2020-03-16  9:13 UTC (permalink / raw)
  To: ulf.hansson, robh+dt, mark.rutland, adrian.hunter
  Cc: linux-mmc, devicetree, wan.ahmad.zainie.wan.mohamad

Hi.

The first part is to document the new compatible string required
for eMMC, SD and SDIO support in Intel Keem Bay.

The second part is to add the changes required to support the Host
Controller and its integrated eMMC PHY. The significant change is
to disable 64-bit support.

The patch was tested with Keem Bay evaluation module board.

Thank you.

Best regards,
Zainie


Wan Ahmad Zainie (2):
  dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay
  mmc: sdhci-of-arasan: Add support for Intel Keem Bay

 .../devicetree/bindings/mmc/arasan,sdhci.txt  |  39 ++++++
 drivers/mmc/host/sdhci-of-arasan.c            | 124 ++++++++++++++++++
 2 files changed, 163 insertions(+)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay
  2020-03-16  9:13 [PATCH 0/2] mmc: sdhci-of-arasan: Add support for Intel Keem Wan Ahmad Zainie
@ 2020-03-16  9:13 ` Wan Ahmad Zainie
  2020-03-18 11:08   ` Ulf Hansson
  2020-03-16  9:13 ` [PATCH 2/2] mmc: sdhci-of-arasan: Add support " Wan Ahmad Zainie
  1 sibling, 1 reply; 5+ messages in thread
From: Wan Ahmad Zainie @ 2020-03-16  9:13 UTC (permalink / raw)
  To: ulf.hansson, robh+dt, mark.rutland, adrian.hunter
  Cc: linux-mmc, devicetree, wan.ahmad.zainie.wan.mohamad

Add new compatible strings in sdhci-of-arasan.c to support Intel Keem Bay
eMMC/SD/SDIO controller, based on Arasan SDHCI 5.1.

Signed-off-by: Wan Ahmad Zainie <wan.ahmad.zainie.wan.mohamad@intel.com>
---
 .../devicetree/bindings/mmc/arasan,sdhci.txt  | 39 +++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
index 428685eb2ded..50f9cc0eff2a 100644
--- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
+++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
@@ -24,6 +24,10 @@ Required Properties:
       For this device it is strongly suggested to include arasan,soc-ctl-syscon.
     - "intel,lgm-sdhci-5.1-sdxc", "arasan,sdhci-5.1": Intel LGM SDXC PHY
       For this device it is strongly suggested to include arasan,soc-ctl-syscon.
+    - "intel,keembay-sdhci-5.1-emmc", "arasan,sdhci-5.1": Keem Bay eMMC PHY
+      For this device it is strongly suggested to include arasan,soc-ctl-syscon.
+    - "intel,keembay-sdhci-5.1-sd": Keem Bay SD controller
+    - "intel,keembay-sdhci-5.1-sdio": Keem Bay SDIO controller
 
   [5] Documentation/devicetree/bindings/mmc/sdhci-am654.txt
 
@@ -133,3 +137,38 @@ Example:
 		phy-names = "phy_arasan";
 		arasan,soc-ctl-syscon = <&sysconf>;
 	};
+
+	mmc: mmc@33000000 {
+		compatible = "intel,keembay-sdhci-5.1-emmc", "arasan,sdhci-5.1";
+		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+		reg = <0x0 0x33000000 0x0 0x300>;
+		clock-names = "clk_xin", "clk_ahb";
+		clocks = <&scmi_clk KEEM_BAY_PSS_AUX_EMMC>,
+			 <&scmi_clk KEEM_BAY_PSS_EMMC>;
+		phys = <&emmc_phy>;
+		phy-names = "phy_arasan";
+		assigned-clocks = <&scmi_clk KEEM_BAY_PSS_AUX_EMMC>;
+		clock-output-names = "emmc_cardclock";
+		#clock-cells = <0>;
+		arasan,soc-ctl-syscon = <&mmc_phy_syscon>;
+	};
+
+	sd0: sdhci@31000000 {
+		compatible = "intel,keembay-sdhci-5.1-sd";
+		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+		reg = <0x0 0x31000000 0x0 0x300>;
+		clock-names = "clk_xin", "clk_ahb";
+		clocks = <&scmi_clk KEEM_BAY_PSS_AUX_SD0>,
+			 <&scmi_clk KEEM_BAY_PSS_SD0>;
+		arasan,soc-ctl-syscon = <&sd0_phy_syscon>;
+	};
+
+	sd1: sdhci@32000000 {
+		compatible = "intel,keembay-sdhci-5.1-sdio";
+		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+		reg = <0x0 0x32000000 0x0 0x300>;
+		clock-names = "clk_xin", "clk_ahb";
+		clocks = <&scmi_clk KEEM_BAY_PSS_AUX_SD1>,
+			 <&scmi_clk KEEM_BAY_PSS_SD1>;
+		arasan,soc-ctl-syscon = <&sd1_phy_syscon>;
+	};
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] mmc: sdhci-of-arasan: Add support for Intel Keem Bay
  2020-03-16  9:13 [PATCH 0/2] mmc: sdhci-of-arasan: Add support for Intel Keem Wan Ahmad Zainie
  2020-03-16  9:13 ` [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay Wan Ahmad Zainie
@ 2020-03-16  9:13 ` Wan Ahmad Zainie
  1 sibling, 0 replies; 5+ messages in thread
From: Wan Ahmad Zainie @ 2020-03-16  9:13 UTC (permalink / raw)
  To: ulf.hansson, robh+dt, mark.rutland, adrian.hunter
  Cc: linux-mmc, devicetree, wan.ahmad.zainie.wan.mohamad

Intel Keem Bay SoC eMMC/SD/SDIO controller is based on
Arasan SD 3.0 / eMMC 5.1 host controller IP.

However, it does not support 64-bit access as its AXI interface
has 32-bit address ports.

Signed-off-by: Wan Ahmad Zainie <wan.ahmad.zainie.wan.mohamad@intel.com>
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>
---
 drivers/mmc/host/sdhci-of-arasan.c | 124 +++++++++++++++++++++++++++++
 1 file changed, 124 insertions(+)

diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index e49b44b4d82e..de127afc7446 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -68,11 +68,13 @@ struct sdhci_arasan_soc_ctl_field {
  *
  * @baseclkfreq:	Where to find corecfg_baseclkfreq
  * @clockmultiplier:	Where to find corecfg_clockmultiplier
+ * @support64b:		Where to find SUPPORT_64B bit
  * @hiword_update:	If true, use HIWORD_UPDATE to access the syscon
  */
 struct sdhci_arasan_soc_ctl_map {
 	struct sdhci_arasan_soc_ctl_field	baseclkfreq;
 	struct sdhci_arasan_soc_ctl_field	clockmultiplier;
+	struct sdhci_arasan_soc_ctl_field	support64b;
 	bool					hiword_update;
 };
 
@@ -155,6 +157,13 @@ static const struct sdhci_arasan_soc_ctl_map intel_lgm_sdxc_soc_ctl_map = {
 	.hiword_update = false,
 };
 
+static const struct sdhci_arasan_soc_ctl_map intel_keembay_soc_ctl_map = {
+	.baseclkfreq = { .reg = 0x0, .width = 8, .shift = 14 },
+	.clockmultiplier = { .reg = 0x4, .width = 8, .shift = 14 },
+	.support64b = { .reg = 0x4, .width = 1, .shift = 24 },
+	.hiword_update = false,
+};
+
 /**
  * sdhci_arasan_syscon_write - Write to a field in soc_ctl registers
  *
@@ -414,6 +423,50 @@ static const struct sdhci_pltfm_data sdhci_arasan_cqe_pdata = {
 			SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN,
 };
 
+static const struct sdhci_pltfm_data sdhci_keembay_emmc_pdata = {
+	.ops = &sdhci_arasan_cqe_ops,
+	.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
+		SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+		SDHCI_QUIRK_NO_LED |
+		SDHCI_QUIRK_32BIT_DMA_ADDR |
+		SDHCI_QUIRK_32BIT_DMA_SIZE |
+		SDHCI_QUIRK_32BIT_ADMA_SIZE,
+	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
+		SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN |
+		SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 |
+		SDHCI_QUIRK2_STOP_WITH_TC |
+		SDHCI_QUIRK2_BROKEN_64_BIT_DMA,
+};
+
+static const struct sdhci_pltfm_data sdhci_keembay_sd_pdata = {
+	.ops = &sdhci_arasan_ops,
+	.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
+		SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+		SDHCI_QUIRK_NO_LED |
+		SDHCI_QUIRK_32BIT_DMA_ADDR |
+		SDHCI_QUIRK_32BIT_DMA_SIZE |
+		SDHCI_QUIRK_32BIT_ADMA_SIZE,
+	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
+		SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN |
+		SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON |
+		SDHCI_QUIRK2_STOP_WITH_TC |
+		SDHCI_QUIRK2_BROKEN_64_BIT_DMA,
+};
+
+static const struct sdhci_pltfm_data sdhci_keembay_sdio_pdata = {
+	.ops = &sdhci_arasan_ops,
+	.quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
+		SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+		SDHCI_QUIRK_NO_LED |
+		SDHCI_QUIRK_32BIT_DMA_ADDR |
+		SDHCI_QUIRK_32BIT_DMA_SIZE |
+		SDHCI_QUIRK_32BIT_ADMA_SIZE,
+	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
+		SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN |
+		SDHCI_QUIRK2_HOST_OFF_CARD_ON |
+		SDHCI_QUIRK2_BROKEN_64_BIT_DMA,
+};
+
 static struct sdhci_arasan_of_data sdhci_arasan_rk3399_data = {
 	.soc_ctl_map = &rk3399_soc_ctl_map,
 	.pdata = &sdhci_arasan_cqe_pdata,
@@ -429,6 +482,21 @@ static struct sdhci_arasan_of_data intel_lgm_sdxc_data = {
 	.pdata = &sdhci_arasan_cqe_pdata,
 };
 
+static struct sdhci_arasan_of_data intel_keembay_emmc_data = {
+	.soc_ctl_map = &intel_keembay_soc_ctl_map,
+	.pdata = &sdhci_keembay_emmc_pdata,
+};
+
+static struct sdhci_arasan_of_data intel_keembay_sd_data = {
+	.soc_ctl_map = &intel_keembay_soc_ctl_map,
+	.pdata = &sdhci_keembay_sd_pdata,
+};
+
+static struct sdhci_arasan_of_data intel_keembay_sdio_data = {
+	.soc_ctl_map = &intel_keembay_soc_ctl_map,
+	.pdata = &sdhci_keembay_sdio_pdata,
+};
+
 #ifdef CONFIG_PM_SLEEP
 /**
  * sdhci_arasan_suspend - Suspend method for the driver
@@ -538,6 +606,18 @@ static const struct of_device_id sdhci_arasan_of_match[] = {
 		.compatible = "intel,lgm-sdhci-5.1-sdxc",
 		.data = &intel_lgm_sdxc_data,
 	},
+	{
+		.compatible = "intel,keembay-sdhci-5.1-emmc",
+		.data = &intel_keembay_emmc_data,
+	},
+	{
+		.compatible = "intel,keembay-sdhci-5.1-sd",
+		.data = &intel_keembay_sd_data,
+	},
+	{
+		.compatible = "intel,keembay-sdhci-5.1-sdio",
+		.data = &intel_keembay_sdio_data,
+	},
 	/* Generic compatible below here */
 	{
 		.compatible = "arasan,sdhci-8.9a",
@@ -757,6 +837,41 @@ static const struct clk_ops zynqmp_sampleclk_ops = {
 	.set_phase = sdhci_zynqmp_sampleclk_set_phase,
 };
 
+
+/**
+ * sdhci_arasan_update_support64b - Set SUPPORT_64B (64-bit System Bus Support)
+ *
+ * This should be set based on the System Address Bus.
+ * 0: the Core supports only 32-bit System Address Bus.
+ * 1: the Core supports 64-bit System Address Bus.
+ *
+ * NOTES:
+ * - For Keem Bay, it is required to clear this bit. Its default value is 1'b1.
+ *   Keem Bay does not support 64-bit access.
+ *
+ * @host		The sdhci_host
+ */
+static void sdhci_arasan_update_support64b(struct sdhci_host *host, u32 value)
+{
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
+	const struct sdhci_arasan_soc_ctl_map *soc_ctl_map =
+		sdhci_arasan->soc_ctl_map;
+
+	/* Having a map is optional */
+	if (!soc_ctl_map)
+		return;
+
+	/* If we have a map, we expect to have a syscon */
+	if (!sdhci_arasan->soc_ctl_base) {
+		pr_warn("%s: Have regmap, but no soc-ctl-syscon\n",
+			mmc_hostname(host->mmc));
+		return;
+	}
+
+	sdhci_arasan_syscon_write(host, &soc_ctl_map->support64b, value);
+}
+
 /**
  * sdhci_arasan_update_clockmultiplier - Set corecfg_clockmultiplier
  *
@@ -1226,6 +1341,15 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
 				    "rockchip,rk3399-sdhci-5.1"))
 		sdhci_arasan_update_clockmultiplier(host, 0x0);
 
+	if (of_device_is_compatible(np, "intel,keembay-sdhci-5.1-emmc") ||
+	    of_device_is_compatible(np, "intel,keembay-sdhci-5.1-sd") ||
+	    of_device_is_compatible(np, "intel,keembay-sdhci-5.1-sdio")) {
+		sdhci_arasan_update_clockmultiplier(host, 0x0);
+		sdhci_arasan_update_support64b(host, 0x0);
+
+		host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
+	}
+
 	sdhci_arasan_update_baseclkfreq(host);
 
 	ret = sdhci_arasan_register_sdclk(sdhci_arasan, clk_xin, &pdev->dev);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay
  2020-03-16  9:13 ` [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay Wan Ahmad Zainie
@ 2020-03-18 11:08   ` Ulf Hansson
  2020-03-19 12:15     ` Wan Mohamad, Wan Ahmad Zainie
  0 siblings, 1 reply; 5+ messages in thread
From: Ulf Hansson @ 2020-03-18 11:08 UTC (permalink / raw)
  To: Wan Ahmad Zainie
  Cc: Rob Herring, Mark Rutland, Adrian Hunter, linux-mmc, DTML

On Mon, 16 Mar 2020 at 10:13, Wan Ahmad Zainie
<wan.ahmad.zainie.wan.mohamad@intel.com> wrote:
>
> Add new compatible strings in sdhci-of-arasan.c to support Intel Keem Bay
> eMMC/SD/SDIO controller, based on Arasan SDHCI 5.1.
>
> Signed-off-by: Wan Ahmad Zainie <wan.ahmad.zainie.wan.mohamad@intel.com>
> ---
>  .../devicetree/bindings/mmc/arasan,sdhci.txt  | 39 +++++++++++++++++++

We are starting to reach a point were I want to see people converting
bindings into the yaml format, rather than extending the existing text
based ones.

Can you please have a look at the sdhci common bindings and the sdhci
arasan variant, that would be a good start.

Kind regards
Uffe

>  1 file changed, 39 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> index 428685eb2ded..50f9cc0eff2a 100644
> --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> @@ -24,6 +24,10 @@ Required Properties:
>        For this device it is strongly suggested to include arasan,soc-ctl-syscon.
>      - "intel,lgm-sdhci-5.1-sdxc", "arasan,sdhci-5.1": Intel LGM SDXC PHY
>        For this device it is strongly suggested to include arasan,soc-ctl-syscon.
> +    - "intel,keembay-sdhci-5.1-emmc", "arasan,sdhci-5.1": Keem Bay eMMC PHY
> +      For this device it is strongly suggested to include arasan,soc-ctl-syscon.
> +    - "intel,keembay-sdhci-5.1-sd": Keem Bay SD controller
> +    - "intel,keembay-sdhci-5.1-sdio": Keem Bay SDIO controller
>
>    [5] Documentation/devicetree/bindings/mmc/sdhci-am654.txt
>
> @@ -133,3 +137,38 @@ Example:
>                 phy-names = "phy_arasan";
>                 arasan,soc-ctl-syscon = <&sysconf>;
>         };
> +
> +       mmc: mmc@33000000 {
> +               compatible = "intel,keembay-sdhci-5.1-emmc", "arasan,sdhci-5.1";
> +               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
> +               reg = <0x0 0x33000000 0x0 0x300>;
> +               clock-names = "clk_xin", "clk_ahb";
> +               clocks = <&scmi_clk KEEM_BAY_PSS_AUX_EMMC>,
> +                        <&scmi_clk KEEM_BAY_PSS_EMMC>;
> +               phys = <&emmc_phy>;
> +               phy-names = "phy_arasan";
> +               assigned-clocks = <&scmi_clk KEEM_BAY_PSS_AUX_EMMC>;
> +               clock-output-names = "emmc_cardclock";
> +               #clock-cells = <0>;
> +               arasan,soc-ctl-syscon = <&mmc_phy_syscon>;
> +       };
> +
> +       sd0: sdhci@31000000 {
> +               compatible = "intel,keembay-sdhci-5.1-sd";
> +               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
> +               reg = <0x0 0x31000000 0x0 0x300>;
> +               clock-names = "clk_xin", "clk_ahb";
> +               clocks = <&scmi_clk KEEM_BAY_PSS_AUX_SD0>,
> +                        <&scmi_clk KEEM_BAY_PSS_SD0>;
> +               arasan,soc-ctl-syscon = <&sd0_phy_syscon>;
> +       };
> +
> +       sd1: sdhci@32000000 {
> +               compatible = "intel,keembay-sdhci-5.1-sdio";
> +               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
> +               reg = <0x0 0x32000000 0x0 0x300>;
> +               clock-names = "clk_xin", "clk_ahb";
> +               clocks = <&scmi_clk KEEM_BAY_PSS_AUX_SD1>,
> +                        <&scmi_clk KEEM_BAY_PSS_SD1>;
> +               arasan,soc-ctl-syscon = <&sd1_phy_syscon>;
> +       };
> --
> 2.17.1
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay
  2020-03-18 11:08   ` Ulf Hansson
@ 2020-03-19 12:15     ` Wan Mohamad, Wan Ahmad Zainie
  0 siblings, 0 replies; 5+ messages in thread
From: Wan Mohamad, Wan Ahmad Zainie @ 2020-03-19 12:15 UTC (permalink / raw)
  To: Ulf Hansson; +Cc: Rob Herring, Mark Rutland, Hunter, Adrian, linux-mmc, DTML



> -----Original Message-----
> From: Ulf Hansson <ulf.hansson@linaro.org>
> Sent: Wednesday, March 18, 2020 7:08 PM
> To: Wan Mohamad, Wan Ahmad Zainie
> <wan.ahmad.zainie.wan.mohamad@intel.com>
> Cc: Rob Herring <robh+dt@kernel.org>; Mark Rutland
> <mark.rutland@arm.com>; Hunter, Adrian <adrian.hunter@intel.com>;
> linux-mmc@vger.kernel.org; DTML <devicetree@vger.kernel.org>
> Subject: Re: [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings
> for Intel Keem Bay
> 
> On Mon, 16 Mar 2020 at 10:13, Wan Ahmad Zainie
> <wan.ahmad.zainie.wan.mohamad@intel.com> wrote:
> >
> > Add new compatible strings in sdhci-of-arasan.c to support Intel Keem
> > Bay eMMC/SD/SDIO controller, based on Arasan SDHCI 5.1.
> >
> > Signed-off-by: Wan Ahmad Zainie
> > <wan.ahmad.zainie.wan.mohamad@intel.com>
> > ---
> >  .../devicetree/bindings/mmc/arasan,sdhci.txt  | 39
> > +++++++++++++++++++
> 
> We are starting to reach a point were I want to see people converting
> bindings into the yaml format, rather than extending the existing text based
> ones.
> 
> Can you please have a look at the sdhci common bindings and the sdhci
> arasan variant, that would be a good start.

Yes, I can start by converting arasan,sdhci.txt.

> 
> Kind regards
> Uffe
> 
> >  1 file changed, 39 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > index 428685eb2ded..50f9cc0eff2a 100644
> > --- a/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > +++ b/Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
> > @@ -24,6 +24,10 @@ Required Properties:
> >        For this device it is strongly suggested to include arasan,soc-ctl-syscon.
> >      - "intel,lgm-sdhci-5.1-sdxc", "arasan,sdhci-5.1": Intel LGM SDXC PHY
> >        For this device it is strongly suggested to include arasan,soc-ctl-syscon.
> > +    - "intel,keembay-sdhci-5.1-emmc", "arasan,sdhci-5.1": Keem Bay
> eMMC PHY
> > +      For this device it is strongly suggested to include arasan,soc-ctl-syscon.
> > +    - "intel,keembay-sdhci-5.1-sd": Keem Bay SD controller
> > +    - "intel,keembay-sdhci-5.1-sdio": Keem Bay SDIO controller
> >
> >    [5] Documentation/devicetree/bindings/mmc/sdhci-am654.txt
> >
> > @@ -133,3 +137,38 @@ Example:
> >                 phy-names = "phy_arasan";
> >                 arasan,soc-ctl-syscon = <&sysconf>;
> >         };
> > +
> > +       mmc: mmc@33000000 {
> > +               compatible = "intel,keembay-sdhci-5.1-emmc", "arasan,sdhci-5.1";
> > +               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
> > +               reg = <0x0 0x33000000 0x0 0x300>;
> > +               clock-names = "clk_xin", "clk_ahb";
> > +               clocks = <&scmi_clk KEEM_BAY_PSS_AUX_EMMC>,
> > +                        <&scmi_clk KEEM_BAY_PSS_EMMC>;
> > +               phys = <&emmc_phy>;
> > +               phy-names = "phy_arasan";
> > +               assigned-clocks = <&scmi_clk KEEM_BAY_PSS_AUX_EMMC>;
> > +               clock-output-names = "emmc_cardclock";
> > +               #clock-cells = <0>;
> > +               arasan,soc-ctl-syscon = <&mmc_phy_syscon>;
> > +       };
> > +
> > +       sd0: sdhci@31000000 {
> > +               compatible = "intel,keembay-sdhci-5.1-sd";
> > +               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
> > +               reg = <0x0 0x31000000 0x0 0x300>;
> > +               clock-names = "clk_xin", "clk_ahb";
> > +               clocks = <&scmi_clk KEEM_BAY_PSS_AUX_SD0>,
> > +                        <&scmi_clk KEEM_BAY_PSS_SD0>;
> > +               arasan,soc-ctl-syscon = <&sd0_phy_syscon>;
> > +       };
> > +
> > +       sd1: sdhci@32000000 {
> > +               compatible = "intel,keembay-sdhci-5.1-sdio";
> > +               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
> > +               reg = <0x0 0x32000000 0x0 0x300>;
> > +               clock-names = "clk_xin", "clk_ahb";
> > +               clocks = <&scmi_clk KEEM_BAY_PSS_AUX_SD1>,
> > +                        <&scmi_clk KEEM_BAY_PSS_SD1>;
> > +               arasan,soc-ctl-syscon = <&sd1_phy_syscon>;
> > +       };
> > --
> > 2.17.1
> >

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-03-19 12:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-16  9:13 [PATCH 0/2] mmc: sdhci-of-arasan: Add support for Intel Keem Wan Ahmad Zainie
2020-03-16  9:13 ` [PATCH 1/2] dt-bindings: mmc: arasan: Add compatible strings for Intel Keem Bay Wan Ahmad Zainie
2020-03-18 11:08   ` Ulf Hansson
2020-03-19 12:15     ` Wan Mohamad, Wan Ahmad Zainie
2020-03-16  9:13 ` [PATCH 2/2] mmc: sdhci-of-arasan: Add support " Wan Ahmad Zainie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).