Commit 579f8983 authored by Khalil Blaiech's avatar Khalil Blaiech Committed by Wolfram Sang
Browse files

dt-bindings: i2c: mellanox,i2c-mlxbf: convert txt to YAML schema



Write the devicetree binding text file associated with
the Mellanox BlueField I2C controller in schema file,
JSON compatible subset of YAML. Besides, add an entry
within MAINTAINERS file.

Signed-off-by: default avatarKhalil Blaiech <kblaiech@nvidia.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent 9c7cae24
Loading
Loading
Loading
Loading
+0 −42
Original line number Diff line number Diff line
Device tree configuration for the Mellanox I2C SMBus on BlueField SoCs

Required Properties:

- compatible : should be "mellanox,i2c-mlxbf1" or "mellanox,i2c-mlxbf2".

- reg : address offset and length of the device registers. The
	registers consist of the following set of resources:
		1) Smbus block registers.
		2) Cause master registers.
		3) Cause slave registers.
		4) Cause coalesce registers (if compatible isn't set
		   to "mellanox,i2c-mlxbf1").

- interrupts : interrupt number.

Optional Properties:

- clock-frequency : bus frequency used to configure timing registers;
			allowed values are 100000, 400000 and 1000000;
			those are expressed in Hz. Default is 100000.

Example:

i2c@2804000 {
	compatible = "mellanox,i2c-mlxbf1";
	reg =	<0x02804000 0x800>,
		<0x02801200 0x020>,
		<0x02801260 0x020>;
	interrupts = <57>;
	clock-frequency = <100000>;
};

i2c@2808800 {
	compatible = "mellanox,i2c-mlxbf2";
	reg =	<0x02808800 0x600>,
	        <0x02808e00 0x020>,
		<0x02808e20 0x020>,
		<0x02808e40 0x010>;
	interrupts = <57>;
	clock-frequency = <400000>;
};
+78 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/mellanox,i2c-mlxbf.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Mellanox I2C SMBus on BlueField SoCs

maintainers:
  - Khalil Blaiech <kblaiech@nvidia.com>

allOf:
  - $ref: /schemas/i2c/i2c-controller.yaml#

properties:
  compatible:
    enum:
      - mellanox,i2c-mlxbf1
      - mellanox,i2c-mlxbf2

  reg:
    minItems: 3
    maxItems: 4
    items:
      - description: Smbus block registers
      - description: Cause master registers
      - description: Cause slave registers
      - description: Cause coalesce registers

  interrupts:
    maxItems: 1

  clock-frequency:
    enum: [ 100000, 400000, 1000000 ]
    description:
      bus frequency used to configure timing registers;
      The frequency is expressed in Hz. Default is 100000.

required:
  - compatible
  - reg
  - interrupts

unevaluatedProperties: false

if:
  properties:
    compatible:
      contains:
        enum:
          - mellanox,i2c-mlxbf1

then:
  properties:
    reg:
      maxItems: 3

examples:
  - |
    i2c@2804000 {
        compatible = "mellanox,i2c-mlxbf1";
        reg = <0x02804000 0x800>,
              <0x02801200 0x020>,
              <0x02801260 0x020>;
        interrupts = <57>;
        clock-frequency = <100000>;
    };

  - |
    i2c@2808800 {
        compatible = "mellanox,i2c-mlxbf2";
        reg = <0x02808800 0x600>,
              <0x02808e00 0x020>,
              <0x02808e20 0x020>,
              <0x02808e40 0x010>;
        interrupts = <57>;
        clock-frequency = <400000>;
    };
+1 −0
Original line number Diff line number Diff line
@@ -11166,6 +11166,7 @@ MELLANOX BLUEFIELD I2C DRIVER
M:	Khalil Blaiech <kblaiech@mellanox.com>
L:	linux-i2c@vger.kernel.org
S:	Supported
F:	Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
F:	drivers/i2c/busses/i2c-mlxbf.c
MELLANOX ETHERNET DRIVER (mlx4_en)