1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/mellanox,i2c-mlxbf.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mellanox I2C SMBus on BlueField SoCs
8
9maintainers:
10  - Khalil Blaiech <kblaiech@nvidia.com>
11
12allOf:
13  - $ref: /schemas/i2c/i2c-controller.yaml#
14
15properties:
16  compatible:
17    enum:
18      - mellanox,i2c-mlxbf1
19      - mellanox,i2c-mlxbf2
20
21  reg:
22    minItems: 3
23    items:
24      - description: Smbus block registers
25      - description: Cause master registers
26      - description: Cause slave registers
27      - description: Cause coalesce registers
28
29  interrupts:
30    maxItems: 1
31
32  clock-frequency:
33    enum: [ 100000, 400000, 1000000 ]
34    description:
35      bus frequency used to configure timing registers;
36      The frequency is expressed in Hz. Default is 100000.
37
38required:
39  - compatible
40  - reg
41  - interrupts
42
43unevaluatedProperties: false
44
45if:
46  properties:
47    compatible:
48      contains:
49        enum:
50          - mellanox,i2c-mlxbf1
51
52then:
53  properties:
54    reg:
55      maxItems: 3
56
57examples:
58  - |
59    i2c@2804000 {
60        compatible = "mellanox,i2c-mlxbf1";
61        reg = <0x02804000 0x800>,
62              <0x02801200 0x020>,
63              <0x02801260 0x020>;
64        interrupts = <57>;
65        clock-frequency = <100000>;
66    };
67
68  - |
69    i2c@2808800 {
70        compatible = "mellanox,i2c-mlxbf2";
71        reg = <0x02808800 0x600>,
72              <0x02808e00 0x020>,
73              <0x02808e20 0x020>,
74              <0x02808e40 0x010>;
75        interrupts = <57>;
76        clock-frequency = <400000>;
77    };
78