diff options
Diffstat (limited to 'include/dm/device.h')
-rw-r--r-- | include/dm/device.h | 110 |
1 files changed, 12 insertions, 98 deletions
diff --git a/include/dm/device.h b/include/dm/device.h index df02e41df3..4866f7c002 100644 --- a/include/dm/device.h +++ b/include/dm/device.h @@ -11,6 +11,7 @@ #ifndef _DM_DEVICE_H #define _DM_DEVICE_H +#include <dm/ofnode.h> #include <dm/uclass-id.h> #include <fdtdec.h> #include <linker_lists.h> @@ -103,7 +104,7 @@ enum { * @platdata: Configuration data for this device * @parent_platdata: The parent bus's configuration data for this device * @uclass_platdata: The uclass's configuration data for this device - * @of_offset: Device tree node offset for this device (- for none) + * @node: Reference to device tree node for this device * @driver_data: Driver data word for the entry that matched this device with * its driver * @parent: Parent of this device, or NULL for the top level device @@ -129,7 +130,7 @@ struct udevice { void *platdata; void *parent_platdata; void *uclass_platdata; - int of_offset; + ofnode node; ulong driver_data; struct udevice *parent; void *priv; @@ -158,12 +159,17 @@ struct udevice { static inline int dev_of_offset(const struct udevice *dev) { - return dev->of_offset; + return ofnode_to_offset(dev->node); } static inline void dev_set_of_offset(struct udevice *dev, int of_offset) { - dev->of_offset = of_offset; + dev->node = offset_to_ofnode(of_offset); +} + +static inline bool dev_has_of_node(struct udevice *dev) +{ + return ofnode_valid(dev->node); } /** @@ -499,77 +505,6 @@ int device_find_first_child(struct udevice *parent, struct udevice **devp); int device_find_next_child(struct udevice **devp); /** - * dev_get_addr() - Get the reg property of a device - * - * @dev: Pointer to a device - * - * @return addr - */ -fdt_addr_t dev_get_addr(struct udevice *dev); - -/** - * dev_get_addr_ptr() - Return pointer to the address of the reg property - * of a device - * - * @dev: Pointer to a device - * - * @return Pointer to addr, or NULL if there is no such property - */ -void *dev_get_addr_ptr(struct udevice *dev); - -/** - * dev_map_physmem() - Read device address from reg property of the - * device node and map the address into CPU address - * space. - * - * @dev: Pointer to device - * @size: size of the memory to map - * - * @return mapped address, or NULL if the device does not have reg - * property. - */ -void *dev_map_physmem(struct udevice *dev, unsigned long size); - -/** - * dev_get_addr_index() - Get the indexed reg property of a device - * - * @dev: Pointer to a device - * @index: the 'reg' property can hold a list of <addr, size> pairs - * and @index is used to select which one is required - * - * @return addr - */ -fdt_addr_t dev_get_addr_index(struct udevice *dev, int index); - -/** - * dev_get_addr_size_index() - Get the indexed reg property of a device - * - * Returns the address and size specified in the 'reg' property of a device. - * - * @dev: Pointer to a device - * @index: the 'reg' property can hold a list of <addr, size> pairs - * and @index is used to select which one is required - * @size: Pointer to size varible - this function returns the size - * specified in the 'reg' property here - * - * @return addr - */ -fdt_addr_t dev_get_addr_size_index(struct udevice *dev, int index, - fdt_size_t *size); - -/** - * dev_get_addr_name() - Get the reg property of a device, indexed by name - * - * @dev: Pointer to a device - * @name: the 'reg' property can hold a list of <addr, size> pairs, with the - * 'reg-names' property providing named-based identification. @index - * indicates the value to search for in 'reg-names'. - * - * @return addr - */ -fdt_addr_t dev_get_addr_name(struct udevice *dev, const char *name); - -/** * device_has_children() - check if a device has any children * * @dev: Device to check @@ -628,7 +563,7 @@ int device_set_name(struct udevice *dev, const char *name); void device_set_name_alloced(struct udevice *dev); /** - * of_device_is_compatible() - check if the device is compatible with the compat + * device_is_compatible() - check if the device is compatible with the compat * * This allows to check whether the device is comaptible with the compat. * @@ -637,7 +572,7 @@ void device_set_name_alloced(struct udevice *dev); * device * @return true if OK, false if the compatible is not found */ -bool of_device_is_compatible(struct udevice *dev, const char *compat); +bool device_is_compatible(struct udevice *dev, const char *compat); /** * of_machine_is_compatible() - check if the machine is compatible with @@ -944,25 +879,4 @@ static inline void devm_kfree(struct udevice *dev, void *ptr) #endif /* ! CONFIG_DEVRES */ -/** - * dm_set_translation_offset() - Set translation offset - * @offs: Translation offset - * - * Some platforms need a special address translation. Those - * platforms (e.g. mvebu in SPL) can configure a translation - * offset in the DM by calling this function. It will be - * added to all addresses returned in dev_get_addr(). - */ -void dm_set_translation_offset(fdt_addr_t offs); - -/** - * dm_get_translation_offset() - Get translation offset - * - * This function returns the translation offset that can - * be configured by calling dm_set_translation_offset(). - * - * @return translation offset for the device address (0 as default). - */ -fdt_addr_t dm_get_translation_offset(void); - #endif |