On Tue, Jul 25, 2023 at 11:03:44PM +0800, Jisheng Zhang wrote: > On Mon, Jul 24, 2023 at 05:59:18PM -0700, Drew Fustini wrote: > > Add basic support for the T-Head TH1520 SoC mmc controller. The new > > compatible "thead,th1520-dwcmshc" enables basic support by: > > Hi Drew, > > > > > - Enabling v4 mode to properly communicate with the mmc device > > - Setting quirk to disable ADMA > > - Setting flag to disable SDMA and force PIO mode > > - Turing .reset op into a no-op as the driver does not yet know how to > > configure the phy. Rely on the vendor u-boot to have configured the > > phy and do not reset the controller in Linux. > > The last three itmes are not acceptable. The controller supports ADMA > well, can you plz bring in the phy driver? We can't rely on bootloader to > configure phy. Yes, that makes sense that this is not acceptable. The T-Head vendor kernel seems to contain all the necessary information needed to add the phy configuration to sdhci-of-dwcmshc. The shipping kernel for the BeagleV Ahead [1] is based on the T-Head SDK releases. I looked at changes to drivers/mmc and found that key changes are from Linux_SDK_V0.9.5 [2] and Linux_SDK_V1.0.2 [3]. That kernel contains drivers/mmc/host/sdhci-of-dwcmshc.h [4] which seems to define information about the phy registers. The version of drivers/mmc/host/sdhci-of-dwcmshc.h in that kernel defines several functions for the phy config and controller reset: sdhci_phy_1_8v_init_no_pull sdhci_phy_3_3v_init_no_pull snps_phy_1_8v_init snps_phy_3_3v_init snps_sdhci_set_phy snps_sdhci_reset I'll look into adapting that code into the upstream sdhci-of-dwcmshc. Thanks, Drew [1] https://git.beagleboard.org/beaglev-ahead/beaglev-ahead-linux [2] https://gist.github.com/pdp7/8d85d736dea24957c017eefdeb882668 [3] https://gist.github.com/pdp7/c1d3a18f9b7c25e630573d5953a58c99 [4] https://git.beagleboard.org/beaglev-ahead/beaglev-ahead-linux/-/blob/beaglev-v5.10.113-1.1.2/drivers/mmc/host/sdhci-of-dwcmshc.h [5] https://git.beagleboard.org/beaglev-ahead/beaglev-ahead-linux/-/blob/beaglev-v5.10.113-1.1.2/drivers/mmc/host/sdhci-of-dwcmshc.c