summaryrefslogtreecommitdiff
path: root/lib/utils/gpio
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2021-08-05 10:41:13 +0300
committerAnup Patel <anup@brainfault.org>2021-08-07 14:56:51 +0300
commit47a47654e8d3997b059d11bb8845ed0037e88c8e (patch)
tree39b7eaadcadaa19e40f59f58fd1704dcad366395 /lib/utils/gpio
parentd244f3dbd6cfd241dc1db611c0325daedfcab9c6 (diff)
downloadopensbi-47a47654e8d3997b059d11bb8845ed0037e88c8e.tar.xz
lib: utils/fdt: Change addr and size to uint64_t
The maximum address and size encoded in DT are 64-bit numbers, so we should use uint64_t for 'addr' and 'size' in fdt_get_node_addr_size(). Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'lib/utils/gpio')
-rw-r--r--lib/utils/gpio/fdt_gpio_sifive.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/utils/gpio/fdt_gpio_sifive.c b/lib/utils/gpio/fdt_gpio_sifive.c
index abc9d72..00d3e14 100644
--- a/lib/utils/gpio/fdt_gpio_sifive.c
+++ b/lib/utils/gpio/fdt_gpio_sifive.c
@@ -71,15 +71,17 @@ static int sifive_gpio_init(void *fdt, int nodeoff, u32 phandle,
{
int rc;
struct sifive_gpio_chip *chip;
+ uint64_t addr;
if (SIFIVE_GPIO_CHIP_MAX <= sifive_gpio_chip_count)
return SBI_ENOSPC;
chip = &sifive_gpio_chip_array[sifive_gpio_chip_count];
- rc = fdt_get_node_addr_size(fdt, nodeoff, &chip->addr, NULL);
+ rc = fdt_get_node_addr_size(fdt, nodeoff, &addr, NULL);
if (rc)
return rc;
+ chip->addr = addr;
chip->chip.driver = &fdt_gpio_sifive;
chip->chip.id = phandle;
chip->chip.ngpio = SIFIVE_GPIO_PINS_DEF;