core: ofnode: Add ofnode_get_addr_size_index
Add ofnode_get_addr_size_index function to fetch the address and size of the reg space based on index. Signed-off-by: Keerthy <j-keerthy@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
							parent
							
								
									3a9a62a18e
								
							
						
					
					
						commit
						e679d03b08
					
				|  | @ -251,7 +251,7 @@ int ofnode_read_size(ofnode node, const char *propname) | |||
| 	return -EINVAL; | ||||
| } | ||||
| 
 | ||||
| fdt_addr_t ofnode_get_addr_index(ofnode node, int index) | ||||
| fdt_addr_t ofnode_get_addr_size_index(ofnode node, int index, fdt_size_t *size) | ||||
| { | ||||
| 	int na, ns; | ||||
| 
 | ||||
|  | @ -260,7 +260,7 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index) | |||
| 		uint flags; | ||||
| 
 | ||||
| 		prop_val = of_get_address(ofnode_to_np(node), index, | ||||
| 					  NULL, &flags); | ||||
| 					  (u64 *)size, &flags); | ||||
| 		if (!prop_val) | ||||
| 			return FDT_ADDR_T_NONE; | ||||
| 
 | ||||
|  | @ -277,12 +277,19 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index) | |||
| 		ns = ofnode_read_simple_size_cells(ofnode_get_parent(node)); | ||||
| 		return fdtdec_get_addr_size_fixed(gd->fdt_blob, | ||||
| 						  ofnode_to_offset(node), "reg", | ||||
| 						  index, na, ns, NULL, true); | ||||
| 						  index, na, ns, size, true); | ||||
| 	} | ||||
| 
 | ||||
| 	return FDT_ADDR_T_NONE; | ||||
| } | ||||
| 
 | ||||
| fdt_addr_t ofnode_get_addr_index(ofnode node, int index) | ||||
| { | ||||
| 	fdt_size_t size; | ||||
| 
 | ||||
| 	return ofnode_get_addr_size_index(node, index, &size); | ||||
| } | ||||
| 
 | ||||
| fdt_addr_t ofnode_get_addr(ofnode node) | ||||
| { | ||||
| 	return ofnode_get_addr_index(node, 0); | ||||
|  |  | |||
|  | @ -354,6 +354,20 @@ ofnode ofnode_get_by_phandle(uint phandle); | |||
|  */ | ||||
| int ofnode_read_size(ofnode node, const char *propname); | ||||
| 
 | ||||
| /**
 | ||||
|  * ofnode_get_addr_size_index() - get an address/size from a node | ||||
|  *				  based on index | ||||
|  * | ||||
|  * This reads the register address/size from a node based on index | ||||
|  * | ||||
|  * @node: node to read from | ||||
|  * @index: Index of address to read (0 for first) | ||||
|  * @size: Pointer to size of the address | ||||
|  * @return address, or FDT_ADDR_T_NONE if not present or invalid | ||||
|  */ | ||||
| phys_addr_t ofnode_get_addr_size_index(ofnode node, int index, | ||||
| 				       fdt_size_t *size); | ||||
| 
 | ||||
| /**
 | ||||
|  * ofnode_get_addr_index() - get an address from a node | ||||
|  * | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue