dm: core: parse chosen node
This is the node that would contain, for example, the framebuffer setup by an earlier stage. Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
		
							parent
							
								
									42091fa9e8
								
							
						
					
					
						commit
						f2006808f0
					
				|  | @ -478,6 +478,13 @@ | ||||||
| 	wdt0: wdt@0 { | 	wdt0: wdt@0 { | ||||||
| 		compatible = "sandbox,wdt"; | 		compatible = "sandbox,wdt"; | ||||||
| 	}; | 	}; | ||||||
|  | 
 | ||||||
|  | 	chosen { | ||||||
|  | 		chosen-test { | ||||||
|  | 			compatible = "denx,u-boot-fdt-test"; | ||||||
|  | 			reg = <9 1>; | ||||||
|  | 		}; | ||||||
|  | 	}; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #include "sandbox_pmic.dtsi" | #include "sandbox_pmic.dtsi" | ||||||
|  |  | ||||||
|  | @ -266,6 +266,17 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob, | ||||||
| 	for (offset = fdt_first_subnode(blob, offset); | 	for (offset = fdt_first_subnode(blob, offset); | ||||||
| 	     offset > 0; | 	     offset > 0; | ||||||
| 	     offset = fdt_next_subnode(blob, offset)) { | 	     offset = fdt_next_subnode(blob, offset)) { | ||||||
|  | 		/* "chosen" node isn't a device itself but may contain some: */ | ||||||
|  | 		if (!strcmp(fdt_get_name(blob, offset, NULL), "chosen")) { | ||||||
|  | 			pr_debug("parsing subnodes of \"chosen\"\n"); | ||||||
|  | 
 | ||||||
|  | 			err = dm_scan_fdt_node(parent, blob, offset, | ||||||
|  | 					       pre_reloc_only); | ||||||
|  | 			if (err && !ret) | ||||||
|  | 				ret = err; | ||||||
|  | 			continue; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		if (pre_reloc_only && | 		if (pre_reloc_only && | ||||||
| 		    !dm_fdt_pre_reloc(blob, offset)) | 		    !dm_fdt_pre_reloc(blob, offset)) | ||||||
| 			continue; | 			continue; | ||||||
|  |  | ||||||
|  | @ -105,7 +105,7 @@ UCLASS_DRIVER(testbus) = { | ||||||
| /* Test that we can probe for children */ | /* Test that we can probe for children */ | ||||||
| static int dm_test_bus_children(struct unit_test_state *uts) | static int dm_test_bus_children(struct unit_test_state *uts) | ||||||
| { | { | ||||||
| 	int num_devices = 6; | 	int num_devices = 7; | ||||||
| 	struct udevice *bus; | 	struct udevice *bus; | ||||||
| 	struct uclass *uc; | 	struct uclass *uc; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -167,7 +167,7 @@ int dm_check_devices(struct unit_test_state *uts, int num_devices) | ||||||
| /* Test that FDT-based binding works correctly */ | /* Test that FDT-based binding works correctly */ | ||||||
| static int dm_test_fdt(struct unit_test_state *uts) | static int dm_test_fdt(struct unit_test_state *uts) | ||||||
| { | { | ||||||
| 	const int num_devices = 6; | 	const int num_devices = 7; | ||||||
| 	struct udevice *dev; | 	struct udevice *dev; | ||||||
| 	struct uclass *uc; | 	struct uclass *uc; | ||||||
| 	int ret; | 	int ret; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue