93 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | |
| %YAML 1.2
 | |
| ---
 | |
| $id: http://devicetree.org/schemas/net/mctp-i2c-controller.yaml#
 | |
| $schema: http://devicetree.org/meta-schemas/core.yaml#
 | |
| 
 | |
| title: MCTP I2C transport
 | |
| 
 | |
| maintainers:
 | |
|   - Matt Johnston <matt@codeconstruct.com.au>
 | |
| 
 | |
| description: |
 | |
|   An mctp-i2c-controller defines a local MCTP endpoint on an I2C controller.
 | |
|   MCTP I2C is specified by DMTF DSP0237.
 | |
| 
 | |
|   An mctp-i2c-controller must be attached to an I2C adapter which supports
 | |
|   slave functionality. I2C busses (either directly or as subordinate mux
 | |
|   busses) are attached to the mctp-i2c-controller with a 'mctp-controller'
 | |
|   property on each used bus. Each mctp-controller I2C bus will be presented
 | |
|   to the host system as a separate MCTP I2C instance.  
 | |
| 
 | |
| properties:
 | |
|   compatible:
 | |
|     const: mctp-i2c-controller
 | |
| 
 | |
|   reg:
 | |
|     minimum: 0x40000000
 | |
|     maximum: 0x4000007f
 | |
|     description: |
 | |
|       7 bit I2C address of the local endpoint.
 | |
|       I2C_OWN_SLAVE_ADDRESS (1<<30) flag must be set.      
 | |
| 
 | |
| additionalProperties: false
 | |
| 
 | |
| required:
 | |
|   - compatible
 | |
|   - reg
 | |
| 
 | |
| examples:
 | |
|   - |
 | |
|     // Basic case of a single I2C bus
 | |
|     #include <dt-bindings/i2c/i2c.h>
 | |
| 
 | |
|     i2c {
 | |
|       #address-cells = <1>;
 | |
|       #size-cells = <0>;
 | |
|       mctp-controller;
 | |
| 
 | |
|       mctp@30 {
 | |
|         compatible = "mctp-i2c-controller";
 | |
|         reg = <(0x30 | I2C_OWN_SLAVE_ADDRESS)>;
 | |
|       };
 | |
|     };    
 | |
| 
 | |
|   - |
 | |
|     // Mux topology with multiple MCTP-handling busses under
 | |
|     // a single mctp-i2c-controller.
 | |
|     // i2c1 and i2c6 can have MCTP devices, i2c5 does not.
 | |
|     #include <dt-bindings/i2c/i2c.h>
 | |
| 
 | |
|     i2c1: i2c {
 | |
|       #address-cells = <1>;
 | |
|       #size-cells = <0>;
 | |
|       mctp-controller;
 | |
| 
 | |
|       mctp@50 {
 | |
|         compatible = "mctp-i2c-controller";
 | |
|         reg = <(0x50 | I2C_OWN_SLAVE_ADDRESS)>;
 | |
|       };
 | |
|     };
 | |
| 
 | |
|     i2c-mux {
 | |
|       #address-cells = <1>;
 | |
|       #size-cells = <0>;
 | |
|       i2c-parent = <&i2c1>;
 | |
| 
 | |
|       i2c5: i2c@0 {
 | |
|         #address-cells = <1>;
 | |
|         #size-cells = <0>;
 | |
|         reg = <0>;
 | |
|         eeprom@33 {
 | |
|           reg = <0x33>;
 | |
|         };
 | |
|       };
 | |
| 
 | |
|       i2c6: i2c@1 {
 | |
|         #address-cells = <1>;
 | |
|         #size-cells = <0>;
 | |
|         reg = <1>;
 | |
|         mctp-controller;
 | |
|       };
 | |
|     };    
 |