Commit 12666f4a authored by Niklas Söderlund's avatar Niklas Söderlund Committed by Rob Herring
Browse files

dt-bindings: adv7180: Convert bindings to json-schema



Convert ADV7180 analog video decoder documentation to json-schema.

As the examples in the bindings can be tested add another example to
test the more advance adv7180cp binding description.

Signed-off-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://lore.kernel.org/r/20200704160644.3040636-2-niklas.soderlund+renesas@ragnatech.se


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 2a8eeea7
Loading
Loading
Loading
Loading
+0 −49
Original line number Diff line number Diff line
* Analog Devices ADV7180 analog video decoder family

The adv7180 family devices are used to capture analog video to different
digital interfaces like MIPI CSI-2 or parallel video.

Required Properties :
- compatible : value must be one of
		"adi,adv7180"
		"adi,adv7180cp"
		"adi,adv7180st"
		"adi,adv7182"
		"adi,adv7280"
		"adi,adv7280-m"
		"adi,adv7281"
		"adi,adv7281-m"
		"adi,adv7281-ma"
		"adi,adv7282"
		"adi,adv7282-m"

Device nodes of "adi,adv7180cp" and "adi,adv7180st" must contain one
'port' child node per device input and output port, in accordance with the
video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt. The port
nodes are numbered as follows.

  Port		adv7180cp	adv7180st
-------------------------------------------------------------------
  Input		0-2		0-5
  Output	3		6

The digital output port node must contain at least one endpoint.

Optional Properties :
- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
  if any.


Example:

	i2c0@1c22000 {
		...
		...
		adv7180@21 {
			compatible = "adi,adv7180";
			reg = <0x21>;
		};
		...
	};
+184 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/adv7180.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices ADV7180 analog video decoder family

maintainers:
  - Lars-Peter Clausen <lars@metafoo.de>

description:
  The adv7180 family devices are used to capture analog video to different
  digital interfaces like MIPI CSI-2 or parallel video.

properties:
  compatible:
    items:
      - enum:
        - adi,adv7180
        - adi,adv7180cp
        - adi,adv7180st
        - adi,adv7182
        - adi,adv7280
        - adi,adv7280-m
        - adi,adv7281
        - adi,adv7281-m
        - adi,adv7281-ma
        - adi,adv7282
        - adi,adv7282-m

  reg:
    maxItems: 1

  powerdown-gpios:
    maxItems: 1

  port:
    type: object
    description:
      A node containing a single endpoint as doucmented in
      Documentation/devicetree/bindings/media/video-interfaces.txt

  ports:
    type: object
    description:
      A node containing input and output port nodes with endpoint definitions
      as documented in
      Documentation/devicetree/bindings/media/video-interfaces.txt

additionalProperties: false

required:
  - compatible
  - reg

allOf:
  - if:
      properties:
        compatible:
          items:
            - enum:
              - adi,adv7180
              - adi,adv7182
              - adi,adv7280
              - adi,adv7280-m
              - adi,adv7281
              - adi,adv7281-m
              - adi,adv7281-ma
              - adi,adv7282
              - adi,adv7282-m
    then:
      required:
        - port

  - if:
      properties:
        compatible:
          contains:
            const: adi,adv7180cp
    then:
      properties:
        ports:
          properties:
            '#address-cells':
              const: 1
            '#size-cells':
              const: 0
            port@3:
              type: object
              description: Output port

          patternProperties:
            "^port@[0-2]$":
              type: object
              description: Input port

          required:
            - port@3

          additionalProperties: false

      required:
        - ports

  - if:
      properties:
        compatible:
          contains:
            const: adi,adv7180st
    then:
      properties:
        ports:
          properties:
            '#address-cells':
              const: 1
            '#size-cells':
              const: 0
            port@6:
              type: object
              description: Output port

          patternProperties:
            "^port@[0-5]$":
              type: object
              description: Input port

          required:
            - port@6

          additionalProperties: false

      required:
        - ports

examples:
  - |
    i2c {
            #address-cells = <1>;
            #size-cells = <0>;

            composite-in@20 {
                    compatible = "adi,adv7180";
                    reg = <0x20>;

                    port {
                            adv7180: endpoint {
                                    bus-width = <8>;
                                    remote-endpoint = <&vin1ep>;
                            };
                    };
            };

    };

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

            composite-in@20 {
                    compatible = "adi,adv7180cp";
                    reg = <0x20>;

                    ports {
                            #address-cells = <1>;
                            #size-cells = <0>;

                            port@0 {
                                    reg = <0>;
                                    adv7180_in: endpoint {
                                            remote-endpoint = <&composite_con_in>;
                                    };
                            };

                            port@3 {
                                    reg = <3>;
                                    adv7180_out: endpoint {
                                            remote-endpoint = <&vin4_in>;
                                    };
                            };
                    };
            };
    };