162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright (C) 2019 Renesas Electronics Corp.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/i2c/maxim,max9286.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Maxim Integrated Quad GMSL Deserializer
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Jacopo Mondi <jacopo+renesas@jmondi.org>
1262306a36Sopenharmony_ci  - Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
1362306a36Sopenharmony_ci  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
1462306a36Sopenharmony_ci  - Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cidescription: |
1762306a36Sopenharmony_ci  The MAX9286 deserializer receives video data on up to 4 Gigabit Multimedia
1862306a36Sopenharmony_ci  Serial Links (GMSL) and outputs them on a CSI-2 D-PHY port using up to 4 data
1962306a36Sopenharmony_ci  lanes.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci  In addition to video data, the GMSL links carry a bidirectional control
2262306a36Sopenharmony_ci  channel that encapsulates I2C messages. The MAX9286 forwards all I2C traffic
2362306a36Sopenharmony_ci  not addressed to itself to the other side of the links, where a GMSL
2462306a36Sopenharmony_ci  serializer will output it on a local I2C bus. In the other direction all I2C
2562306a36Sopenharmony_ci  traffic received over GMSL by the MAX9286 is output on the local I2C bus.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciproperties:
2862306a36Sopenharmony_ci  '#address-cells':
2962306a36Sopenharmony_ci    const: 1
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  '#size-cells':
3262306a36Sopenharmony_ci    const: 0
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  compatible:
3562306a36Sopenharmony_ci    const: maxim,max9286
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  reg:
3862306a36Sopenharmony_ci    description: I2C device address
3962306a36Sopenharmony_ci    maxItems: 1
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  poc-supply:
4262306a36Sopenharmony_ci    description: Regulator providing Power over Coax to all the ports
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  enable-gpios:
4562306a36Sopenharmony_ci    description: GPIO connected to the \#PWDN pin with inverted polarity
4662306a36Sopenharmony_ci    maxItems: 1
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci  gpio-controller: true
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  '#gpio-cells':
5162306a36Sopenharmony_ci    const: 2
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  maxim,bus-width:
5462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
5562306a36Sopenharmony_ci    enum: [ 24, 27, 32 ]
5662306a36Sopenharmony_ci    description: |
5762306a36Sopenharmony_ci      The GMSL serial data bus width. This setting is normally controlled by
5862306a36Sopenharmony_ci      the BWS pin, but may be overridden with this property. The value must
5962306a36Sopenharmony_ci      match the configuration of the remote serializers.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  maxim,i2c-remote-bus-hz:
6262306a36Sopenharmony_ci    enum: [ 8470, 28300, 84700, 105000, 173000, 339000, 533000, 837000 ]
6362306a36Sopenharmony_ci    default: 105000
6462306a36Sopenharmony_ci    description: |
6562306a36Sopenharmony_ci      The I2C clock frequency for the remote I2C buses. The value must match
6662306a36Sopenharmony_ci      the configuration of the remote serializers.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  maxim,reverse-channel-microvolt:
6962306a36Sopenharmony_ci    minimum: 30000
7062306a36Sopenharmony_ci    maximum: 200000
7162306a36Sopenharmony_ci    default: 170000
7262306a36Sopenharmony_ci    description: |
7362306a36Sopenharmony_ci      Initial amplitude of the reverse control channel, in micro volts.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci      The initial amplitude shall be adjusted to a value compatible with the
7662306a36Sopenharmony_ci      configuration of the connected remote serializer.
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci      Some camera modules (for example RDACM20) include an on-board MCU that
7962306a36Sopenharmony_ci      pre-programs the embedded serializer with power supply noise immunity
8062306a36Sopenharmony_ci      (high-threshold) enabled. A typical value of the deserializer's reverse
8162306a36Sopenharmony_ci      channel amplitude to communicate with pre-programmed serializers is
8262306a36Sopenharmony_ci      170000 micro volts.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci      A typical value for the reverse channel amplitude to communicate with
8562306a36Sopenharmony_ci      a remote serializer whose high-threshold noise immunity is not enabled
8662306a36Sopenharmony_ci      is 100000 micro volts
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci  maxim,gpio-poc:
8962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32-array
9062306a36Sopenharmony_ci    minItems: 2
9162306a36Sopenharmony_ci    maxItems: 2
9262306a36Sopenharmony_ci    description: |
9362306a36Sopenharmony_ci      Index of the MAX9286 gpio output line (0 or 1) that controls Power over
9462306a36Sopenharmony_ci      Coax to the cameras and its associated polarity flag.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci      The property accepts an array of two unsigned integers, the first being
9762306a36Sopenharmony_ci      the gpio line index (0 or 1) and the second being the gpio line polarity
9862306a36Sopenharmony_ci      flag (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW) as defined in
9962306a36Sopenharmony_ci      <include/dt-bindings/gpio/gpio.h>.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci      When the remote cameras power is controlled by one of the MAX9286 gpio
10262306a36Sopenharmony_ci      lines, this property has to be used to specify which line among the two
10362306a36Sopenharmony_ci      available ones controls the remote camera power enablement.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci      When this property is used it is not possible to register a gpio
10662306a36Sopenharmony_ci      controller as the gpio lines are controlled directly by the MAX9286 and
10762306a36Sopenharmony_ci      not available for consumers, nor the 'poc-supply' property should be
10862306a36Sopenharmony_ci      specified.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci  ports:
11162306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/properties/ports
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci    properties:
11462306a36Sopenharmony_ci      port@0:
11562306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
11662306a36Sopenharmony_ci        description: GMSL Input 0
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci      port@1:
11962306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
12062306a36Sopenharmony_ci        description: GMSL Input 1
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci      port@2:
12362306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
12462306a36Sopenharmony_ci        description: GMSL Input 2
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci      port@3:
12762306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
12862306a36Sopenharmony_ci        description: GMSL Input 3
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci      port@4:
13162306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/$defs/port-base
13262306a36Sopenharmony_ci        unevaluatedProperties: false
13362306a36Sopenharmony_ci        description: CSI-2 Output
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci        properties:
13662306a36Sopenharmony_ci          endpoint:
13762306a36Sopenharmony_ci            $ref: /schemas/media/video-interfaces.yaml#
13862306a36Sopenharmony_ci            unevaluatedProperties: false
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci            properties:
14162306a36Sopenharmony_ci              data-lanes: true
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci            required:
14462306a36Sopenharmony_ci              - data-lanes
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci    required:
14762306a36Sopenharmony_ci      - port@4
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci  i2c-mux:
15062306a36Sopenharmony_ci    type: object
15162306a36Sopenharmony_ci    $ref: /schemas/i2c/i2c-mux.yaml#
15262306a36Sopenharmony_ci    unevaluatedProperties: false
15362306a36Sopenharmony_ci    description: |
15462306a36Sopenharmony_ci      Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch.
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci    patternProperties:
15762306a36Sopenharmony_ci      "^i2c@[0-3]$":
15862306a36Sopenharmony_ci        type: object
15962306a36Sopenharmony_ci        additionalProperties: false
16062306a36Sopenharmony_ci        description: |
16162306a36Sopenharmony_ci          Child node of the i2c bus multiplexer which represents a GMSL link.
16262306a36Sopenharmony_ci          Each serializer device on the GMSL link remote end is represented with
16362306a36Sopenharmony_ci          an i2c-mux child node. The MAX9286 chip supports up to 4 GMSL
16462306a36Sopenharmony_ci          channels.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci        properties:
16762306a36Sopenharmony_ci          reg:
16862306a36Sopenharmony_ci            description: The index of the GMSL channel.
16962306a36Sopenharmony_ci            maxItems: 1
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci          '#address-cells':
17262306a36Sopenharmony_ci            const: 1
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci          '#size-cells':
17562306a36Sopenharmony_ci            const: 0
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci        patternProperties:
17862306a36Sopenharmony_ci          "^camera@[a-f0-9]+$":
17962306a36Sopenharmony_ci            type: object
18062306a36Sopenharmony_ci            description: |
18162306a36Sopenharmony_ci              The remote camera device, composed by a GMSL serializer and a
18262306a36Sopenharmony_ci              connected video source.
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci            properties:
18562306a36Sopenharmony_ci              compatible:
18662306a36Sopenharmony_ci                description: The remote device compatible string.
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci              reg:
18962306a36Sopenharmony_ci                minItems: 2
19062306a36Sopenharmony_ci                maxItems: 3
19162306a36Sopenharmony_ci                description: |
19262306a36Sopenharmony_ci                  The I2C addresses to be assigned to the remote devices through
19362306a36Sopenharmony_ci                  address reprogramming. The number of entries depends on the
19462306a36Sopenharmony_ci                  requirements of the currently connected remote device.
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci              port:
19762306a36Sopenharmony_ci                $ref: /schemas/graph.yaml#/properties/port
19862306a36Sopenharmony_ci                description: Connection to the MAX9286 sink.
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci            required:
20162306a36Sopenharmony_ci              - compatible
20262306a36Sopenharmony_ci              - reg
20362306a36Sopenharmony_ci              - port
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci            additionalProperties: false
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_cipatternProperties:
20862306a36Sopenharmony_ci  "^port[0-3]-poc-supply$":
20962306a36Sopenharmony_ci    description: Regulator providing Power over Coax for a particular port
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_cirequired:
21262306a36Sopenharmony_ci  - compatible
21362306a36Sopenharmony_ci  - reg
21462306a36Sopenharmony_ci  - ports
21562306a36Sopenharmony_ci  - i2c-mux
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ciallOf:
21862306a36Sopenharmony_ci  # Only one way of specifying power supplies is allowed: 'maxim,gpio-poc',
21962306a36Sopenharmony_ci  # 'poc-supply' or per-port poc-supply. Additionally, if 'maxim,gpio-poc' is
22062306a36Sopenharmony_ci  # present, then 'gpio-controller' isn't allowed.
22162306a36Sopenharmony_ci  - if:
22262306a36Sopenharmony_ci      required:
22362306a36Sopenharmony_ci        - maxim,gpio-poc
22462306a36Sopenharmony_ci    then:
22562306a36Sopenharmony_ci      properties:
22662306a36Sopenharmony_ci        poc-supply: false
22762306a36Sopenharmony_ci        gpio-controller: false
22862306a36Sopenharmony_ci      patternProperties:
22962306a36Sopenharmony_ci        "^port[0-3]-poc-supply$": false
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci  - if:
23262306a36Sopenharmony_ci      required:
23362306a36Sopenharmony_ci        - poc-supply
23462306a36Sopenharmony_ci    then:
23562306a36Sopenharmony_ci      patternProperties:
23662306a36Sopenharmony_ci        "^port[0-3]-poc-supply$": false
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_ciadditionalProperties: false
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ciexamples:
24162306a36Sopenharmony_ci  - |
24262306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci    i2c@e66d8000 {
24562306a36Sopenharmony_ci        #address-cells = <1>;
24662306a36Sopenharmony_ci        #size-cells = <0>;
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ci        reg = <0 0xe66d8000>;
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_ci        gmsl-deserializer@2c {
25162306a36Sopenharmony_ci            compatible = "maxim,max9286";
25262306a36Sopenharmony_ci            reg = <0x2c>;
25362306a36Sopenharmony_ci            poc-supply = <&camera_poc_12v>;
25462306a36Sopenharmony_ci            enable-gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ci            gpio-controller;
25762306a36Sopenharmony_ci            #gpio-cells = <2>;
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_ci            maxim,i2c-remote-bus-hz = <339000>;
26062306a36Sopenharmony_ci            maxim,reverse-channel-microvolt = <170000>;
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ci            ports {
26362306a36Sopenharmony_ci                #address-cells = <1>;
26462306a36Sopenharmony_ci                #size-cells = <0>;
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_ci                port@0 {
26762306a36Sopenharmony_ci                    reg = <0>;
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ci                    max9286_in0: endpoint {
27062306a36Sopenharmony_ci                        remote-endpoint = <&rdacm20_out0>;
27162306a36Sopenharmony_ci                    };
27262306a36Sopenharmony_ci                };
27362306a36Sopenharmony_ci
27462306a36Sopenharmony_ci                port@1 {
27562306a36Sopenharmony_ci                    reg = <1>;
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci                    max9286_in1: endpoint {
27862306a36Sopenharmony_ci                        remote-endpoint = <&rdacm20_out1>;
27962306a36Sopenharmony_ci                    };
28062306a36Sopenharmony_ci                };
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ci                port@2 {
28362306a36Sopenharmony_ci                    reg = <2>;
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci                    max9286_in2: endpoint {
28662306a36Sopenharmony_ci                        remote-endpoint = <&rdacm20_out2>;
28762306a36Sopenharmony_ci                    };
28862306a36Sopenharmony_ci                };
28962306a36Sopenharmony_ci
29062306a36Sopenharmony_ci                port@3 {
29162306a36Sopenharmony_ci                    reg = <3>;
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ci                    max9286_in3: endpoint {
29462306a36Sopenharmony_ci                        remote-endpoint = <&rdacm20_out3>;
29562306a36Sopenharmony_ci                    };
29662306a36Sopenharmony_ci                };
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci                port@4 {
29962306a36Sopenharmony_ci                    reg = <4>;
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ci                    max9286_out: endpoint {
30262306a36Sopenharmony_ci                        data-lanes = <1 2 3 4>;
30362306a36Sopenharmony_ci                        remote-endpoint = <&csi40_in>;
30462306a36Sopenharmony_ci                    };
30562306a36Sopenharmony_ci                };
30662306a36Sopenharmony_ci            };
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci            i2c-mux {
30962306a36Sopenharmony_ci                #address-cells = <1>;
31062306a36Sopenharmony_ci                #size-cells = <0>;
31162306a36Sopenharmony_ci
31262306a36Sopenharmony_ci                i2c@0 {
31362306a36Sopenharmony_ci                    #address-cells = <1>;
31462306a36Sopenharmony_ci                    #size-cells = <0>;
31562306a36Sopenharmony_ci                    reg = <0>;
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci                    camera@51 {
31862306a36Sopenharmony_ci                        compatible = "imi,rdacm20";
31962306a36Sopenharmony_ci                        reg = <0x51>, <0x61>;
32062306a36Sopenharmony_ci
32162306a36Sopenharmony_ci                        port {
32262306a36Sopenharmony_ci                            rdacm20_out0: endpoint {
32362306a36Sopenharmony_ci                                remote-endpoint = <&max9286_in0>;
32462306a36Sopenharmony_ci                            };
32562306a36Sopenharmony_ci                        };
32662306a36Sopenharmony_ci
32762306a36Sopenharmony_ci                    };
32862306a36Sopenharmony_ci                };
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci                i2c@1 {
33162306a36Sopenharmony_ci                    #address-cells = <1>;
33262306a36Sopenharmony_ci                    #size-cells = <0>;
33362306a36Sopenharmony_ci                    reg = <1>;
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ci                    camera@52 {
33662306a36Sopenharmony_ci                        compatible = "imi,rdacm20";
33762306a36Sopenharmony_ci                        reg = <0x52>, <0x62>;
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ci                        port {
34062306a36Sopenharmony_ci                            rdacm20_out1: endpoint {
34162306a36Sopenharmony_ci                                remote-endpoint = <&max9286_in1>;
34262306a36Sopenharmony_ci                            };
34362306a36Sopenharmony_ci                        };
34462306a36Sopenharmony_ci                    };
34562306a36Sopenharmony_ci                };
34662306a36Sopenharmony_ci
34762306a36Sopenharmony_ci                i2c@2 {
34862306a36Sopenharmony_ci                    #address-cells = <1>;
34962306a36Sopenharmony_ci                    #size-cells = <0>;
35062306a36Sopenharmony_ci                    reg = <2>;
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ci                    camera@53 {
35362306a36Sopenharmony_ci                        compatible = "imi,rdacm20";
35462306a36Sopenharmony_ci                        reg = <0x53>, <0x63>;
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci                        port {
35762306a36Sopenharmony_ci                            rdacm20_out2: endpoint {
35862306a36Sopenharmony_ci                                remote-endpoint = <&max9286_in2>;
35962306a36Sopenharmony_ci                            };
36062306a36Sopenharmony_ci                        };
36162306a36Sopenharmony_ci                    };
36262306a36Sopenharmony_ci                };
36362306a36Sopenharmony_ci
36462306a36Sopenharmony_ci                i2c@3 {
36562306a36Sopenharmony_ci                    #address-cells = <1>;
36662306a36Sopenharmony_ci                    #size-cells = <0>;
36762306a36Sopenharmony_ci                    reg = <3>;
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_ci                    camera@54 {
37062306a36Sopenharmony_ci                        compatible = "imi,rdacm20";
37162306a36Sopenharmony_ci                        reg = <0x54>, <0x64>;
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_ci                        port {
37462306a36Sopenharmony_ci                            rdacm20_out3: endpoint {
37562306a36Sopenharmony_ci                                remote-endpoint = <&max9286_in3>;
37662306a36Sopenharmony_ci                            };
37762306a36Sopenharmony_ci                        };
37862306a36Sopenharmony_ci                    };
37962306a36Sopenharmony_ci                };
38062306a36Sopenharmony_ci            };
38162306a36Sopenharmony_ci        };
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ci        /*
38462306a36Sopenharmony_ci        * Example of a deserializer that controls the camera Power over Coax
38562306a36Sopenharmony_ci        * through one of its gpio lines.
38662306a36Sopenharmony_ci        */
38762306a36Sopenharmony_ci        gmsl-deserializer@6c {
38862306a36Sopenharmony_ci            compatible = "maxim,max9286";
38962306a36Sopenharmony_ci            reg = <0x6c>;
39062306a36Sopenharmony_ci            enable-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
39162306a36Sopenharmony_ci
39262306a36Sopenharmony_ci            /*
39362306a36Sopenharmony_ci            * The remote camera power is controlled by MAX9286 GPIO line #0.
39462306a36Sopenharmony_ci            * No 'poc-supply' nor 'gpio-controller' are specified.
39562306a36Sopenharmony_ci            */
39662306a36Sopenharmony_ci            maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>;
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ci            /*
39962306a36Sopenharmony_ci            * Do not describe connections as they're the same as in the previous
40062306a36Sopenharmony_ci            * example.
40162306a36Sopenharmony_ci            */
40262306a36Sopenharmony_ci            ports {
40362306a36Sopenharmony_ci                #address-cells = <1>;
40462306a36Sopenharmony_ci                #size-cells = <0>;
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_ci                port@4 {
40762306a36Sopenharmony_ci                    reg = <4>;
40862306a36Sopenharmony_ci                };
40962306a36Sopenharmony_ci            };
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ci            i2c-mux {
41262306a36Sopenharmony_ci                #address-cells = <1>;
41362306a36Sopenharmony_ci                #size-cells = <0>;
41462306a36Sopenharmony_ci            };
41562306a36Sopenharmony_ci        };
41662306a36Sopenharmony_ci    };
417