fdt: Add new fdt_create_phandle helper
Add a helper function that will return a phandle value for the given node. If the node doesn't have a phandle already one will be created. Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Acked-by: Gerald Van Baren <vanbaren@cideas.com>
This commit is contained in:
		
							parent
							
								
									f117c0f073
								
							
						
					
					
						commit
						10aeabd186
					
				|  | @ -1235,6 +1235,26 @@ int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle) | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /*
 | ||||||
|  |  * fdt_create_phandle: Create a phandle property for the given node | ||||||
|  |  * | ||||||
|  |  * @fdt: ptr to device tree | ||||||
|  |  * @nodeoffset: node to update | ||||||
|  |  */ | ||||||
|  | int fdt_create_phandle(void *fdt, int nodeoffset) | ||||||
|  | { | ||||||
|  | 	/* see if there is a phandle already */ | ||||||
|  | 	int phandle = fdt_get_phandle(fdt, nodeoffset); | ||||||
|  | 
 | ||||||
|  | 	/* if we got 0, means no phandle so create one */ | ||||||
|  | 	if (phandle == 0) { | ||||||
|  | 		phandle = fdt_alloc_phandle(fdt); | ||||||
|  | 		fdt_set_phandle(fdt, nodeoffset, phandle); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return phandle; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #if defined(CONFIG_VIDEO) | #if defined(CONFIG_VIDEO) | ||||||
| int fdt_add_edid(void *blob, const char *compat, unsigned char *edid_buf) | int fdt_add_edid(void *blob, const char *compat, unsigned char *edid_buf) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -90,6 +90,7 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat, | ||||||
| 					phys_addr_t compat_off); | 					phys_addr_t compat_off); | ||||||
| int fdt_alloc_phandle(void *blob); | int fdt_alloc_phandle(void *blob); | ||||||
| int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle); | int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle); | ||||||
|  | int fdt_create_phandle(void *fdt, int nodeoffset); | ||||||
| int fdt_add_edid(void *blob, const char *compat, unsigned char *buf); | int fdt_add_edid(void *blob, const char *compat, unsigned char *buf); | ||||||
| 
 | 
 | ||||||
| int fdt_verify_alias_address(void *fdt, int anode, const char *alias, | int fdt_verify_alias_address(void *fdt, int anode, const char *alias, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue