mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | |
| %YAML 1.2
 | |
| ---
 | |
| $id: http://devicetree.org/schemas/access-controllers/access-controllers.yaml#
 | |
| $schema: http://devicetree.org/meta-schemas/core.yaml#
 | |
| 
 | |
| title: Generic Domain Access Controllers
 | |
| 
 | |
| maintainers:
 | |
|   - Oleksii Moisieiev <oleksii_moisieiev@epam.com>
 | |
| 
 | |
| description: |+
 | |
|   Common access controllers properties
 | |
| 
 | |
|   Access controllers are in charge of stating which of the hardware blocks under
 | |
|   their responsibility (their domain) can be accesssed by which compartment. A
 | |
|   compartment can be a cluster of CPUs (or coprocessors), a range of addresses
 | |
|   or a group of hardware blocks. An access controller's domain is the set of
 | |
|   resources covered by the access controller.
 | |
| 
 | |
|   This device tree binding can be used to bind devices to their access
 | |
|   controller provided by access-controllers property. In this case, the device
 | |
|   is a consumer and the access controller is the provider.
 | |
| 
 | |
|   An access controller can be represented by any node in the device tree and
 | |
|   can provide one or more configuration parameters, needed to control parameters
 | |
|   of the consumer device. A consumer node can refer to the provider by phandle
 | |
|   and a set of phandle arguments, specified by '#access-controller-cells'
 | |
|   property in the access controller node.
 | |
| 
 | |
|   Access controllers are typically used to set/read the permissions of a
 | |
|   hardware block and grant access to it. Any of which depends on the access
 | |
|   controller. The capabilities of each access controller are defined by the
 | |
|   binding of the access controller device.
 | |
| 
 | |
|   Each node can be a consumer for the several access controllers.
 | |
| 
 | |
| # always select the core schema
 | |
| select: true
 | |
| 
 | |
| properties:
 | |
|   "#access-controller-cells":
 | |
|     description:
 | |
|       Number of cells in an access-controllers specifier;
 | |
|       Can be any value as specified by device tree binding documentation
 | |
|       of a particular provider. The node is an access controller.
 | |
| 
 | |
|   access-controller-names:
 | |
|     $ref: /schemas/types.yaml#/definitions/string-array
 | |
|     description:
 | |
|       A list of access-controllers names, sorted in the same order as
 | |
|       access-controllers entries. Consumer drivers will use
 | |
|       access-controller-names to match with existing access-controllers entries.
 | |
| 
 | |
|   access-controllers:
 | |
|     $ref: /schemas/types.yaml#/definitions/phandle-array
 | |
|     description:
 | |
|       A list of access controller specifiers, as defined by the
 | |
|       bindings of the access-controllers provider.
 | |
| 
 | |
| additionalProperties: true
 | |
| 
 | |
| examples:
 | |
|   - |
 | |
|     clock_controller: access-controllers@50000 {
 | |
|         reg = <0x50000 0x400>;
 | |
|         #access-controller-cells = <2>;
 | |
|     };
 | |
| 
 | |
|     bus_controller: bus@60000 {
 | |
|         reg = <0x60000 0x10000>;
 | |
|         #address-cells = <1>;
 | |
|         #size-cells = <1>;
 | |
|         ranges;
 | |
|         #access-controller-cells = <3>;
 | |
| 
 | |
|         uart4: serial@60100 {
 | |
|             reg = <0x60100 0x400>;
 | |
|             clocks = <&clk_serial>;
 | |
|             access-controllers = <&clock_controller 1 2>,
 | |
|                                  <&bus_controller 1 3 5>;
 | |
|             access-controller-names = "clock", "bus";
 | |
|         };
 | |
|     };
 |