mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-27 08:33:10 +01:00 
			
		
		
		
	of-platdata: improve documentation
Improve some things in the documentation of OF_PLATDATA that I found while porting socfgpa_gen5 to it. Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
				
					committed by
					
						 Simon Glass
						Simon Glass
					
				
			
			
				
	
			
			
			
						parent
						
							e5fc79ea71
						
					
				
				
					commit
					3600b46117
				
			| @@ -64,17 +64,24 @@ strictly necessary. Notable problems include: | |||||||
|         normally also supports device tree it must use #ifdef to separate |         normally also supports device tree it must use #ifdef to separate | ||||||
|         out this code, since the structures are only available in SPL. |         out this code, since the structures are only available in SPL. | ||||||
|  |  | ||||||
|  |    - Correct relations between nodes are not implemented. This means that | ||||||
|  |         parent/child relations (like bus device iteration) do not work yet. | ||||||
|  |         Some phandles (those that are recognised as such) are converted into | ||||||
|  |         a pointer to platform data. This pointer can potentially be used to | ||||||
|  |         access the referenced device (by searching for the pointer value). | ||||||
|  |         This feature is not yet implemented, however. | ||||||
|  |  | ||||||
|  |  | ||||||
| How it works | How it works | ||||||
| ------------ | ------------ | ||||||
|  |  | ||||||
| The feature is enabled by CONFIG SPL_OF_PLATDATA. This is only available | The feature is enabled by CONFIG OF_PLATDATA. This is only available in | ||||||
| in SPL and should be tested with: | SPL/TPL and should be tested with: | ||||||
|  |  | ||||||
|         #if CONFIG_IS_ENABLED(SPL_OF_PLATDATA) |         #if CONFIG_IS_ENABLED(OF_PLATDATA) | ||||||
|  |  | ||||||
| A new tool called 'dtoc' converts a device tree file either into a set of | A new tool called 'dtoc' converts a device tree file either into a set of | ||||||
| struct declarations, one for each compatible node, or a set of | struct declarations, one for each compatible node, and a set of | ||||||
| U_BOOT_DEVICE() declarations along with the actual platform data for each | U_BOOT_DEVICE() declarations along with the actual platform data for each | ||||||
| device. As an example, consider this MMC node: | device. As an example, consider this MMC node: | ||||||
|  |  | ||||||
| @@ -156,6 +163,13 @@ This avoids the code overhead of converting the device tree data to | |||||||
| platform data in the driver. The ofdata_to_platdata() method should | platform data in the driver. The ofdata_to_platdata() method should | ||||||
| therefore do nothing in such a driver. | therefore do nothing in such a driver. | ||||||
|  |  | ||||||
|  | Note that for the platform data to be matched with a driver, the 'name' | ||||||
|  | property of the U_BOOT_DEVICE() declaration has to match a driver declared | ||||||
|  | via U_BOOT_DRIVER(). This effectively means that a U_BOOT_DRIVER() with a | ||||||
|  | 'name' corresponding to the devicetree 'compatible' string (after converting | ||||||
|  | it to a valid name for C) is needed, so a dedicated driver is required for | ||||||
|  | each 'compatible' string. | ||||||
|  |  | ||||||
| Where a node has multiple compatible strings, a #define is used to make them | Where a node has multiple compatible strings, a #define is used to make them | ||||||
| equivalent, e.g.: | equivalent, e.g.: | ||||||
|  |  | ||||||
| @@ -165,8 +179,8 @@ equivalent, e.g.: | |||||||
| Converting of-platdata to a useful form | Converting of-platdata to a useful form | ||||||
| --------------------------------------- | --------------------------------------- | ||||||
|  |  | ||||||
| Of course it would be possible use the of-platdata directly in your driver | Of course it would be possible to use the of-platdata directly in your driver | ||||||
| whenever configuration information is required. However this meands that the | whenever configuration information is required. However this means that the | ||||||
| driver will not be able to support device tree, since the of-platdata | driver will not be able to support device tree, since the of-platdata | ||||||
| structure is not available when device tree is used. It would make no sense | structure is not available when device tree is used. It would make no sense | ||||||
| to use this structure if device tree were available, since the structure has | to use this structure if device tree were available, since the structure has | ||||||
| @@ -282,11 +296,6 @@ prevents them being used inadvertently. All usage must be bracketed with | |||||||
| The dt-platdata.c file contains the device declarations and is is built in | The dt-platdata.c file contains the device declarations and is is built in | ||||||
| spl/dt-platdata.c. | spl/dt-platdata.c. | ||||||
|  |  | ||||||
| Some phandles (thsoe that are recognised as such) are converted into |  | ||||||
| points to platform data. This pointer can potentially be used to access the |  | ||||||
| referenced device (by searching for the pointer value). This feature is not |  | ||||||
| yet implemented, however. |  | ||||||
|  |  | ||||||
| The beginnings of a libfdt Python module are provided. So far this only | The beginnings of a libfdt Python module are provided. So far this only | ||||||
| implements a subset of the features. | implements a subset of the features. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -265,8 +265,7 @@ config SPL_OF_PLATDATA | |||||||
|  |  | ||||||
| 	  This option works by generating C structure declarations for each | 	  This option works by generating C structure declarations for each | ||||||
| 	  compatible string, then adding platform data and U_BOOT_DEVICE | 	  compatible string, then adding platform data and U_BOOT_DEVICE | ||||||
| 	  declarations for each node. See README.platdata for more | 	  declarations for each node. See of-plat.txt for more information. | ||||||
| 	  information. |  | ||||||
|  |  | ||||||
| config TPL_OF_PLATDATA | config TPL_OF_PLATDATA | ||||||
| 	bool "Generate platform data for use in TPL" | 	bool "Generate platform data for use in TPL" | ||||||
| @@ -287,8 +286,7 @@ config TPL_OF_PLATDATA | |||||||
|  |  | ||||||
| 	  This option works by generating C structure declarations for each | 	  This option works by generating C structure declarations for each | ||||||
| 	  compatible string, then adding platform data and U_BOOT_DEVICE | 	  compatible string, then adding platform data and U_BOOT_DEVICE | ||||||
| 	  declarations for each node. See README.platdata for more | 	  declarations for each node. See of-plat.txt for more information. | ||||||
| 	  information. |  | ||||||
|  |  | ||||||
| endmenu | endmenu | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user