* Re: [PATCH] mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller
[not found] <1392736109-3981-1-git-send-email-thomas.petazzoni@free-electrons.com>
@ 2014-03-29 15:14 ` Thomas Petazzoni
2014-03-29 16:19 ` Chris Ball
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni @ 2014-03-29 15:14 UTC (permalink / raw)
To: Chris Ball
Cc: linux-mmc, Jason Cooper, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, Ezequiel Garcia, Lior Amsalem,
Tawfik Bayouk, Marcin Wojtas, Greg Kroah-Hartman, Andrew Morton,
Device Tree
Dear Chris Ball,
The below patch was originally sent on February, 18th. On February
25th, I sent a reply to get some news. Then, again on March, 20th, I
sent again a reply to get some news. I have never heard back from you
about this patch since a month and a half. The patch is fairly simple,
and not having it merged prevents from enabling SDHCI on a new platform
we're working.
Could you consider applying the patch for 3.15, or at least, give some
review comments if any?
I see that on March, 17th you have applied a series of 6 patches, so it
looks like you are still maintaining actively the MMC subsystem.
Is there any specific problem about this patch?
Thanks,
Thomas
On Tue, 18 Feb 2014 16:08:29 +0100, Thomas Petazzoni wrote:
> From: Marcin Wojtas <mw@semihalf.com>
>
> The SDHCI unit used on the Armada 380 and 385 Marvell SoC is similar
> to the PXAv3 unit. The only difference is that on Armada 38x, the
> PXAv3 unit accesses memory through MBus windows which must be
> configured prior to using the device. Without this, DMA would not
> work.
>
> In order to achieve this, the sdhci-pxav3 driver is extended with an
> additional compatible string "marvell,armada-380-sdhci". When this
> compatible string is used, the MBus windows are initialized in a way
> that is identical to what all other DMA-capable drivers for Marvell
> EBU platforms do.
>
> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> .../devicetree/bindings/mmc/sdhci-pxa.txt | 17 +++++-
> drivers/mmc/host/sdhci-pxav3.c | 68 ++++++++++++++++++++++
> 2 files changed, 84 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> index dbe98a3..86223c3 100644
> --- a/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> +++ b/Documentation/devicetree/bindings/mmc/sdhci-pxa.txt
> @@ -4,7 +4,14 @@ This file documents differences between the core properties in mmc.txt
> and the properties used by the sdhci-pxav2 and sdhci-pxav3 drivers.
>
> Required properties:
> -- compatible: Should be "mrvl,pxav2-mmc" or "mrvl,pxav3-mmc".
> +- compatible: Should be "mrvl,pxav2-mmc", "mrvl,pxav3-mmc" or
> + "marvell,armada-380-sdhci".
> +- reg:
> + * for "mrvl,pxav2-mmc" and "mrvl,pxav3-mmc", one register area for
> + the SDHCI registers.
> + * for "marvell,armada-380-sdhci", two register areas. The first one
> + for the SDHCI registers themselves, and the second one for the
> + AXI/Mbus bridge registers of the SDHCI unit.
>
> Optional properties:
> - mrvl,clk-delay-cycles: Specify a number of cycles to delay for tuning.
> @@ -19,3 +26,11 @@ sdhci@d4280800 {
> non-removable;
> mrvl,clk-delay-cycles = <31>;
> };
> +
> +sdhci@d8000 {
> + compatible = "marvell,armada-380-sdhci";
> + reg = <0xd8000 0x1000>, <0xdc000 0x100>;
> + interrupts = <0 25 0x4>;
> + clocks = <&gateclk 17>;
> + mrvl,clk-delay-cycles = <0x1F>;
> +};
> diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
> index 793dacd..2fd73b3 100644
> --- a/drivers/mmc/host/sdhci-pxav3.c
> +++ b/drivers/mmc/host/sdhci-pxav3.c
> @@ -34,6 +34,7 @@
> #include <linux/of_gpio.h>
> #include <linux/pm.h>
> #include <linux/pm_runtime.h>
> +#include <linux/mbus.h>
>
> #include "sdhci.h"
> #include "sdhci-pltfm.h"
> @@ -57,6 +58,60 @@
> #define SDCE_MISC_INT (1<<2)
> #define SDCE_MISC_INT_EN (1<<1)
>
> +/*
> + * These registers are relative to the second register region, for the
> + * MBus bridge.
> + */
> +#define SDHCI_WINDOW_CTRL(i) (0x80 + ((i) << 3))
> +#define SDHCI_WINDOW_BASE(i) (0x84 + ((i) << 3))
> +#define SDHCI_MAX_WIN_NUM 8
> +
> +static int mv_conf_mbus_windows(struct platform_device *pdev,
> + const struct mbus_dram_target_info *dram)
> +{
> + int i;
> + void __iomem *regs;
> + struct resource *res;
> +
> + if (!dram) {
> + dev_err(&pdev->dev, "no mbus dram info\n");
> + return -EINVAL;
> + }
> +
> + res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> + if (!res) {
> + dev_err(&pdev->dev, "cannot get mbus registers\n");
> + return -EINVAL;
> + }
> +
> + regs = ioremap(res->start, resource_size(res));
> + if (!regs) {
> + dev_err(&pdev->dev, "cannot map mbus registers\n");
> + return -ENOMEM;
> + }
> +
> + for (i = 0; i < SDHCI_MAX_WIN_NUM; i++) {
> + writel(0, regs + SDHCI_WINDOW_CTRL(i));
> + writel(0, regs + SDHCI_WINDOW_BASE(i));
> + }
> +
> + for (i = 0; i < dram->num_cs; i++) {
> + const struct mbus_dram_window *cs = dram->cs + i;
> +
> + /* Write size, attributes and target id to control register */
> + writel(((cs->size - 1) & 0xffff0000) |
> + (cs->mbus_attr << 8) |
> + (dram->mbus_dram_target_id << 4) | 1,
> + regs + SDHCI_WINDOW_CTRL(i));
> + /* Write base address to base register */
> + writel(cs->base, regs + SDHCI_WINDOW_BASE(i));
> + }
> +
> + iounmap(regs);
> +
> + return 0;
> +}
> +
> static void pxav3_set_private_registers(struct sdhci_host *host, u8 mask)
> {
> struct platform_device *pdev = to_platform_device(mmc_dev(host->mmc));
> @@ -187,6 +242,9 @@ static const struct of_device_id sdhci_pxav3_of_match[] = {
> {
> .compatible = "mrvl,pxav3-mmc",
> },
> + {
> + .compatible = "marvell,armada-380-sdhci",
> + },
> {},
> };
> MODULE_DEVICE_TABLE(of, sdhci_pxav3_of_match);
> @@ -219,6 +277,7 @@ static int sdhci_pxav3_probe(struct platform_device *pdev)
> struct sdhci_pltfm_host *pltfm_host;
> struct sdhci_pxa_platdata *pdata = pdev->dev.platform_data;
> struct device *dev = &pdev->dev;
> + struct device_node *np = pdev->dev.of_node;
> struct sdhci_host *host = NULL;
> struct sdhci_pxa *pxa = NULL;
> const struct of_device_id *match;
> @@ -235,6 +294,14 @@ static int sdhci_pxav3_probe(struct platform_device *pdev)
> kfree(pxa);
> return PTR_ERR(host);
> }
> +
> + if (of_device_is_compatible(np, "marvell,armada-380-sdhci")) {
> + ret = mv_conf_mbus_windows(pdev, mv_mbus_dram_info());
> + if (ret < 0)
> + goto err_mbus_win;
> + }
> +
> +
> pltfm_host = sdhci_priv(host);
> pltfm_host->priv = pxa;
>
> @@ -321,6 +388,7 @@ err_add_host:
> clk_disable_unprepare(clk);
> clk_put(clk);
> err_clk_get:
> +err_mbus_win:
> sdhci_pltfm_free(pdev);
> kfree(pxa);
> return ret;
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller
2014-03-29 15:14 ` [PATCH] mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller Thomas Petazzoni
@ 2014-03-29 16:19 ` Chris Ball
2014-03-29 16:48 ` Thomas Petazzoni
0 siblings, 1 reply; 3+ messages in thread
From: Chris Ball @ 2014-03-29 16:19 UTC (permalink / raw)
To: Thomas Petazzoni
Cc: linux-mmc, Jason Cooper, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, Ezequiel Garcia, Lior Amsalem,
Tawfik Bayouk, Marcin Wojtas, Greg Kroah-Hartman, Andrew Morton,
Device Tree
Hi Thomas,
On Sat, Mar 29 2014, Thomas Petazzoni wrote:
> The below patch was originally sent on February, 18th. On February
> 25th, I sent a reply to get some news. Then, again on March, 20th, I
> sent again a reply to get some news. I have never heard back from you
> about this patch since a month and a half. The patch is fairly simple,
> and not having it merged prevents from enabling SDHCI on a new platform
> we're working.
I'm sorry about this. I didn't see either of your previous pings --
they were both marked as spam by SpamAssassin due to a failing
RCVD_ILLEGAL_IP test. That test is supposed to signify that there is
an invalid IP in a Received: header, but I don't see such an IP, so
I'm suspecting it might be a SpamAssassin bug. It looks like between
the first two pings and this one, free-electrons.com moved from
Hetzner to OVH, and that stopped the test failing. Just letting you
know in case it's widespread. I should try upgrading SpamAssassin.
(Still, I should have noticed your pings on the list too.)
> Could you consider applying the patch for 3.15, or at least, give some
> review comments if any?
Yes, looks good, pushed to mmc-next for 3.15, thanks.
- Chris.
--
Chris Ball <chris@printf.net> <http://printf.net/>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller
2014-03-29 16:19 ` Chris Ball
@ 2014-03-29 16:48 ` Thomas Petazzoni
0 siblings, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2014-03-29 16:48 UTC (permalink / raw)
To: Chris Ball
Cc: linux-mmc, Jason Cooper, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, Ezequiel Garcia, Lior Amsalem,
Tawfik Bayouk, Marcin Wojtas, Greg Kroah-Hartman, Andrew Morton,
Device Tree
Dear Chris Ball,
On Sat, 29 Mar 2014 16:19:20 +0000, Chris Ball wrote:
> On Sat, Mar 29 2014, Thomas Petazzoni wrote:
> > The below patch was originally sent on February, 18th. On February
> > 25th, I sent a reply to get some news. Then, again on March, 20th, I
> > sent again a reply to get some news. I have never heard back from you
> > about this patch since a month and a half. The patch is fairly simple,
> > and not having it merged prevents from enabling SDHCI on a new platform
> > we're working.
>
> I'm sorry about this. I didn't see either of your previous pings --
> they were both marked as spam by SpamAssassin due to a failing
> RCVD_ILLEGAL_IP test. That test is supposed to signify that there is
> an invalid IP in a Received: header, but I don't see such an IP, so
> I'm suspecting it might be a SpamAssassin bug. It looks like between
> the first two pings and this one, free-electrons.com moved from
> Hetzner to OVH, and that stopped the test failing. Just letting you
> know in case it's widespread. I should try upgrading SpamAssassin.
>
> (Still, I should have noticed your pings on the list too.)
Ah, sorry. I'll notify the person who handles our mail server about
this.
> > Could you consider applying the patch for 3.15, or at least, give some
> > review comments if any?
>
> Yes, looks good, pushed to mmc-next for 3.15, thanks.
Thanks a lot!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-03-29 16:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1392736109-3981-1-git-send-email-thomas.petazzoni@free-electrons.com>
2014-03-29 15:14 ` [PATCH] mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller Thomas Petazzoni
2014-03-29 16:19 ` Chris Ball
2014-03-29 16:48 ` Thomas Petazzoni
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).