Commit 84184107 authored by Thierry Reding's avatar Thierry Reding Committed by Rob Herring
Browse files

dt-bindings: i2c: tegra-bpmp: Convert to json-schema



Convert the NVIDIA Tegra186 (and later) BPMP I2C bindings from the
free-form text format to json-schema.

Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20211208143306.534700-1-thierry.reding@gmail.com


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent de3f6daa
Loading
Loading
Loading
Loading
+0 −42
Original line number Diff line number Diff line
NVIDIA Tegra186 BPMP I2C controller

In Tegra186, the BPMP (Boot and Power Management Processor) owns certain HW
devices, such as the I2C controller for the power management I2C bus. Software
running on other CPUs must perform IPC to the BPMP in order to execute
transactions on that I2C bus. This binding describes an I2C bus that is
accessed in such a fashion.

The BPMP I2C node must be located directly inside the main BPMP node. See
../firmware/nvidia,tegra186-bpmp.txt for details of the BPMP binding.

This node represents an I2C controller. See ../i2c/i2c.txt for details of the
core I2C binding.

Required properties:
- compatible:
    Array of strings.
    One of:
    - "nvidia,tegra186-bpmp-i2c".
- #address-cells: Address cells for I2C device address.
    Single-cell integer.
    Must be <1>.
- #size-cells:
    Single-cell integer.
    Must be <0>.
- nvidia,bpmp-bus-id:
    Single-cell integer.
    Indicates the I2C bus number this DT node represent, as defined by the
    BPMP firmware.

Example:

bpmp {
	...

	i2c {
		compatible = "nvidia,tegra186-bpmp-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		nvidia,bpmp-bus-id = <5>;
	};
};
+45 −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/nvidia,tegra186-bpmp-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra186 (and later) BPMP I2C controller

maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Jon Hunter <jonathanh@nvidia.com>

description: |
  In Tegra186 and later, the BPMP (Boot and Power Management Processor)
  owns certain HW devices, such as the I2C controller for the power
  management I2C bus. Software running on other CPUs must perform IPC to
  the BPMP in order to execute transactions on that I2C bus. This
  binding describes an I2C bus that is accessed in such a fashion.

  The BPMP I2C node must be located directly inside the main BPMP node.
  See ../firmware/nvidia,tegra186-bpmp.yaml for details of the BPMP
  binding.

  This node represents an I2C controller. See ../i2c/i2c.txt for details
  of the core I2C binding.

properties:
  compatible:
    const: nvidia,tegra186-bpmp-i2c

  nvidia,bpmp-bus-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Indicates the I2C bus number this DT node represents,
      as defined by the BPMP firmware.

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

unevaluatedProperties: false

required:
  - compatible
  - "#address-cells"
  - "#size-cells"
  - nvidia,bpmp-bus-id