mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-18 12:45:25 +00:00
gpio: uniphier: use devm_get_addr() to get base address
Currently, fdtdec_get_addr_size() does not support the address translation, so it cannot handle device trees with non-straight "ranges" properties. (This would be a problem with DTS for UniPhier ARMv8 SoCs.) Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
336399fb63
commit
bc82a1310f
1 changed files with 3 additions and 5 deletions
|
@ -9,6 +9,7 @@
|
||||||
#include <mapmem.h>
|
#include <mapmem.h>
|
||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/sizes.h>
|
||||||
#include <asm/errno.h>
|
#include <asm/errno.h>
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
|
|
||||||
|
@ -91,17 +92,14 @@ static int uniphier_gpio_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct uniphier_gpio_priv *priv = dev_get_priv(dev);
|
struct uniphier_gpio_priv *priv = dev_get_priv(dev);
|
||||||
struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
|
struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
fdt_addr_t addr;
|
fdt_addr_t addr;
|
||||||
fdt_size_t size;
|
|
||||||
unsigned int tmp;
|
unsigned int tmp;
|
||||||
|
|
||||||
addr = fdtdec_get_addr_size(gd->fdt_blob, dev->of_offset, "reg",
|
addr = dev_get_addr(dev);
|
||||||
&size);
|
|
||||||
if (addr == FDT_ADDR_T_NONE)
|
if (addr == FDT_ADDR_T_NONE)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
priv->base = map_sysmem(addr, size);
|
priv->base = map_sysmem(addr, SZ_8);
|
||||||
if (!priv->base)
|
if (!priv->base)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue