[U-Boot] [PATCH 2/4] spi: cadence_qspi: Fix fdt read of spi-max-frequency

Chin Liang See clsee at altera.com
Thu Sep 10 06:59:21 CEST 2015


Hi,

On Tue, 2015-09-08 at 15:39 +0530, Jagan Teki wrote:
> On 8 September 2015 at 06:48, Chin Liang See <clsee at altera.com> wrote:
> > Fix the fdt read for spi-max-frequency as it's contained
> > in the child node. Current state of code is always
> > returning default value.
> >
> > Signed-off-by: Chin Liang See <clsee at altera.com>
> > Cc: Dinh Nguyen <dinguyen at opensource.altera.com>
> > Cc: Dinh Nguyen <dinh.linux at gmail.com>
> > Cc: Marek Vasut <marex at denx.de>
> > Cc: Stefan Roese <sr at denx.de>
> > Cc: Vikas Manocha <vikas.manocha at st.com>
> > Cc: Jagannadh Teki <jteki at openedev.com>
> > Cc: Pavel Machek <pavel at denx.de>
> > ---
> > Changes for v2
> > - Add unsigned casting for plat->max_hz
> > ---
> >  drivers/spi/cadence_qspi.c |    8 ++++----
> >  1 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
> > index 23c88d5..8c0f7dd 100644
> > --- a/drivers/spi/cadence_qspi.c
> > +++ b/drivers/spi/cadence_qspi.c
> > @@ -296,10 +296,6 @@ static int cadence_spi_ofdata_to_platdata(struct udevice *bus)
> >         plat->regbase = (void *)data[0];
> >         plat->ahbbase = (void *)data[2];
> >
> > -       /* Use 500KHz as a suitable default */
> > -       plat->max_hz = fdtdec_get_int(blob, node, "spi-max-frequency",
> > -                                     500000);
> > -
> >         /* All other paramters are embedded in the child node */
> >         subnode = fdt_first_subnode(blob, node);
> >         if (subnode < 0) {
> > @@ -307,6 +303,10 @@ static int cadence_spi_ofdata_to_platdata(struct udevice *bus)
> >                 return -ENODEV;
> >         }
> >
> > +       /* Use 500KHz as a suitable default */
> > +       plat->max_hz = (unsigned int)fdtdec_get_int(blob, subnode,
> > +                                               "spi-max-frequency", 500000);
> > +
> 
> fdtdec_get_int will return default_val (say 500000 here) or property
> value from dts which is usually "unsigned", unless wrongly set as -ve
> value ie reason there is no typecasting used in rest of the code.
> 
> But, if still worried, better to add unsigned fdtdec_get_* instead of
> type casting.

Thanks to Marek, I will use fdt_getprop_u32_default_node to achieve
this :)

Thanks
Chin Liang

> 
> >         /* Read other parameters from DT */
> >         plat->page_size = fdtdec_get_int(blob, subnode, "page-size", 256);
> >         plat->block_size = fdtdec_get_int(blob, subnode, "block-size", 16);
> > --
> > 1.7.7.4
> >
> 
> thanks!




More information about the U-Boot mailing list