[U-Boot] [PATCH 2/2] rockchip: mmc: handle deprecation of 'clock-freq-min-max'
Kever Yang
kever.yang at rock-chips.com
Fri Apr 28 07:24:58 UTC 2017
Hi Jaehoon,
On 04/27/2017 12:21 PM, Jaehoon Chung wrote:
> On 04/25/2017 04:52 PM, Philipp Tomsich wrote:
>> The 'clock-freq-min-max' property was deprecated in the upstream
>> (i.e. Linux) DTS bindings in favor of the 'max-frequency' property.
> It's difference wit Linux kernel. "clock-freq-min-max" was deprecated in Linux.
> Linux kernel is supporting to find the best clock value in core.c.
We need to sync the dts definition with kernel, because we might using
just the dts from kernel without modification in the future.
I'm not sure Philipp's patch is correct or not, but we can figure it
out, right?
Thanks,
- Kever
>
> There are defined the freqs[] = {400000, ...., 100000}
> then it should be looped to find the value from 400K to 100K.
>
> As i know, u-boot doesn't support this..
> If you set to min value as 400K..doesn't check the other values..
>
> Best Regards,
> Jaehoon Chung
>
>> With the latest RK3399 DTSI does no longer include the deprecated
>> property and the rockchip_dw_mmc driver requiring it to be present,
>> the driver doesn't bind to the node in the RK3399 DTSI any longer
>> (thus breaking access to the SD card on the RK3399-Q7 board).
>>
>> To fix this, we implement a similar logic as in the Linux driver: if
>> the deprecated property is present, we issue a warning (if DEBUG is
>> enabled); if it is missing, we require 'max-frequency' to be set and
>> use it to create a min/max value-pair.
>>
>> See https://github.com/torvalds/linux/commit/b023030f10573de738bbe8df63d43acab64c9f7b
>> for the deprecation/matching change in Linux.
>>
>> Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>> ---
>>
>> drivers/mmc/rockchip_dw_mmc.c | 20 ++++++++++++++++++--
>> 1 file changed, 18 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mmc/rockchip_dw_mmc.c b/drivers/mmc/rockchip_dw_mmc.c
>> index c36eda0..432ae20 100644
>> --- a/drivers/mmc/rockchip_dw_mmc.c
>> +++ b/drivers/mmc/rockchip_dw_mmc.c
>> @@ -76,9 +76,25 @@ static int rockchip_dwmmc_ofdata_to_platdata(struct udevice *dev)
>> return -EINVAL;
>> priv->fifo_mode = fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
>> "fifo-mode");
>> +
>> + /*
>> + * 'clock-freq-min-max' is deprecated
>> + * (see https://github.com/torvalds/linux/commit/b023030f10573de738bbe8df63d43acab64c9f7b)
>> + */
>> if (fdtdec_get_int_array(gd->fdt_blob, dev_of_offset(dev),
>> - "clock-freq-min-max", priv->minmax, 2))
>> - return -EINVAL;
>> + "clock-freq-min-max", priv->minmax, 2)) {
>> + int val = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
>> + "max-frequency", -EINVAL);
>> +
>> + if (val < 0)
>> + return val;
>> +
>> + priv->minmax[0] = 400000; /* 400 kHz */
>> + priv->minmax[1] = val;
>> + } else {
>> + debug("%s: 'clock-freq-min-max' property was deprecated.\n",
>> + __func__);
>> + }
>> #endif
>> return 0;
>> }
>>
>
More information about the U-Boot
mailing list