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

@ -112,6 +112,18 @@ int dev_read_size(struct udevice *dev, const char *propname);
*/
fdt_addr_t dev_read_addr_index(struct udevice *dev, int index);
/**
* dev_remap_addr_index() - Get the indexed reg property of a device
* as a memory-mapped I/O pointer
*
* @dev: Device to read from
* @index: the 'reg' property can hold a list of <addr, size> pairs
* and @index is used to select which one is required
*
* @return pointer or NULL if not found
*/
void *dev_remap_addr_index(struct udevice *dev, int index);
/**
* dev_read_addr() - Get the reg property of a device
*
@ -131,6 +143,16 @@ fdt_addr_t dev_read_addr(struct udevice *dev);
*/
void *dev_read_addr_ptr(struct udevice *dev);
/**
* dev_remap_addr() - Get the reg property of a device as a
* memory-mapped I/O pointer
*
* @dev: Device to read from
*
* @return pointer or NULL if not found
*/
void *dev_remap_addr(struct udevice *dev);
/**
* dev_read_addr_size() - get address and size from a device property
*
@ -482,6 +504,16 @@ static inline void *dev_read_addr_ptr(struct udevice *dev)
return devfdt_get_addr_ptr(dev);
}
static inline void *dev_remap_addr(struct udevice *dev)
{
return devfdt_remap_addr(dev);
}
static inline void *dev_remap_addr_index(struct udevice *dev, int index)
{
return devfdt_remap_addr_index(dev, index);
}
static inline fdt_addr_t dev_read_addr_size(struct udevice *dev,
const char *propname,
fdt_size_t *sizep)