Documentation / devicetree / bindings / media / i2c / st,st-mipid02.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/st,st-mipid02.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics MIPID02 CSI-2 to PARALLEL bridge

maintainers:
  - Benjamin Mugnier <benjamin.mugnier@foss.st.com>
  - Sylvain Petinot <sylvain.petinot@foss.st.com>

description:
  MIPID02 has two CSI-2 input ports, only one of those ports can be
  active at a time. Active port input stream will be de-serialized
  and its content outputted through PARALLEL output port.
  CSI-2 first input port is a dual lane 800Mbps per lane whereas CSI-2
  second input port is a single lane 800Mbps. Both ports support clock
  and data lane polarity swap. First port also supports data lane swap.
  PARALLEL output port has a maximum width of 12 bits.
  Supported formats are RAW6, RAW7, RAW8, RAW10, RAW12, RGB565, RGB888,
  RGB444, YUV420 8-bit, YUV422 8-bit and YUV420 10-bit.

properties:
  compatible:
    const: st,st-mipid02

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: xclk

  VDDE-supply:
    description:
      Sensor digital IO supply. Must be 1.8 volts.

  VDDIN-supply:
    description:
      Sensor internal regulator supply. Must be 1.8 volts.

  reset-gpios:
    description:
      Reference to the GPIO connected to the xsdn pin, if any.
      This is an active low signal to the mipid02.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: CSI-2 first input port
        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                description:
                  Single-lane operation shall be <1> or <2> .
                  Dual-lane operation shall be <1 2> or <2 1> .
                minItems: 1
                maxItems: 2

              lane-polarities:
                description:
                  Any lane can be inverted or not.
                minItems: 1
                maxItems: 2

            required:
              - data-lanes

      port@1:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: CSI-2 second input port
        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                description:
                  Single-lane operation shall be <1> or <2> .
                maxItems: 1

              lane-polarities:
                description:
                  Any lane can be inverted or not.
                maxItems: 1

            required:
              - data-lanes

      port@2:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: Output port
        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              bus-width:
                enum: [6, 7, 8, 10, 12]

            required:
              - bus-width

    anyOf:
      - required:
          - port@0
      - required:
          - port@1

    required:
      - port@2

additionalProperties: false

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - VDDE-supply
  - VDDIN-supply
  - ports

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        mipid02: csi2rx@14 {
            compatible = "st,st-mipid02";
            reg = <0x14>;
            clocks = <&clk_ext_camera_12>;
            clock-names = "xclk";
            VDDE-supply = <&vdd>;
            VDDIN-supply = <&vdd>;
            ports {
                #address-cells = <1>;
                #size-cells = <0>;
                port@0 {
                    reg = <0>;
 
                    ep0: endpoint {
                        data-lanes = <1 2>;
                        remote-endpoint = <&mipi_csi2_in>;
                    };
                };
                port@2 {
                    reg = <2>;
 
                    ep2: endpoint {
                        bus-width = <8>;
                        hsync-active = <0>;
                        vsync-active = <0>;
                        remote-endpoint = <&parallel_out>;
                    };
                };
            };
        };
    };

...