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.toms...@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;
  }




_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to