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; | 	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; | 	int na, ns; | ||||||
| 
 | 
 | ||||||
|  | @ -260,7 +260,7 @@ fdt_addr_t ofnode_get_addr_index(ofnode node, int index) | ||||||
| 		uint flags; | 		uint flags; | ||||||
| 
 | 
 | ||||||
| 		prop_val = of_get_address(ofnode_to_np(node), index, | 		prop_val = of_get_address(ofnode_to_np(node), index, | ||||||
| 					  NULL, &flags); | 					  (u64 *)size, &flags); | ||||||
| 		if (!prop_val) | 		if (!prop_val) | ||||||
| 			return FDT_ADDR_T_NONE; | 			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)); | 		ns = ofnode_read_simple_size_cells(ofnode_get_parent(node)); | ||||||
| 		return fdtdec_get_addr_size_fixed(gd->fdt_blob, | 		return fdtdec_get_addr_size_fixed(gd->fdt_blob, | ||||||
| 						  ofnode_to_offset(node), "reg", | 						  ofnode_to_offset(node), "reg", | ||||||
| 						  index, na, ns, NULL, true); | 						  index, na, ns, size, true); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return FDT_ADDR_T_NONE; | 	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) | fdt_addr_t ofnode_get_addr(ofnode node) | ||||||
| { | { | ||||||
| 	return ofnode_get_addr_index(node, 0); | 	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); | 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 |  * ofnode_get_addr_index() - get an address from a node | ||||||
|  * |  * | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue