From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Ott Date: Fri, 30 Jun 2017 17:30:09 -0400 Subject: [U-Boot] [PATCH] mmc: pic32_sdhci: Complete the transition to driver model In-Reply-To: <2af9de31-0b91-0d20-f0b6-2f6a2b366a6d@samsung.com> References: <20170621032318.31285-1-alan@softiron.com> <2af9de31-0b91-0d20-f0b6-2f6a2b366a6d@samsung.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 06/30/2017 12:00 AM, Jaehoon Chung wrote: > On 06/21/2017 12:23 PM, Alan Ott wrote: >> Previously this driver appeared to have been half-way converted to the new >> driver model and did not work at all. >> >> Complete the transition to the driver model, adding the necessary >> connections. >> >> Signed-off-by: Alan Ott >> --- >> configs/pic32mzdask_defconfig | 1 - >> drivers/mmc/Kconfig | 2 +- >> drivers/mmc/pic32_sdhci.c | 31 ++++++++++++++++++++++++++----- >> 3 files changed, 27 insertions(+), 7 deletions(-) >> >> diff --git a/configs/pic32mzdask_defconfig b/configs/pic32mzdask_defconfig >> index 688b989..afb1bdb 100644 >> --- a/configs/pic32mzdask_defconfig >> +++ b/configs/pic32mzdask_defconfig >> @@ -25,7 +25,6 @@ CONFIG_CMD_EXT4_WRITE=y >> # CONFIG_EFI_PARTITION is not set >> CONFIG_OF_EMBED=y >> CONFIG_NET_RANDOM_ETHADDR=y >> -# CONFIG_BLK is not set >> CONFIG_CLK=y >> CONFIG_DM_GPIO=y >> CONFIG_MMC=y >> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig >> index 0dd4443..b70775d 100644 >> --- a/drivers/mmc/Kconfig >> +++ b/drivers/mmc/Kconfig >> @@ -274,7 +274,7 @@ config MMC_SDHCI_MV >> >> config MMC_SDHCI_PIC32 >> bool "Microchip PIC32 on-chip SDHCI support" >> - depends on DM_MMC && MACH_PIC32 >> + depends on DM_MMC && BLK && DM_MMC_OPS && MACH_PIC32 > If DM_MMC is enabled,,then CONFIG_BLK and CONFIG_DM_MMC_OPS are "y" by default. > Why do you touch this? I made it look like other drivers which use BLK and DM_MMC_OPS. At some point it seemed required because of build failures I was having, but maybe my .config was just out of date. I will remove this, but again, other examples in the same directory are the same, so they should probably be fixed too, separately. > >> depends on MMC_SDHCI >> help >> Support for Microchip PIC32 SDHCI controller. >> diff --git a/drivers/mmc/pic32_sdhci.c b/drivers/mmc/pic32_sdhci.c >> index 212e22e..fc6d7f3 100644 >> --- a/drivers/mmc/pic32_sdhci.c >> +++ b/drivers/mmc/pic32_sdhci.c >> @@ -15,6 +15,11 @@ >> >> DECLARE_GLOBAL_DATA_PTR; >> >> +struct pic32_sdhci_plat { >> + struct mmc_config cfg; >> + struct mmc mmc; >> +}; >> + >> static int pic32_sdhci_get_cd(struct sdhci_host *host) >> { >> /* PIC32 SDHCI CD errata: >> @@ -31,6 +36,8 @@ static const struct sdhci_ops pic32_sdhci_ops = { >> >> static int pic32_sdhci_probe(struct udevice *dev) >> { >> + struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev); >> + struct pic32_sdhci_plat *plat = dev_get_platdata(dev); >> struct sdhci_host *host = dev_get_priv(dev); >> const void *fdt = gd->fdt_blob; >> u32 f_min_max[2]; >> @@ -56,14 +63,25 @@ static int pic32_sdhci_probe(struct udevice *dev) >> return ret; >> } >> >> - host->max_clk = f_min_max[1]; >> - >> - ret = add_sdhci(host, 0, f_min_max[0]); >> - if (ret) >> + ret = sdhci_setup_cfg(&plat->cfg, host, /*max*/0, /*min*/f_min_max[0]); > What are "/*max*, /*min*/" ? It documents the parameters. I'll change it to be more clear in the code. Alan.