[U-Boot] [linux-sunxi] Re: [PATCH v3 0/9] mmc: sunxi: Enable DM_MMC

Jagan Teki
2019-01-25T11:41:06Z

On Fri, Jan 25, 2019 at 5:07 PM Andre Przywara <andre.przywara@arm.com> wrote:
>
> On Fri, 25 Jan 2019 19:01:12 +0800
> Chen-Yu Tsai <wens@csie.org> wrote:
>
> Hi,
>
> > On Fri, Jan 25, 2019 at 6:41 PM Jagan Teki
> > <jagan@amarulasolutions.com> wrote:
> > >
> > > On Fri, Jan 25, 2019 at 2:05 PM Chen-Yu Tsai <wens@csie.org>
> > > wrote:
> > > >
> > > > On Fri, Jan 25, 2019 at 4:27 PM Jagan Teki
> > > > <jagan@amarulasolutions.com> wrote:
> > > > >
> > > > > On Tue, Jan 22, 2019 at 7:55 AM Chen-Yu Tsai <wens@csie.org>
> > > > > wrote:
> > > > > >
> > > > > > On Mon, Jan 21, 2019 at 6:31 PM Jagan Teki
> > > > > > <jagan@amarulasolutions.com> wrote:
> > > > > > >
> > > > > > > Compared to previous version changes[1] this version do
> > > > > > > manage ahb clocks/resets via CLK framework.
> > > > > > >
> > > > > > > This version created changes along with Andre patches to
> > > > > > > support clock/resets[2]
> > > > > > >
> > > > > > > Tested A64, SD, eMMC and respective changes available at
> > > > > > > u-boot-sunxi/next
> > > > > > >
> > > > > > > Changes for v3:
> > > > > > > - Handle clock via CLK framework.
> > > > > > > Changes for v2:
> > > > > > > - update the 'reset enablement' logic to do
> > > > > > > required SoC's
> > > > > > >
> > > > > > > [1] https://patchwork.ozlabs.org/cover/1026828/
> > > > > > > [2] https://patchwork.ozlabs.org/cover/1027850/
> > > > > > >
> > > > > > > Andre Przywara (2):
> > > > > > > sunxi: clk: add MMC gates/resets
> > > > > > > sunxi: clk: A80: add MMC clock support
> > > > > > >
> > > > > > > Jagan Teki (7):
> > > > > > > mmc: sunxi: Add A83T emmc compatible
> > > > > > > mmc: sunxi: Add mmc, emmc H5/A64 compatible
> > > > > > > mmc: sunxi: Add DM_MMC support for H6
> > > > > > > mmc: sunxi: Add DM_MMC support for A80
> > > > > > > dm: mmc: sunxi: Add CLK and RESET support
> > > > > > > arm: sunxi: Enable DM_MMC
> > > > > > > arm: dts: sunxi: Enumerate MMC2 as MMC1
> > > > > >
> > > > > > Tested-by: Chen-Yu Tsai <wens@csie.org> # on the Bananapi M2M
> > > > > >
> > > > > > However, the A80 MMC clock patch is still missing code to
> > > > > > toggle the upstream bus clock gate and reset control in the
> > > > > > CCU.
> > > > >
> > > > > Sent it with original mmc clock and reset patch[1], let me know
> > > > > your comments.
> > > >
> > > > Right. The problem is nowhere in this series are those enabled /
> > > > deasserted. The A80 CCU only has one gate & reset for the whole
> > > > MMC subsystem, including the MMC config clocks block. Ideally the
> > > > driver for that block should enable the gate and deassert the
> > > > reset control.
> > >
> > > Yes, that same has been included with v3.1 patch which I linked
> > > above.
> >
> > The gates/resets are added in that patch. No one is using them. The
> > device tree node for the MMC controllers do _not_ reference this clock
> > and reset, only the individual ones in the MMC config clock block.
> >
> > Unless you are expecting BROM or SPL to have set that up for you,
> > which IMO is quite fragile. You could very well boot from SPI or even
> > FEL, and it wouldn't be correctly setup, in which case MMC would be
> > completely broken.
> >
> > FYI the clk-sun9i-mmc driver in Linux deasserts the reset at probe:
> >
> > https://elixir.bootlin.com/linux/latest/source/drivers/clk/sunxi/clk-sun9i-mmc.c#L145
> >
> > And enables the bus gate when it needs to toggle bits in its register
> > space:
> >
> > https://elixir.bootlin.com/linux/latest/source/drivers/clk/sunxi/clk-sun9i-mmc.c#L53
> >
> > This is what is missing. Andre's patch doesn't have them. He
> > specifically mentioned this.
>
> But this is addressed by this, isn't it?
> https://lists.denx.de/pipermail/u-boot/2019-January/355856.html
> (combined with Jagan's addition of the shared gates in v3.1)
>
> Btw.: Somehow I managed to send it from the wrong branch (doesn't even
> compile), will send a fix later.
>
> Jagan, we need this patch for A80, and also the pinmux setup patch (1/2
> in this series) for it to work. That together with the H3 reset hiccup
> should be enough to justify a v4, I believe. Also I had some comments
> on your v3 (commit messages outdated, 7/9 too complicated), are you
> going to address them?
>
> Meanwhile I prepared a branch to have everything we need:
> https://github.com/apritzel/u-boot/commits/sunxi-dm-gates
> Please ignore the top 4 commits for now (adding SPI flash support).

Add on top of this branch[2], will send all together in next version
for final version probably.

[2] https://github.com/amarula/u-boot-amarula/tree/sun-dm-mmc