diff mbox

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

Message ID 1441287722-2250-2-git-send-email-clsee@altera.com
State Superseded
Delegated to: Marek Vasut
Headers show

Commit Message

Chin Liang See Sept. 3, 2015, 1:42 p.m. UTC
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@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Dinh Nguyen <dinh.linux@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Vikas Manocha <vikas.manocha@st.com>
Cc: Jagannadh Teki <jteki@openedev.com>
Cc: Pavel Machek <pavel@denx.de>
---
 drivers/spi/cadence_qspi.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

Comments

Marek Vasut Sept. 3, 2015, 2:19 p.m. UTC | #1
On Thursday, September 03, 2015 at 03:42:00 PM, Chin Liang See 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@altera.com>
> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> Cc: Dinh Nguyen <dinh.linux@gmail.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Stefan Roese <sr@denx.de>
> Cc: Vikas Manocha <vikas.manocha@st.com>
> Cc: Jagannadh Teki <jteki@openedev.com>
> Cc: Pavel Machek <pavel@denx.de>
> ---
>  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 300934e..a00af87 100644
> --- a/drivers/spi/cadence_qspi.c
> +++ b/drivers/spi/cadence_qspi.c
> @@ -291,10 +291,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) {
> @@ -302,6 +298,10 @@ static int cadence_spi_ofdata_to_platdata(struct
> udevice *bus) return -ENODEV;
>  	}
> 
> +	/* Use 500KHz as a suitable default */
> +	plat->max_hz = fdtdec_get_int(blob, subnode, "spi-max-frequency",
> +				      500000);

Use fdtdec_get_u32() or such, since the value is unsigned int (have you ever
seen negative frequency ? ;-) ). Then check the fdtdec_get_u32() return value.

>  	/* 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);

Best regards,
Marek Vasut
Chin Liang See Sept. 8, 2015, 1:16 a.m. UTC | #2
Hi,

On Thu, 2015-09-03 at 16:19 +0200, marex@denx.de wrote:
> On Thursday, September 03, 2015 at 03:42:00 PM, Chin Liang See 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@altera.com>
> > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > Cc: Dinh Nguyen <dinh.linux@gmail.com>
> > Cc: Marek Vasut <marex@denx.de>
> > Cc: Stefan Roese <sr@denx.de>
> > Cc: Vikas Manocha <vikas.manocha@st.com>
> > Cc: Jagannadh Teki <jteki@openedev.com>
> > Cc: Pavel Machek <pavel@denx.de>
> > ---
> >  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 300934e..a00af87 100644
> > --- a/drivers/spi/cadence_qspi.c
> > +++ b/drivers/spi/cadence_qspi.c
> > @@ -291,10 +291,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) {
> > @@ -302,6 +298,10 @@ static int cadence_spi_ofdata_to_platdata(struct
> > udevice *bus) return -ENODEV;
> >  	}
> > 
> > +	/* Use 500KHz as a suitable default */
> > +	plat->max_hz = fdtdec_get_int(blob, subnode, "spi-max-frequency",
> > +				      500000);
> 
> Use fdtdec_get_u32() or such, since the value is unsigned int (have you ever
> seen negative frequency ? ;-) ). Then check the fdtdec_get_u32() return value.
> 

I git grep and no unsigned version.
But I can add unsigned casting to avoid that.

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);
> 
> Best regards,
> Marek Vasut
Marek Vasut Sept. 8, 2015, 10:08 a.m. UTC | #3
On Tuesday, September 08, 2015 at 03:16:58 AM, Chin Liang See wrote:
> Hi,

Hi!

> On Thu, 2015-09-03 at 16:19 +0200, marex@denx.de wrote:
> > On Thursday, September 03, 2015 at 03:42:00 PM, Chin Liang See 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@altera.com>
> > > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > > Cc: Dinh Nguyen <dinh.linux@gmail.com>
> > > Cc: Marek Vasut <marex@denx.de>
> > > Cc: Stefan Roese <sr@denx.de>
> > > Cc: Vikas Manocha <vikas.manocha@st.com>
> > > Cc: Jagannadh Teki <jteki@openedev.com>
> > > Cc: Pavel Machek <pavel@denx.de>
> > > ---
> > > 
> > >  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 300934e..a00af87 100644
> > > --- a/drivers/spi/cadence_qspi.c
> > > +++ b/drivers/spi/cadence_qspi.c
> > > @@ -291,10 +291,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) {
> > > 
> > > @@ -302,6 +298,10 @@ static int cadence_spi_ofdata_to_platdata(struct
> > > udevice *bus) return -ENODEV;
> > > 
> > >  	}
> > > 
> > > +	/* Use 500KHz as a suitable default */
> > > +	plat->max_hz = fdtdec_get_int(blob, subnode, "spi-max-frequency",
> > > +				      500000);
> > 
> > Use fdtdec_get_u32() or such, since the value is unsigned int (have you
> > ever seen negative frequency ? ;-) ). Then check the fdtdec_get_u32()
> > return value.
> 
> I git grep and no unsigned version.
> But I can add unsigned casting to avoid that.

I think fdt_getprop_u32() is what you're looking for.

Best regards,
Marek Vasut
diff mbox

Patch

diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
index 300934e..a00af87 100644
--- a/drivers/spi/cadence_qspi.c
+++ b/drivers/spi/cadence_qspi.c
@@ -291,10 +291,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) {
@@ -302,6 +298,10 @@  static int cadence_spi_ofdata_to_platdata(struct udevice *bus)
 		return -ENODEV;
 	}
 
+	/* Use 500KHz as a suitable default */
+	plat->max_hz = fdtdec_get_int(blob, subnode, "spi-max-frequency",
+				      500000);
+
 	/* 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);