dm: Support address translation for simple-bus
The 'ranges' property can be used to specify a translation from the system address to the bus address. Add support for this using the dev_get_addr() function, which devices should use to find their address. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -139,6 +139,18 @@ void device_free(struct udevice *dev);
|
||||
static inline void device_free(struct udevice *dev) {}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* simple_bus_translate() - translate a bus address to a system address
|
||||
*
|
||||
* This handles the 'ranges' property in a simple bus. It translates the
|
||||
* device address @addr to a system address using this property.
|
||||
*
|
||||
* @dev: Simple bus device (parent of target device)
|
||||
* @addr: Address to translate
|
||||
* @return new address
|
||||
*/
|
||||
fdt_addr_t simple_bus_translate(struct udevice *dev, fdt_addr_t addr);
|
||||
|
||||
/* Cast away any volatile pointer */
|
||||
#define DM_ROOT_NON_CONST (((gd_t *)gd)->dm_root)
|
||||
#define DM_UCLASS_ROOT_NON_CONST (((gd_t *)gd)->uclass_root)
|
||||
|
||||
Reference in New Issue
Block a user