diff mbox series

[U-Boot] spi: cadence_qspi: Change to use devfdt_get_addr_index()

Message ID 1525686177-49276-1-git-send-email-ley.foon.tan@intel.com
State Accepted
Commit 6c353674bd5219b1129e29d16484eb540e0d3925
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series [U-Boot] spi: cadence_qspi: Change to use devfdt_get_addr_index() | expand

Commit Message

Ley Foon Tan May 7, 2018, 9:42 a.m. UTC
Change to use devfdt_get_addr_index() function to get fdt address.

Original code has compilation warning below:

drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’:
drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  plat->regbase = (void *)data[0];
                  ^
drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  plat->ahbbase = (void *)data[2];
                  ^
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
---
 drivers/spi/cadence_qspi.c |   13 ++-----------
 1 files changed, 2 insertions(+), 11 deletions(-)

Comments

Jagan Teki May 16, 2018, 1:33 p.m. UTC | #1
On Mon, May 7, 2018 at 3:12 PM, Ley Foon Tan <ley.foon.tan@intel.com> wrote:
> Change to use devfdt_get_addr_index() function to get fdt address.
>
> Original code has compilation warning below:
>
> drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’:
> drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   plat->regbase = (void *)data[0];
>                   ^
> drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   plat->ahbbase = (void *)data[2];

was this a coverage-tool check, I didn't see any warning with arm
compiler? make socfpga_arria5_defconfig && make
Ley Foon Tan May 17, 2018, 2:23 a.m. UTC | #2
On Wed, May 16, 2018 at 9:33 PM, Jagan Teki <jagannadh.teki@gmail.com> wrote:
> On Mon, May 7, 2018 at 3:12 PM, Ley Foon Tan <ley.foon.tan@intel.com> wrote:
>> Change to use devfdt_get_addr_index() function to get fdt address.
>>
>> Original code has compilation warning below:
>>
>> drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’:
>> drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>>   plat->regbase = (void *)data[0];
>>                   ^
>> drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>>   plat->ahbbase = (void *)data[2];
>
> was this a coverage-tool check, I didn't see any warning with arm
> compiler? make socfpga_arria5_defconfig && make

This error came up if compile with ARM 64bit (aarch64-linux-gnu-).

Regards
Ley Foon
Marek Vasut June 1, 2018, 8:07 a.m. UTC | #3
On 05/07/2018 11:42 AM, Ley Foon Tan wrote:
> Change to use devfdt_get_addr_index() function to get fdt address.
> 
> Original code has compilation warning below:
> 
> drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’:
> drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   plat->regbase = (void *)data[0];
>                   ^
> drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   plat->ahbbase = (void *)data[2];
>                   ^
> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>

Acked-by: Marek Vasut <marex@denx.de>

> ---
>  drivers/spi/cadence_qspi.c |   13 ++-----------
>  1 files changed, 2 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
> index 7b312f8..f80d073 100644
> --- a/drivers/spi/cadence_qspi.c
> +++ b/drivers/spi/cadence_qspi.c
> @@ -284,18 +284,9 @@ static int cadence_spi_ofdata_to_platdata(struct udevice *bus)
>  	const void *blob = gd->fdt_blob;
>  	int node = dev_of_offset(bus);
>  	int subnode;
> -	u32 data[4];
> -	int ret;
>  
> -	/* 2 base addresses are needed, lets get them from the DT */
> -	ret = fdtdec_get_int_array(blob, node, "reg", data, ARRAY_SIZE(data));
> -	if (ret) {
> -		printf("Error: Can't get base addresses (ret=%d)!\n", ret);
> -		return -ENODEV;
> -	}
> -
> -	plat->regbase = (void *)data[0];
> -	plat->ahbbase = (void *)data[2];
> +	plat->regbase = (void *)devfdt_get_addr_index(bus, 0);
> +	plat->ahbbase = (void *)devfdt_get_addr_index(bus, 1);
>  	plat->is_decoded_cs = fdtdec_get_bool(blob, node, "cdns,is-decoded-cs");
>  	plat->fifo_depth = fdtdec_get_uint(blob, node, "cdns,fifo-depth", 128);
>  	plat->fifo_width = fdtdec_get_uint(blob, node, "cdns,fifo-width", 4);
>
Jagan Teki June 1, 2018, 5:02 p.m. UTC | #4
On Mon, May 7, 2018 at 3:12 PM, Ley Foon Tan <ley.foon.tan@intel.com> wrote:
> Change to use devfdt_get_addr_index() function to get fdt address.
>
> Original code has compilation warning below:
>
> drivers/spi/cadence_qspi.c: In function ‘cadence_spi_ofdata_to_platdata’:
> drivers/spi/cadence_qspi.c:297:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   plat->regbase = (void *)data[0];
>                   ^
> drivers/spi/cadence_qspi.c:298:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>   plat->ahbbase = (void *)data[2];
>                   ^
> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
> ---

Reviewed-by: Jagan Teki <jagan@openedev.com>

Applied to u-boot-spi/master
diff mbox series

Patch

diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
index 7b312f8..f80d073 100644
--- a/drivers/spi/cadence_qspi.c
+++ b/drivers/spi/cadence_qspi.c
@@ -284,18 +284,9 @@  static int cadence_spi_ofdata_to_platdata(struct udevice *bus)
 	const void *blob = gd->fdt_blob;
 	int node = dev_of_offset(bus);
 	int subnode;
-	u32 data[4];
-	int ret;
 
-	/* 2 base addresses are needed, lets get them from the DT */
-	ret = fdtdec_get_int_array(blob, node, "reg", data, ARRAY_SIZE(data));
-	if (ret) {
-		printf("Error: Can't get base addresses (ret=%d)!\n", ret);
-		return -ENODEV;
-	}
-
-	plat->regbase = (void *)data[0];
-	plat->ahbbase = (void *)data[2];
+	plat->regbase = (void *)devfdt_get_addr_index(bus, 0);
+	plat->ahbbase = (void *)devfdt_get_addr_index(bus, 1);
 	plat->is_decoded_cs = fdtdec_get_bool(blob, node, "cdns,is-decoded-cs");
 	plat->fifo_depth = fdtdec_get_uint(blob, node, "cdns,fifo-depth", 128);
 	plat->fifo_width = fdtdec_get_uint(blob, node, "cdns,fifo-width", 4);