mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-30 01:53:48 +01:00 
			
		
		
		
	dm: core: Add dev_get_addr_ptr() to return a pointer to the reg address
On some platforms (e.g. x86), the return value of dev_get_addr() can't be assigned to a pointer type variable directly. As there might be a difference between the size of fdt_addr_t and the pointer type. On x86 for example, "fdt_addr_t" is 64bit but "void *" only 32bit. So assigning the register base directly in dev_get_addr() results in this compilation warning: warning: cast to pointer from integer of different size This patch introduces the new function dev_get_addr_ptr() that returns a pointer to the 'reg' address that can be used by drivers in this case. Signed-off-by: Stefan Roese <sr@denx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Heiko Schocher
						Heiko Schocher
					
				
			
			
				
	
			
			
			
						parent
						
							65341967ce
						
					
				
				
					commit
					28027521be
				
			| @@ -673,6 +673,11 @@ fdt_addr_t dev_get_addr(struct udevice *dev) | |||||||
| 	return dev_get_addr_index(dev, 0); | 	return dev_get_addr_index(dev, 0); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void *dev_get_addr_ptr(struct udevice *dev) | ||||||
|  | { | ||||||
|  | 	return (void *)(uintptr_t)dev_get_addr_index(dev, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
| bool device_has_children(struct udevice *dev) | bool device_has_children(struct udevice *dev) | ||||||
| { | { | ||||||
| 	return !list_empty(&dev->child_head); | 	return !list_empty(&dev->child_head); | ||||||
|   | |||||||
| @@ -453,6 +453,16 @@ int device_find_next_child(struct udevice **devp); | |||||||
|  */ |  */ | ||||||
| fdt_addr_t dev_get_addr(struct udevice *dev); | 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_get_addr_index() - Get the indexed reg property of a device |  * dev_get_addr_index() - Get the indexed reg property of a device | ||||||
|  * |  * | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user