[U-Boot] [PATCH] mmc: pic32_sdhci: Complete the transition to driver model
Alan Ott
alan at softiron.co.uk
Fri Jun 30 21:30:09 UTC 2017
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 <alan at softiron.com>
>> ---
>> 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.
More information about the U-Boot
mailing list