From: Frank Lee <frank@allwinnertech.com> To: tiny.windzz@gmail.com Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org, Yangtao Li <frank@allwinnertech.com>, Ulf Hansson <ulf.hansson@linaro.org>, Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>, Marek Vasut <marex@denx.de>, Rui Miguel Silva <rmfrfs@gmail.com>, Wolfram Sang <wsa+renesas@sang-engineering.com>, Douglas Anderson <dianders@chromium.org> Subject: [RESEND PATCH 17/19] mmc: sunxi: add support for A100 mmc controller Date: Tue, 10 Nov 2020 14:46:31 +0800 [thread overview] Message-ID: <de4c37ee3a0f1734c4ae035c37b8a2c34b9641ca.1604988979.git.frank@allwinnertech.com> (raw) In-Reply-To: <cover.1604988979.git.frank@allwinnertech.com> From: Yangtao Li <frank@allwinnertech.com> This patch adds support for A100 MMC controller, which use word address for internal dma. Signed-off-by: Yangtao Li <frank@allwinnertech.com> --- drivers/mmc/host/sunxi-mmc.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c index fc62773602ec..1518b64112b7 100644 --- a/drivers/mmc/host/sunxi-mmc.c +++ b/drivers/mmc/host/sunxi-mmc.c @@ -244,6 +244,7 @@ struct sunxi_idma_des { struct sunxi_mmc_cfg { u32 idma_des_size_bits; + u32 idma_des_shift; const struct sunxi_mmc_clk_delay *clk_delays; /* does the IP block support autocalibration? */ @@ -343,7 +344,7 @@ static int sunxi_mmc_init_host(struct sunxi_mmc_host *host) /* Enable CEATA support */ mmc_writel(host, REG_FUNS, SDXC_CEATA_ON); /* Set DMA descriptor list base address */ - mmc_writel(host, REG_DLBA, host->sg_dma); + mmc_writel(host, REG_DLBA, host->sg_dma >> host->cfg->idma_des_shift); rval = mmc_readl(host, REG_GCTRL); rval |= SDXC_INTERRUPT_ENABLE_BIT; @@ -373,8 +374,10 @@ static void sunxi_mmc_init_idma_des(struct sunxi_mmc_host *host, next_desc += sizeof(struct sunxi_idma_des); pdes[i].buf_addr_ptr1 = - cpu_to_le32(sg_dma_address(&data->sg[i])); - pdes[i].buf_addr_ptr2 = cpu_to_le32((u32)next_desc); + cpu_to_le32(sg_dma_address(&data->sg[i]) >> + host->cfg->idma_des_shift); + pdes[i].buf_addr_ptr2 = cpu_to_le32((u32)next_desc >> + host->cfg->idma_des_shift); } pdes[0].config |= cpu_to_le32(SDXC_IDMAC_DES0_FD); @@ -1178,6 +1181,23 @@ static const struct sunxi_mmc_cfg sun50i_a64_emmc_cfg = { .needs_new_timings = true, }; +static const struct sunxi_mmc_cfg sun50i_a100_cfg = { + .idma_des_size_bits = 16, + .idma_des_shift = 2, + .clk_delays = NULL, + .can_calibrate = true, + .mask_data0 = true, + .needs_new_timings = true, +}; + +static const struct sunxi_mmc_cfg sun50i_a100_emmc_cfg = { + .idma_des_size_bits = 13, + .idma_des_shift = 2, + .clk_delays = NULL, + .can_calibrate = true, + .needs_new_timings = true, +}; + static const struct of_device_id sunxi_mmc_of_match[] = { { .compatible = "allwinner,sun4i-a10-mmc", .data = &sun4i_a10_cfg }, { .compatible = "allwinner,sun5i-a13-mmc", .data = &sun5i_a13_cfg }, @@ -1186,6 +1206,8 @@ static const struct of_device_id sunxi_mmc_of_match[] = { { .compatible = "allwinner,sun9i-a80-mmc", .data = &sun9i_a80_cfg }, { .compatible = "allwinner,sun50i-a64-mmc", .data = &sun50i_a64_cfg }, { .compatible = "allwinner,sun50i-a64-emmc", .data = &sun50i_a64_emmc_cfg }, + { .compatible = "allwinner,sun50i-a100-mmc", .data = &sun50i_a100_cfg }, + { .compatible = "allwinner,sun50i-a100-emmc", .data = &sun50i_a100_emmc_cfg }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, sunxi_mmc_of_match); -- 2.28.0
WARNING: multiple messages have this Message-ID (diff)
From: Frank Lee <frank@allwinnertech.com> To: tiny.windzz@gmail.com Cc: Marek Vasut <marex@denx.de>, Ulf Hansson <ulf.hansson@linaro.org>, Wolfram Sang <wsa+renesas@sang-engineering.com>, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Maxime Ripard <mripard@kernel.org>, Douglas Anderson <dianders@chromium.org>, Rui Miguel Silva <rmfrfs@gmail.com>, Chen-Yu Tsai <wens@csie.org>, Yangtao Li <frank@allwinnertech.com>, linux-arm-kernel@lists.infradead.org Subject: [RESEND PATCH 17/19] mmc: sunxi: add support for A100 mmc controller Date: Tue, 10 Nov 2020 14:46:31 +0800 [thread overview] Message-ID: <de4c37ee3a0f1734c4ae035c37b8a2c34b9641ca.1604988979.git.frank@allwinnertech.com> (raw) In-Reply-To: <cover.1604988979.git.frank@allwinnertech.com> From: Yangtao Li <frank@allwinnertech.com> This patch adds support for A100 MMC controller, which use word address for internal dma. Signed-off-by: Yangtao Li <frank@allwinnertech.com> --- drivers/mmc/host/sunxi-mmc.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c index fc62773602ec..1518b64112b7 100644 --- a/drivers/mmc/host/sunxi-mmc.c +++ b/drivers/mmc/host/sunxi-mmc.c @@ -244,6 +244,7 @@ struct sunxi_idma_des { struct sunxi_mmc_cfg { u32 idma_des_size_bits; + u32 idma_des_shift; const struct sunxi_mmc_clk_delay *clk_delays; /* does the IP block support autocalibration? */ @@ -343,7 +344,7 @@ static int sunxi_mmc_init_host(struct sunxi_mmc_host *host) /* Enable CEATA support */ mmc_writel(host, REG_FUNS, SDXC_CEATA_ON); /* Set DMA descriptor list base address */ - mmc_writel(host, REG_DLBA, host->sg_dma); + mmc_writel(host, REG_DLBA, host->sg_dma >> host->cfg->idma_des_shift); rval = mmc_readl(host, REG_GCTRL); rval |= SDXC_INTERRUPT_ENABLE_BIT; @@ -373,8 +374,10 @@ static void sunxi_mmc_init_idma_des(struct sunxi_mmc_host *host, next_desc += sizeof(struct sunxi_idma_des); pdes[i].buf_addr_ptr1 = - cpu_to_le32(sg_dma_address(&data->sg[i])); - pdes[i].buf_addr_ptr2 = cpu_to_le32((u32)next_desc); + cpu_to_le32(sg_dma_address(&data->sg[i]) >> + host->cfg->idma_des_shift); + pdes[i].buf_addr_ptr2 = cpu_to_le32((u32)next_desc >> + host->cfg->idma_des_shift); } pdes[0].config |= cpu_to_le32(SDXC_IDMAC_DES0_FD); @@ -1178,6 +1181,23 @@ static const struct sunxi_mmc_cfg sun50i_a64_emmc_cfg = { .needs_new_timings = true, }; +static const struct sunxi_mmc_cfg sun50i_a100_cfg = { + .idma_des_size_bits = 16, + .idma_des_shift = 2, + .clk_delays = NULL, + .can_calibrate = true, + .mask_data0 = true, + .needs_new_timings = true, +}; + +static const struct sunxi_mmc_cfg sun50i_a100_emmc_cfg = { + .idma_des_size_bits = 13, + .idma_des_shift = 2, + .clk_delays = NULL, + .can_calibrate = true, + .needs_new_timings = true, +}; + static const struct of_device_id sunxi_mmc_of_match[] = { { .compatible = "allwinner,sun4i-a10-mmc", .data = &sun4i_a10_cfg }, { .compatible = "allwinner,sun5i-a13-mmc", .data = &sun5i_a13_cfg }, @@ -1186,6 +1206,8 @@ static const struct of_device_id sunxi_mmc_of_match[] = { { .compatible = "allwinner,sun9i-a80-mmc", .data = &sun9i_a80_cfg }, { .compatible = "allwinner,sun50i-a64-mmc", .data = &sun50i_a64_cfg }, { .compatible = "allwinner,sun50i-a64-emmc", .data = &sun50i_a64_emmc_cfg }, + { .compatible = "allwinner,sun50i-a100-mmc", .data = &sun50i_a100_cfg }, + { .compatible = "allwinner,sun50i-a100-emmc", .data = &sun50i_a100_emmc_cfg }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, sunxi_mmc_of_match); -- 2.28.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-11-10 6:46 UTC|newest] Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-10 6:20 [RESEND PATCH 00/19] Second step support for A100 Frank Lee 2020-11-10 6:20 ` Frank Lee 2020-11-10 6:22 ` [RESEND PATCH 01/19] pinctrl: sunxi: fix irq bank map for the Allwinner A100 pin controller Frank Lee 2020-11-10 6:22 ` Frank Lee 2020-11-24 8:40 ` Linus Walleij 2020-11-24 8:40 ` Linus Walleij 2020-11-10 6:23 ` [RESEND PATCH 02/19] pinctrl: sunxi: Mark the irq bank not found in sunxi_pinctrl_irq_handler() with WARN_ON Frank Lee 2020-11-10 6:23 ` Frank Lee 2020-11-24 8:41 ` Linus Walleij 2020-11-24 8:41 ` Linus Walleij 2020-11-10 6:24 ` [RESEND PATCH 03/19] pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler Frank Lee 2020-11-10 6:24 ` Frank Lee 2020-11-24 8:41 ` Linus Walleij 2020-11-24 8:41 ` Linus Walleij 2020-11-10 6:26 ` [RESEND PATCH 04/19] dt-bindings: dma: allwinner,sun50i-a64-dma: Add A100 compatible Frank Lee 2020-11-10 6:26 ` [RESEND PATCH 04/19] dt-bindings: dma: allwinner, sun50i-a64-dma: " Frank Lee 2020-11-11 22:46 ` [RESEND PATCH 04/19] dt-bindings: dma: allwinner,sun50i-a64-dma: " Rob Herring 2020-11-11 22:46 ` [RESEND PATCH 04/19] dt-bindings: dma: allwinner, sun50i-a64-dma: " Rob Herring 2020-11-18 11:01 ` [RESEND PATCH 04/19] dt-bindings: dma: allwinner,sun50i-a64-dma: " Vinod Koul 2020-11-18 11:01 ` [RESEND PATCH 04/19] dt-bindings: dma: allwinner, sun50i-a64-dma: " Vinod Koul 2020-11-10 6:28 ` [RESEND PATCH 05/19] dmaengine: sun6i: Add support for A100 DMA Frank Lee 2020-11-10 6:28 ` Frank Lee 2020-11-18 10:59 ` Vinod Koul 2020-11-18 10:59 ` Vinod Koul 2020-11-28 20:31 ` André Przywara 2020-11-28 20:31 ` André Przywara 2020-11-10 6:29 ` [RESEND PATCH 06/19] arm64: allwinner: a100: Add device node for DMA controller Frank Lee 2020-11-10 6:29 ` Frank Lee 2020-11-28 20:34 ` André Przywara 2020-11-28 20:34 ` André Przywara 2020-11-10 6:31 ` [RESEND PATCH 07/19] arm64: dts: allwinner: A100: Add PMU mode Frank Lee 2020-11-10 6:31 ` Frank Lee 2020-11-28 20:47 ` André Przywara 2020-11-28 20:47 ` André Przywara 2020-11-10 6:32 ` [RESEND PATCH 08/19] phy: sun4i-usb: remove enable_pmu_unk1 from sun50i_h6_cfg Frank Lee 2020-11-10 6:32 ` Frank Lee 2020-11-19 6:19 ` Vinod Koul 2020-11-19 6:19 ` Vinod Koul 2020-11-10 6:35 ` [RESEND PATCH 09/19] phy: allwinner: Convert to devm_platform_ioremap_* API Frank Lee 2020-11-10 6:35 ` Frank Lee 2020-11-19 6:20 ` Vinod Koul 2020-11-19 6:20 ` Vinod Koul 2020-11-10 6:36 ` [RESEND PATCH 10/19] dt-bindings: watchdog: sun4i: Add A100 compatible Frank Lee 2020-11-10 6:36 ` Frank Lee 2020-11-11 22:46 ` Rob Herring 2020-11-11 22:46 ` Rob Herring 2020-11-10 6:38 ` [RESEND PATCH 11/19] arm64: dts: allwinner: a100: add watchdog node Frank Lee 2020-11-10 6:38 ` Frank Lee 2020-11-28 20:20 ` André Przywara 2020-11-28 20:20 ` André Przywara 2020-11-10 6:39 ` [RESEND PATCH 12/19] dt-bindings: Add bindings for USB phy on Allwinner A100 Frank Lee 2020-11-10 6:39 ` Frank Lee 2020-11-11 22:50 ` Rob Herring 2020-11-11 22:50 ` Rob Herring 2020-11-28 20:18 ` André Przywara 2020-11-28 20:18 ` André Przywara 2020-12-01 18:44 ` Maxime Ripard 2020-12-01 18:44 ` Maxime Ripard 2020-11-10 6:40 ` [RESEND PATCH 13/19] phy: sun4i-usb: add support for A100 USB PHY Frank Lee 2020-11-10 6:40 ` Frank Lee 2020-11-28 19:39 ` André Przywara 2020-11-28 19:39 ` André Przywara 2020-12-07 1:18 ` André Przywara 2020-12-07 1:18 ` André Przywara 2020-11-10 6:41 ` [RESEND PATCH 14/19] arm64: dts: allwinner: a100: add usb related nodes Frank Lee 2020-11-10 6:41 ` Frank Lee 2020-11-10 6:43 ` [RESEND PATCH 15/19] arm64: allwinner: A100: enable EHCI, OHCI and USB PHY nodes in Perf1 Frank Lee 2020-11-10 6:43 ` Frank Lee 2020-11-10 6:45 ` [RESEND PATCH 16/19] dt-bindings: mmc: sunxi: Add A100 compatibles Frank Lee 2020-11-10 6:45 ` Frank Lee 2020-11-11 22:51 ` Rob Herring 2020-11-11 22:51 ` Rob Herring 2020-11-10 6:46 ` Frank Lee [this message] 2020-11-10 6:46 ` [RESEND PATCH 17/19] mmc: sunxi: add support for A100 mmc controller Frank Lee 2020-11-28 19:56 ` André Przywara 2020-11-28 19:56 ` André Przywara 2020-11-29 1:38 ` André Przywara 2020-11-29 1:38 ` André Przywara 2020-11-10 6:48 ` [RESEND PATCH 18/19] arm64: allwinner: a100: Add MMC related nodes Frank Lee 2020-11-10 6:48 ` Frank Lee 2020-11-28 20:07 ` André Przywara 2020-11-28 20:07 ` André Przywara 2020-11-10 6:49 ` [RESEND PATCH 19/19] arm64: dts: allwinner: a100: perf1: Add eMMC and MMC node Frank Lee 2020-11-10 6:49 ` Frank Lee
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=de4c37ee3a0f1734c4ae035c37b8a2c34b9641ca.1604988979.git.frank@allwinnertech.com \ --to=frank@allwinnertech.com \ --cc=dianders@chromium.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=marex@denx.de \ --cc=mripard@kernel.org \ --cc=rmfrfs@gmail.com \ --cc=tiny.windzz@gmail.com \ --cc=ulf.hansson@linaro.org \ --cc=wens@csie.org \ --cc=wsa+renesas@sang-engineering.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.