Commit 48a0c73f authored by Jacopo Mondi's avatar Jacopo Mondi Committed by Mauro Carvalho Chehab
Browse files

media: dt-bindings: media: max9286: Define 'maxim,gpio-poc'



Define a new vendor property in the maxim,max9286 binding schema.

The new property allows to declare that the remote camera
power-over-coax is controlled by one of the MAX9286 gpio lines.

As it is currently not possible to establish a regulator as consumer
of the MAX9286 gpio controller for this purpose, the property allows to
declare that the camera power is controlled by the MAX9286 directly.

The property accepts a gpio-index (0 or 1) and one line polarity
flag as defined by dt-bindings/gpio/gpio.h.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarJacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent 882ded92
Loading
Loading
Loading
Loading
+66 −1
Original line number Diff line number Diff line
@@ -70,6 +70,28 @@ properties:
      a remote serializer whose high-threshold noise immunity is not enabled
      is 100000 micro volts

  maxim,gpio-poc:
    $ref: '/schemas/types.yaml#/definitions/uint32-array'
    minItems: 2
    maxItems: 2
    description: |
      Index of the MAX9286 gpio output line (0 or 1) that controls Power over
      Coax to the cameras and its associated polarity flag.

      The property accepts an array of two unsigned integers, the first being
      the gpio line index (0 or 1) and the second being the gpio line polarity
      flag (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW) as defined in
      <include/dt-bindings/gpio/gpio.h>.

      When the remote cameras power is controlled by one of the MAX9286 gpio
      lines, this property has to be used to specify which line among the two
      available ones controls the remote camera power enablement.

      When this property is used it is not possible to register a gpio
      controller as the gpio lines are controlled directly by the MAX9286 and
      not available for consumers, nor the 'poc-supply' property should be
      specified.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

@@ -165,7 +187,16 @@ required:
  - reg
  - ports
  - i2c-mux
  - gpio-controller

# If 'maxim,gpio-poc' is present, then 'poc-supply' and 'gpio-controller'
# are not allowed.
if:
  required:
    - maxim,gpio-poc
then:
  properties:
    poc-supply: false
    gpio-controller: false

additionalProperties: false

@@ -310,4 +341,38 @@ examples:
                };
            };
        };

        /*
        * Example of a deserializer that controls the camera Power over Coax
        * through one of its gpio lines.
        */
        gmsl-deserializer@6c {
            compatible = "maxim,max9286";
            reg = <0x6c>;
            enable-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;

            /*
            * The remote camera power is controlled by MAX9286 GPIO line #0.
            * No 'poc-supply' nor 'gpio-controller' are specified.
            */
            maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>;

            /*
            * Do not describe connections as they're the same as in the previous
            * example.
            */
            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@4 {
                    reg = <4>;
                };
            };

            i2c-mux {
                #address-cells = <1>;
                #size-cells = <0>;
            };
        };
    };