* [PATCH 0/3] mmc: tmio_mmc: Add support for RZ/A2
@ 2018-10-08 16:23 Chris Brandt
2018-10-08 16:23 ` [PATCH 1/3] clk: renesas: r7s9210: Add SDHI clocks Chris Brandt
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Chris Brandt @ 2018-10-08 16:23 UTC (permalink / raw)
To: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven,
Michael Turquette, Stephen Boyd
Cc: Wolfram Sang, linux-clk, linux-mmc, devicetree, linux-renesas-soc,
Chris Brandt
Basically the same HW block that was used in R-Car Gen 3 is used in
RZ/A2 (with only a couple small differences).
Not sure if you're going to like the Kconfig change or not.
Chris Brandt (3):
clk: renesas: r7s9210: Add SDHI clocks
mmc: renesas_sdhi_internal_dmac: Add R7S9210 support
dt-bindings: mmc: tmio_mmc: Document Renesas R7S9210
Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 1 +
drivers/clk/renesas/r7s9210-cpg-mssr.c | 5 ++++
drivers/mmc/host/Kconfig | 5 ++--
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 28 ++++++++++++++++++++--
4 files changed, 35 insertions(+), 4 deletions(-)
--
2.16.1
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/3] clk: renesas: r7s9210: Add SDHI clocks 2018-10-08 16:23 [PATCH 0/3] mmc: tmio_mmc: Add support for RZ/A2 Chris Brandt @ 2018-10-08 16:23 ` Chris Brandt 2018-10-10 8:36 ` Geert Uytterhoeven 2018-10-08 16:23 ` [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support Chris Brandt 2018-10-08 16:23 ` [PATCH 3/3] dt-bindings: mmc: tmio_mmc: Document Renesas R7S9210 Chris Brandt 2 siblings, 1 reply; 9+ messages in thread From: Chris Brandt @ 2018-10-08 16:23 UTC (permalink / raw) To: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd Cc: Wolfram Sang, linux-clk, linux-mmc, devicetree, linux-renesas-soc, Chris Brandt Add SDHI clocks for RZ/A2 Signed-off-by: Chris Brandt <chris.brandt@renesas.com> --- drivers/clk/renesas/r7s9210-cpg-mssr.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/clk/renesas/r7s9210-cpg-mssr.c b/drivers/clk/renesas/r7s9210-cpg-mssr.c index 5135f13ec628..9056da15dc72 100644 --- a/drivers/clk/renesas/r7s9210-cpg-mssr.c +++ b/drivers/clk/renesas/r7s9210-cpg-mssr.c @@ -98,6 +98,11 @@ static const struct mssr_mod_clk r7s9210_mod_clks[] __initconst = { DEF_MOD_STB("spi2", 95, R7S9210_CLK_P1), DEF_MOD_STB("spi1", 96, R7S9210_CLK_P1), DEF_MOD_STB("spi0", 97, R7S9210_CLK_P1), + + DEF_MOD_STB("sdhi11", 100, R7S9210_CLK_B), + DEF_MOD_STB("sdhi10", 101, R7S9210_CLK_B), + DEF_MOD_STB("sdhi01", 102, R7S9210_CLK_B), + DEF_MOD_STB("sdhi00", 103, R7S9210_CLK_B), }; /* The clock dividers in the table vary based on DT and register settings */ -- 2.16.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] clk: renesas: r7s9210: Add SDHI clocks 2018-10-08 16:23 ` [PATCH 1/3] clk: renesas: r7s9210: Add SDHI clocks Chris Brandt @ 2018-10-10 8:36 ` Geert Uytterhoeven 0 siblings, 0 replies; 9+ messages in thread From: Geert Uytterhoeven @ 2018-10-10 8:36 UTC (permalink / raw) To: Chris Brandt Cc: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd, Wolfram Sang, linux-clk, Linux MMC List, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas On Mon, Oct 8, 2018 at 6:24 PM Chris Brandt <chris.brandt@renesas.com> wrote: > Add SDHI clocks for RZ/A2 > > Signed-off-by: Chris Brandt <chris.brandt@renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> i.e. will queue in clk-renesas-for-v4.21. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support 2018-10-08 16:23 [PATCH 0/3] mmc: tmio_mmc: Add support for RZ/A2 Chris Brandt 2018-10-08 16:23 ` [PATCH 1/3] clk: renesas: r7s9210: Add SDHI clocks Chris Brandt @ 2018-10-08 16:23 ` Chris Brandt 2018-10-10 8:40 ` Geert Uytterhoeven 2018-10-08 16:23 ` [PATCH 3/3] dt-bindings: mmc: tmio_mmc: Document Renesas R7S9210 Chris Brandt 2 siblings, 1 reply; 9+ messages in thread From: Chris Brandt @ 2018-10-08 16:23 UTC (permalink / raw) To: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd Cc: Wolfram Sang, linux-clk, linux-mmc, devicetree, linux-renesas-soc, Chris Brandt The SDHI/MMC controller in the RZ/A2 is almost the same as R-Car gen3, but with some minor differences. Signed-off-by: Chris Brandt <chris.brandt@renesas.com> --- drivers/mmc/host/Kconfig | 5 +++-- drivers/mmc/host/renesas_sdhi_internal_dmac.c | 28 +++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index cf984f0f0246..33840ce2221d 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig @@ -636,13 +636,14 @@ config MMC_SDHI_SYS_DMAC config MMC_SDHI_INTERNAL_DMAC tristate "DMA for SDHI SD/SDIO controllers using on-chip bus mastering" - depends on ARM64 || COMPILE_TEST + depends on ARM64 || ARCH_R7S9210 || COMPILE_TEST depends on MMC_SDHI default MMC_SDHI if ARM64 help This provides DMA support for SDHI SD/SDIO controllers using on-chip bus mastering. This supports the controllers - found in arm64 based SoCs. + found in arm64 based SoCs. This controller is also found in + RZ/A2 series SoCs. config MMC_UNIPHIER tristate "UniPhier SD/eMMC Host Controller support" diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/host/renesas_sdhi_internal_dmac.c index e5e5015ca680..19c32ea237dd 100644 --- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c @@ -34,7 +34,7 @@ #define DTRAN_MODE_CH_NUM_CH0 0 /* "downstream" = for write commands */ #define DTRAN_MODE_CH_NUM_CH1 BIT(16) /* "upstream" = for read commands */ #define DTRAN_MODE_BUS_WIDTH (BIT(5) | BIT(4)) -#define DTRAN_MODE_ADDR_MODE BIT(0) /* 1 = Increment address */ +#define DTRAN_MODE_ADDR_MODE BIT(0) /* 1 = Increment address, 0 = Fixed */ /* DM_CM_DTRAN_CTRL */ #define DTRAN_CTRL_DM_START BIT(0) @@ -73,6 +73,9 @@ static unsigned long global_flags; #define SDHI_INTERNAL_DMAC_ONE_RX_ONLY 0 #define SDHI_INTERNAL_DMAC_RX_IN_USE 1 +/* RZ/A2 does not have this bit (not safe to set it) */ +#define SDHI_INTERNAL_DMAC_ADRR_MODE_FIXED 2 + /* Definitions for sampling clocks */ static struct renesas_sdhi_scc rcar_gen3_scc_taps[] = { { @@ -81,6 +84,21 @@ static struct renesas_sdhi_scc rcar_gen3_scc_taps[] = { }, }; +static const struct renesas_sdhi_of_data of_rza2_compatible = { + .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_CLK_ACTUAL | + TMIO_MMC_HAVE_CBSY, + .tmio_ocr_mask = MMC_VDD_32_33, + .capabilities = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | + MMC_CAP_CMD23, + .bus_shift = 2, + .scc_offset = (0 - 0x1000), + .taps = rcar_gen3_scc_taps, + .taps_num = ARRAY_SIZE(rcar_gen3_scc_taps), + /* DMAC can handle 0xffffffff blk count but only 1 segment */ + .max_blk_count = 0xffffffff, + .max_segs = 1, +}; + static const struct renesas_sdhi_of_data of_rcar_r8a7795_compatible = { .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_CLK_ACTUAL | TMIO_MMC_HAVE_CBSY | TMIO_MMC_MIN_RCAR2 | @@ -113,6 +131,7 @@ static const struct renesas_sdhi_of_data of_rcar_gen3_compatible = { }; static const struct of_device_id renesas_sdhi_internal_dmac_of_match[] = { + { .compatible = "renesas,sdhi-r7s9210", .data = &of_rza2_compatible, }, { .compatible = "renesas,sdhi-r8a7795", .data = &of_rcar_r8a7795_compatible, }, { .compatible = "renesas,sdhi-r8a7796", .data = &of_rcar_r8a7795_compatible, }, { .compatible = "renesas,rcar-gen3-sdhi", .data = &of_rcar_gen3_compatible, }, @@ -171,7 +190,10 @@ renesas_sdhi_internal_dmac_start_dma(struct tmio_mmc_host *host, struct mmc_data *data) { struct scatterlist *sg = host->sg_ptr; - u32 dtran_mode = DTRAN_MODE_BUS_WIDTH | DTRAN_MODE_ADDR_MODE; + u32 dtran_mode = DTRAN_MODE_BUS_WIDTH; + + if (!test_bit(SDHI_INTERNAL_DMAC_ADRR_MODE_FIXED, &global_flags)) + dtran_mode |= DTRAN_MODE_ADDR_MODE; if (!dma_map_sg(&host->pdev->dev, sg, host->sg_len, mmc_get_dma_dir(data))) @@ -290,6 +312,8 @@ static const struct tmio_mmc_dma_ops renesas_sdhi_internal_dmac_dma_ops = { */ static const struct soc_device_attribute gen3_soc_whitelist[] = { /* specific ones */ + { .soc_id = "r7s9210", + .data = (void *)BIT(SDHI_INTERNAL_DMAC_ADRR_MODE_FIXED) }, { .soc_id = "r8a7795", .revision = "ES1.*", .data = (void *)BIT(SDHI_INTERNAL_DMAC_ONE_RX_ONLY) }, { .soc_id = "r8a7796", .revision = "ES1.0", -- 2.16.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support 2018-10-08 16:23 ` [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support Chris Brandt @ 2018-10-10 8:40 ` Geert Uytterhoeven 2018-10-10 10:59 ` Chris Brandt 0 siblings, 1 reply; 9+ messages in thread From: Geert Uytterhoeven @ 2018-10-10 8:40 UTC (permalink / raw) To: Chris Brandt Cc: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd, Wolfram Sang, linux-clk, Linux MMC List, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas Hi Chris, On Mon, Oct 8, 2018 at 6:24 PM Chris Brandt <chris.brandt@renesas.com> wrote: > The SDHI/MMC controller in the RZ/A2 is almost the same as R-Car gen3, but > with some minor differences. > > Signed-off-by: Chris Brandt <chris.brandt@renesas.com> Thanks for your patch! > --- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c > +++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c > @@ -34,7 +34,7 @@ > #define DTRAN_MODE_CH_NUM_CH0 0 /* "downstream" = for write commands */ > #define DTRAN_MODE_CH_NUM_CH1 BIT(16) /* "upstream" = for read commands */ > #define DTRAN_MODE_BUS_WIDTH (BIT(5) | BIT(4)) > -#define DTRAN_MODE_ADDR_MODE BIT(0) /* 1 = Increment address */ > +#define DTRAN_MODE_ADDR_MODE BIT(0) /* 1 = Increment address, 0 = Fixed */ > > /* DM_CM_DTRAN_CTRL */ > #define DTRAN_CTRL_DM_START BIT(0) > @@ -73,6 +73,9 @@ static unsigned long global_flags; > #define SDHI_INTERNAL_DMAC_ONE_RX_ONLY 0 > #define SDHI_INTERNAL_DMAC_RX_IN_USE 1 > > +/* RZ/A2 does not have this bit (not safe to set it) */ This comment confused me, as SDHI_INTERNAL_DMAC_ADRR_MODE_FIXED is set for RZ/A2. s/this bit/the ADDR_MODE bit/? > +#define SDHI_INTERNAL_DMAC_ADRR_MODE_FIXED 2 > + > /* Definitions for sampling clocks */ > static struct renesas_sdhi_scc rcar_gen3_scc_taps[] = { > { Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support 2018-10-10 8:40 ` Geert Uytterhoeven @ 2018-10-10 10:59 ` Chris Brandt 2018-10-12 11:09 ` Wolfram Sang 0 siblings, 1 reply; 9+ messages in thread From: Chris Brandt @ 2018-10-10 10:59 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd, Wolfram Sang, linux-clk, Linux MMC List, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>, Linux-Renesas Hi Geert, On Wednesday, October 10, 2018, Geert Uytterhoeven wrote: > Thanks for your patch! Thanks for your review! > > +/* RZ/A2 does not have this bit (not safe to set it) */ > > This comment confused me, as SDHI_INTERNAL_DMAC_ADRR_MODE_FIXED is > set for RZ/A2. > > s/this bit/the ADDR_MODE bit/? OK, I see your point. Maybe I just change it to this: /* RZ/A2 does not have ADRR_MODE bit */ As you can imagine, it does have this bit. And it worked fine from me. But the chip guys said they found something not right with it, so they removed it from the v1.0 Hardware Manual. Chris ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support 2018-10-10 10:59 ` Chris Brandt @ 2018-10-12 11:09 ` Wolfram Sang 0 siblings, 0 replies; 9+ messages in thread From: Wolfram Sang @ 2018-10-12 11:09 UTC (permalink / raw) To: Chris Brandt Cc: Geert Uytterhoeven, Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd, Wolfram Sang, linux-clk, Linux MMC List, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas [-- Attachment #1: Type: text/plain, Size: 263 bytes --] > As you can imagine, it does have this bit. And it worked fine from me. > But the chip guys said they found something not right with it, so they > removed it from the v1.0 Hardware Manual. Do you happen to know if this applies for Gen3 SDHI as well? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/3] dt-bindings: mmc: tmio_mmc: Document Renesas R7S9210 2018-10-08 16:23 [PATCH 0/3] mmc: tmio_mmc: Add support for RZ/A2 Chris Brandt 2018-10-08 16:23 ` [PATCH 1/3] clk: renesas: r7s9210: Add SDHI clocks Chris Brandt 2018-10-08 16:23 ` [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support Chris Brandt @ 2018-10-08 16:23 ` Chris Brandt 2018-10-10 8:42 ` Geert Uytterhoeven 2 siblings, 1 reply; 9+ messages in thread From: Chris Brandt @ 2018-10-08 16:23 UTC (permalink / raw) To: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd Cc: Wolfram Sang, linux-clk, linux-mmc, devicetree, linux-renesas-soc, Chris Brandt Document support for the RZ/A2 (R7S9210) SoC. Signed-off-by: Chris Brandt <chris.brandt@renesas.com> --- Documentation/devicetree/bindings/mmc/tmio_mmc.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt index 79ecaf4161a0..16c7e656a33d 100644 --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt @@ -13,6 +13,7 @@ Required properties: - compatible: should contain one or more of the following: "renesas,sdhi-sh73a0" - SDHI IP on SH73A0 SoC "renesas,sdhi-r7s72100" - SDHI IP on R7S72100 SoC + "renesas,sdhi-r7s9210" - SDHI IP on R7S9210 SoC "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC -- 2.16.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] dt-bindings: mmc: tmio_mmc: Document Renesas R7S9210 2018-10-08 16:23 ` [PATCH 3/3] dt-bindings: mmc: tmio_mmc: Document Renesas R7S9210 Chris Brandt @ 2018-10-10 8:42 ` Geert Uytterhoeven 0 siblings, 0 replies; 9+ messages in thread From: Geert Uytterhoeven @ 2018-10-10 8:42 UTC (permalink / raw) To: Chris Brandt Cc: Ulf Hansson, Rob Herring, Mark Rutland, Geert Uytterhoeven, Michael Turquette, Stephen Boyd, Wolfram Sang, linux-clk, Linux MMC List, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Linux-Renesas Hi Chris, On Mon, Oct 8, 2018 at 6:24 PM Chris Brandt <chris.brandt@renesas.com> wrote: > Document support for the RZ/A2 (R7S9210) SoC. > > Signed-off-by: Chris Brandt <chris.brandt@renesas.com> Thanks for your patch! > --- a/Documentation/devicetree/bindings/mmc/tmio_mmc.txt > +++ b/Documentation/devicetree/bindings/mmc/tmio_mmc.txt > @@ -13,6 +13,7 @@ Required properties: > - compatible: should contain one or more of the following: > "renesas,sdhi-sh73a0" - SDHI IP on SH73A0 SoC > "renesas,sdhi-r7s72100" - SDHI IP on R7S72100 SoC > + "renesas,sdhi-r7s9210" - SDHI IP on R7S9210 SoC > "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC > "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC > "renesas,sdhi-r8a7743" - SDHI IP on R8A7743 SoC With Devices which have more than 1 clock are listed below: - 2: R7S72100 + 2: R7S72100, R7S9210 Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-10-12 11:09 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-10-08 16:23 [PATCH 0/3] mmc: tmio_mmc: Add support for RZ/A2 Chris Brandt 2018-10-08 16:23 ` [PATCH 1/3] clk: renesas: r7s9210: Add SDHI clocks Chris Brandt 2018-10-10 8:36 ` Geert Uytterhoeven 2018-10-08 16:23 ` [PATCH 2/3] mmc: renesas_sdhi_internal_dmac: Add R7S9210 support Chris Brandt 2018-10-10 8:40 ` Geert Uytterhoeven 2018-10-10 10:59 ` Chris Brandt 2018-10-12 11:09 ` Wolfram Sang 2018-10-08 16:23 ` [PATCH 3/3] dt-bindings: mmc: tmio_mmc: Document Renesas R7S9210 Chris Brandt 2018-10-10 8:42 ` Geert Uytterhoeven
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).