162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/i2c/google,cros-ec-i2c-tunnel.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: I2C bus that tunnels through the ChromeOS EC (cros-ec)
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Doug Anderson <dianders@chromium.org>
1262306a36Sopenharmony_ci  - Benson Leung <bleung@chromium.org>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cidescription: |
1562306a36Sopenharmony_ci  On some ChromeOS board designs we've got a connection to the EC
1662306a36Sopenharmony_ci  (embedded controller) but no direct connection to some devices on the
1762306a36Sopenharmony_ci  other side of the EC (like a battery and PMIC).  To get access to
1862306a36Sopenharmony_ci  those devices we need to tunnel our i2c commands through the EC.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  The node for this device should be under a cros-ec node like
2162306a36Sopenharmony_ci  google,cros-ec-spi or google,cros-ec-i2c.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciallOf:
2462306a36Sopenharmony_ci  - $ref: i2c-controller.yaml#
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciproperties:
2762306a36Sopenharmony_ci  compatible:
2862306a36Sopenharmony_ci    const: google,cros-ec-i2c-tunnel
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  google,remote-bus:
3162306a36Sopenharmony_ci    description: The EC bus we'd like to talk to.
3262306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cirequired:
3562306a36Sopenharmony_ci  - compatible
3662306a36Sopenharmony_ci  - google,remote-bus
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciunevaluatedProperties: false
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciexamples:
4162306a36Sopenharmony_ci  - |
4262306a36Sopenharmony_ci    spi {
4362306a36Sopenharmony_ci        #address-cells = <1>;
4462306a36Sopenharmony_ci        #size-cells = <0>;
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci        cros-ec@0 {
4762306a36Sopenharmony_ci            compatible = "google,cros-ec-spi";
4862306a36Sopenharmony_ci            reg = <0>;
4962306a36Sopenharmony_ci            spi-max-frequency = <5000000>;
5062306a36Sopenharmony_ci            interrupts = <99 0>;
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci            i2c-tunnel {
5362306a36Sopenharmony_ci                compatible = "google,cros-ec-i2c-tunnel";
5462306a36Sopenharmony_ci                #address-cells = <1>;
5562306a36Sopenharmony_ci                #size-cells = <0>;
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci                google,remote-bus = <0>;
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci                battery: sbs-battery@b {
6062306a36Sopenharmony_ci                    compatible = "sbs,sbs-battery";
6162306a36Sopenharmony_ci                    reg = <0xb>;
6262306a36Sopenharmony_ci                    sbs,poll-retry-count = <1>;
6362306a36Sopenharmony_ci                };
6462306a36Sopenharmony_ci            };
6562306a36Sopenharmony_ci        };
6662306a36Sopenharmony_ci    };
67