[PATCH v3 9/9] i2c-mlxbf.c: Update binding devicetree

Asmaa Mnebhi
2022-09-08T17:36:43Z

In the latest version of the i2c-mlxbf.c driver, the "Smbus block"
resource was broken down to 3 separate resources "Smbus timer",
"Smbus master" and "Smbus slave" to accommodate for BlueField-3
SoC registers' changes.

Reviewed-by: Khalil Blaiech <kblaiech@nvidia.com>
Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com>
---
.../bindings/i2c/mellanox,i2c-mlxbf.yaml | 49 ++++++++++++++-----
1 file changed, 37 insertions(+), 12 deletions(-)

diff --git a/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
index 93198d5d43a6..12dbe7e7967e 100644
--- a/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
+++ b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
@@ -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,14 +18,19 @@ properties:
enum:
- mellanox,i2c-mlxbf1
- mellanox,i2c-mlxbf2
+ - mellanox,i2c-mlxbf3

reg:
minItems: 3
+ maxItems: 6
items:
- description: Smbus block registers
- 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 +41,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 +55,6 @@ required:

unevaluatedProperties: false

-if:
- properties:
- compatible:
- contains:
- enum:
- - mellanox,i2c-mlxbf1
-
-then:
- properties:
- reg:
- maxItems: 3
-
examples:
- |
i2c@2804000 {
@@ -61,8 +62,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 +78,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>;
};
--
2.30.1