cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

i2c-mux-pinctrl.yaml (3213B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/i2c/i2c-mux-pinctrl.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Pinctrl-based I2C Bus Mux
      8
      9maintainers:
     10  - Wolfram Sang <wsa@kernel.org>
     11
     12description: |
     13  This binding describes an I2C bus multiplexer that uses pin multiplexing to route the I2C
     14  signals, and represents the pin multiplexing configuration using the pinctrl device tree
     15  bindings.
     16
     17                                 +-----+  +-----+
     18                                 | dev |  | dev |
     19    +------------------------+   +-----+  +-----+
     20    | SoC                    |      |        |
     21    |                   /----|------+--------+
     22    |   +---+   +------+     | child bus A, on first set of pins
     23    |   |I2C|---|Pinmux|     |
     24    |   +---+   +------+     | child bus B, on second set of pins
     25    |                   \----|------+--------+--------+
     26    |                        |      |        |        |
     27    +------------------------+  +-----+  +-----+  +-----+
     28                                | dev |  | dev |  | dev |
     29                                +-----+  +-----+  +-----+
     30
     31  For each named state defined in the pinctrl-names property, an I2C child bus will be created.
     32  I2C child bus numbers are assigned based on the index into the pinctrl-names property.
     33
     34  The only exception is that no bus will be created for a state named "idle". If such a state is
     35  defined, it must be the last entry in pinctrl-names. For example:
     36
     37    pinctrl-names = "ddc", "pta", "idle"  ->  ddc = bus 0, pta = bus 1
     38    pinctrl-names = "ddc", "idle", "pta"  ->  Invalid ("idle" not last)
     39    pinctrl-names = "idle", "ddc", "pta"  ->  Invalid ("idle" not last)
     40
     41  Whenever an access is made to a device on a child bus, the relevant pinctrl state will be
     42  programmed into hardware.
     43
     44  If an idle state is defined, whenever an access is not being made to a device on a child bus,
     45  the idle pinctrl state will be programmed into hardware.
     46
     47  If an idle state is not defined, the most recently used pinctrl state will be left programmed
     48  into hardware whenever no access is being made of a device on a child bus.
     49
     50properties:
     51  compatible:
     52    const: i2c-mux-pinctrl
     53
     54  i2c-parent:
     55    $ref: /schemas/types.yaml#/definitions/phandle
     56    description: The phandle of the I2C bus that this multiplexer's master-side port is connected
     57      to.
     58
     59allOf:
     60  - $ref: i2c-mux.yaml
     61
     62unevaluatedProperties: false
     63
     64required:
     65  - compatible
     66  - i2c-parent
     67
     68examples:
     69  - |
     70    i2cmux {
     71      compatible = "i2c-mux-pinctrl";
     72      #address-cells = <1>;
     73      #size-cells = <0>;
     74
     75      i2c-parent = <&i2c1>;
     76
     77      pinctrl-names = "ddc", "pta", "idle";
     78      pinctrl-0 = <&state_i2cmux_ddc>;
     79      pinctrl-1 = <&state_i2cmux_pta>;
     80      pinctrl-2 = <&state_i2cmux_idle>;
     81
     82      i2c@0 {
     83        reg = <0>;
     84        #address-cells = <1>;
     85        #size-cells = <0>;
     86
     87        eeprom@50 {
     88          compatible = "atmel,24c02";
     89          reg = <0x50>;
     90        };
     91      };
     92
     93      i2c@1 {
     94        reg = <1>;
     95        #address-cells = <1>;
     96        #size-cells = <0>;
     97
     98        eeprom@50 {
     99          compatible = "atmel,24c02";
    100          reg = <0x50>;
    101        };
    102      };
    103    };