Commit 1acd4577 authored by Ricardo Cañuelo's avatar Ricardo Cañuelo Committed by Rob Herring
Browse files

dt-bindings: i2c: convert i2c-cros-ec-tunnel to json-schema



Convert the google,cros-ec-i2c-tunnel binding to YAML and add it as a
property of google,cros-ec.yaml.

Reviewed-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: default avatarRicardo Cañuelo <ricardo.canuelo@collabora.com>
Link: https://lore.kernel.org/r/20201021114308.25485-2-ricardo.canuelo@collabora.com


[robh: add ref to i2c-controller.yaml]
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent ca05f333
Loading
Loading
Loading
Loading
+66 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---

$id: http://devicetree.org/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: I2C bus that tunnels through the ChromeOS EC (cros-ec)

maintainers:
  - Doug Anderson <dianders@chromium.org>
  - Benson Leung <bleung@chromium.org>
  - Enric Balletbo i Serra <enric.balletbo@collabora.com>

description: |
  On some ChromeOS board designs we've got a connection to the EC
  (embedded controller) but no direct connection to some devices on the
  other side of the EC (like a battery and PMIC).  To get access to
  those devices we need to tunnel our i2c commands through the EC.

  The node for this device should be under a cros-ec node like
  google,cros-ec-spi or google,cros-ec-i2c.

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

properties:
  compatible:
    const: google,cros-ec-i2c-tunnel

  google,remote-bus:
    description: The EC bus we'd like to talk to.
    $ref: /schemas/types.yaml#/definitions/uint32

required:
  - compatible
  - google,remote-bus

unevaluatedProperties: false

examples:
  - |
    spi0 {
        #address-cells = <1>;
        #size-cells = <0>;

        cros-ec@0 {
            compatible = "google,cros-ec-spi";
            reg = <0>;
            spi-max-frequency = <5000000>;

            i2c-tunnel {
                compatible = "google,cros-ec-i2c-tunnel";
                #address-cells = <1>;
                #size-cells = <0>;

                google,remote-bus = <0>;

                battery: sbs-battery@b {
                    compatible = "sbs,sbs-battery";
                    reg = <0xb>;
                    sbs,poll-retry-count = <1>;
                };
            };
        };
    };
+0 −39
Original line number Diff line number Diff line
I2C bus that tunnels through the ChromeOS EC (cros-ec)
======================================================
On some ChromeOS board designs we've got a connection to the EC (embedded
controller) but no direct connection to some devices on the other side of
the EC (like a battery and PMIC).  To get access to those devices we need
to tunnel our i2c commands through the EC.

The node for this device should be under a cros-ec node like google,cros-ec-spi
or google,cros-ec-i2c.


Required properties:
- compatible: google,cros-ec-i2c-tunnel
- google,remote-bus: The EC bus we'd like to talk to.

Optional child nodes:
- One node per I2C device connected to the tunnelled I2C bus.


Example:
	cros-ec@0 {
		compatible = "google,cros-ec-spi";

		...

		i2c-tunnel {
			compatible = "google,cros-ec-i2c-tunnel";
			#address-cells = <1>;
			#size-cells = <0>;

			google,remote-bus = <0>;

			battery: sbs-battery@b {
				compatible = "sbs,sbs-battery";
				reg = <0xb>;
				sbs,poll-retry-count = <1>;
			};
		};
	}
+5 −0
Original line number Diff line number Diff line
@@ -71,6 +71,11 @@ properties:
  wakeup-source:
    description: Button can wake-up the system.

patternProperties:
  "^i2c-tunnel[0-9]*$":
    type: object
    $ref: "/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#"

required:
  - compatible