@@ -8,6 +8,7 @@ title: Mellanox I2C SMBus on BlueField SoCs
maintainers:
- Khalil Blaiech <kblaiech@nvidia.com>
+ - Asmaa Mnebhi <asmaa@nvidia.com>
allOf:
- $ref: /schemas/i2c/i2c-controller.yaml#
@@ -17,6 +18,7 @@ properties:
enum:
- mellanox,i2c-mlxbf1
- mellanox,i2c-mlxbf2
+ - mellanox,i2c-mlxbf3
reg:
minItems: 3
@@ -25,6 +27,9 @@ properties:
- description: Cause master registers
- description: Cause slave registers
- description: Cause coalesce registers
+ - description: Smbus timer registers
+ - description: Smbus master registers
+ - description: Smbus slave registers
interrupts:
maxItems: 1
@@ -35,6 +40,13 @@ properties:
bus frequency used to configure timing registers;
The frequency is expressed in Hz. Default is 100000.
+ resource_version:
+ enum: [ 0, 1 ]
+ description:
+ Version of the device tree. resource_version = 0 when the driver uses
+ Smbus block resource. resource_version = 1 when the driver uses Smbus
+ timer, Smbus master and Smbus slave resources.
+
required:
- compatible
- reg
@@ -42,18 +54,6 @@ required:
unevaluatedProperties: false
-if:
- properties:
- compatible:
- contains:
- enum:
- - mellanox,i2c-mlxbf1
-
-then:
- properties:
- reg:
- maxItems: 3
-
examples:
- |
i2c@2804000 {
@@ -61,8 +61,13 @@ examples:
reg = <0x02804000 0x800>,
<0x02801200 0x020>,
<0x02801260 0x020>;
+ <0x00000001 0x1>;
+ <0x02804000 0x40>,
+ <0x02804200 0x200>,
+ <0x02804400 0x200>,
interrupts = <57>;
clock-frequency = <100000>;
+ resource_version = <1>;
};
- |
@@ -72,6 +77,25 @@ examples:
<0x02808e00 0x020>,
<0x02808e20 0x020>,
<0x02808e40 0x010>;
+ <0x02808800 0x040>;
+ <0x02808a00 0x200>,
+ <0x02808c00 0x200>,
interrupts = <57>;
clock-frequency = <400000>;
+ resource_version = <1>;
+ };
+
+ - |
+ i2c@2808800 {
+ compatible = "mellanox,i2c-mlxbf3";
+ reg = <0x00000001 0x1>,
+ <0x13404400 0x020>,
+ <0x13404420 0x020>,
+ <0x13404440 0x010>;
+ <0x13404480 0x40>,
+ <0x13404200 0x200>,
+ <0x13404000 0x200>,
+ interrupts = <35>;
+ clock-frequency = <400000>;
+ resource_version = <1>;
};