dm: core: add functions to get memory-mapped I/O addresses

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Álvaro Fernández Rojas
2018-04-29 21:56:54 +02:00
committed by Daniel Schwierzeck
parent c3c8638804
commit 30a90f56c3
5 changed files with 128 additions and 0 deletions

View File

@@ -4,6 +4,8 @@
* Written by Simon Glass <sjg@chromium.org>
*/
#include <asm/types.h>
#include <asm/io.h>
#include <common.h>
#include <dm.h>
#include <mapmem.h>
@@ -57,6 +59,16 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int index)
return devfdt_get_addr_index(dev, index);
}
void *dev_remap_addr_index(struct udevice *dev, int index)
{
fdt_addr_t addr = dev_read_addr_index(dev, index);
if (addr == FDT_ADDR_T_NONE)
return NULL;
return map_physmem(addr, 0, MAP_NOCACHE);
}
fdt_addr_t dev_read_addr(struct udevice *dev)
{
return dev_read_addr_index(dev, 0);
@@ -69,6 +81,11 @@ void *dev_read_addr_ptr(struct udevice *dev)
return (addr == FDT_ADDR_T_NONE) ? NULL : map_sysmem(addr, 0);
}
void *dev_remap_addr(struct udevice *dev)
{
return dev_remap_addr_index(dev, 0);
}
fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property,
fdt_size_t *sizep)
{