[PATCH] mmc: xenon_sdhci: Add missing common host capabilities

Gérald Kerma gerald at gk2.net
Fri Sep 11 14:51:35 CEST 2020


Le 11/09/2020 à 14:38, Marek Behún a écrit :
> On Thu, 10 Sep 2020 19:53:40 +0200
> Andre Heider <a.heider at gmail.com> wrote:
>
>> Use mmc_of_parse() to set the common host properties. That includes
>> "bus-width", so parsing it can be removed from the driver.
>>
>> But more importantly, "non-removable" is now respected, which fixes
>> the usage of eMMC.
>>
>> Signed-off-by: Andre Heider <a.heider at gmail.com>
>> ---
>>
>> Tested myself on v5 without emmc, `mmc info` is unchanged for my sd
>> card
>>
>> Tested by Gérald on v7 emmc, which started working with this patch:
>> => mmc info
>> Device: sdhci at d8000
>> Manufacturer ID: 45
>> OEM: 100
>> Name: SEM04
>> Bus Speed: 52000000
>> Mode: MMC High Speed (52MHz)
>> Rd Block Len: 512
>> MMC version 4.5
>> High Capacity: Yes
>> Capacity: 3.7 GiB
>> Bus Width: 8-bit
>> Erase Group Size: 256 KiB
>> HC WP Group Size: 8 MiB
>> User Capacity: 3.7 GiB WRREL
>> Boot Capacity: 2 MiB
>> RPMB Capacity: 2 MiB
>> Boot area 0 is not write protected
>> Boot area 1 is not write protected
>>
>>   drivers/mmc/xenon_sdhci.c | 18 ++++--------------
>>   1 file changed, 4 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/mmc/xenon_sdhci.c b/drivers/mmc/xenon_sdhci.c
>> index 7f9a579c83..6ce9d00d0a 100644
>> --- a/drivers/mmc/xenon_sdhci.c
>> +++ b/drivers/mmc/xenon_sdhci.c
>> @@ -485,20 +485,10 @@ static int xenon_sdhci_probe(struct udevice
>> *dev) armada_3700_soc_pad_voltage_set(host);
>>   
>>   	host->host_caps = MMC_MODE_HS | MMC_MODE_HS_52MHz |
>> MMC_MODE_DDR_52MHz;
>> -	switch (fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
>> "bus-width",
>> -		1)) {
>> -	case 8:
>> -		host->host_caps |= MMC_MODE_8BIT;
>> -		break;
>> -	case 4:
>> -		host->host_caps |= MMC_MODE_4BIT;
>> -		break;
>> -	case 1:
>> -		break;
>> -	default:
>> -		printf("Invalid \"bus-width\" value\n");
>> -		return -EINVAL;
>> -	}
>> +
>> +	ret = mmc_of_parse(dev, &plat->cfg);
>> +	if (ret)
>> +		return ret;
>>   
>>   	host->ops = &xenon_sdhci_ops;
>>   
> Tested-by: Marek Behún <marek.behun at nic.cz>
|Tested-by: Gérald Kerma <gandalf at gk2.net>| ||


More information about the U-Boot mailing list