Re: [RFT PATCH 5/5] dt-bindings: drm: bridge: adi,adv7511.txt: convert to yaml

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 01, 2020 at 10:32:27AM +0200, Ricardo Cañuelo wrote:
> Convert the ADV7511/11w/13/33/35 DT bindings to json-schema.
> 
> Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@xxxxxxxxxxxxx>
> ---
>  .../bindings/display/bridge/adi,adv7511.txt   | 143 ---------
>  .../bindings/display/bridge/adi,adv7511.yaml  | 293 ++++++++++++++++++
>  2 files changed, 293 insertions(+), 143 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/display/bridge/adi,adv7511.txt
>  create mode 100644 Documentation/devicetree/bindings/display/bridge/adi,adv7511.yaml


> diff --git a/Documentation/devicetree/bindings/display/bridge/adi,adv7511.yaml b/Documentation/devicetree/bindings/display/bridge/adi,adv7511.yaml
> new file mode 100644
> index 000000000000..0654c3a35281
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/bridge/adi,adv7511.yaml
> @@ -0,0 +1,293 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/bridge/adi,adv7511.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices ADV7511(W)/13/33/35 HDMI Encoders
> +
> +maintainers:
> +  - Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> +
> +description: |
> +  The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and
> +  video transmitters compatible with HDMI 1.4 and DVI 1.0. They support
> +  color space conversion, S/PDIF, CEC and HDCP. ADV7533/5 supports the
> +  DSI interface for input pixels, while the others support RGB
> +  interface.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - adi,adv7511
> +      - adi,adv7511w
> +      - adi,adv7513
> +      - adi,adv7533
> +      - adi,adv7535
> +
> +  reg:
> +    description: |
> +      I2C slave addresses.
> +
> +      The ADV7511 internal registers are split into four pages exposed
> +      through different I2C addresses, creating four register maps. Each
> +      map has it own I2C address and acts as a standard slave device on
> +      the I2C bus. The main address is mandatory, others are optional
> +      and revert to defaults if not specified.
> +    minItems: 1
> +    maxItems: 4
> +
> +  clocks:
> +    description: Reference to the CEC clock.
> +    maxItems: 1
> +
> +  clock-names:
> +    const: cec
> +
> +  reg-names:
> +    description:
> +      Names of maps with programmable addresses. It can contain any map
> +      needing a non-default address.
> +    minItems: 1
> +    items:
> +      - const: main
> +      - const: edid
> +      - const: cec
> +      - const: packet
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  pd-gpios:
> +    description: GPIO connected to the power down signal.
> +    maxItems: 1
> +
> +  avdd-supply:
> +    description: A 1.8V supply that powers up the AVDD pin.
> +    maxItems: 1

Drop. Supplies are always a single item.

> +
> +  dvdd-supply:
> +    description: A 1.8V supply that powers up the DVDD pin.
> +    maxItems: 1
> +
> +  pvdd-supply:
> +    description: A 1.8V supply that powers up the PVDD pin.
> +    maxItems: 1
> +
> +  ports:
> +    description:
> +      The ADV7511 has two video ports and one audio port. This node
> +      models their connections as documented in
> +      Documentation/devicetree/bindings/media/video-interfaces.txt
> +      Documentation/devicetree/bindings/graph.txt
> +    type: object
> +    properties:
> +      port@0:
> +        description:
> +          Video port for the RGB, YUV or DSI input. In the case of
> +          ADV7533/5, the remote endpoint phandle should be a reference
> +          to a valid mipi_dsi_host_device.
> +        type: object
> +
> +      port@1:
> +        description: Video port for the HDMI output.
> +        type: object
> +
> +      port@2:
> +        description: Audio port for the HDMI output.
> +        type: object
> +
> +
> +allOf:
> +  # ADV7511/11w/13-specific parameters
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - adi,adv7511
> +              - adi,adv7511w
> +              - adi,adv7513
> +
> +    then:
> +      properties:
> +        dvdd-3v-supply:
> +          description: A 3.3V supply that powers up the DVDD_3V pin.
> +          maxItems: 1
> +
> +        bgvdd-supply:
> +          description: A 1.8V supply that powers up the BGVDD pin.
> +          maxItems: 1
> +
> +        adi,input-depth:
> +          description: Number of bits per color component at the input.
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/uint32
> +            - enum: [ 8, 10, 12 ]
> +
> +        adi,input-colorspace:
> +          description: Input color space.
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/string
> +            - enum: [ rgb, yuv422, yuv444 ]
> +
> +        adi,input-clock:
> +          description: |
> +            Input clock type.
> +              "1x": one clock cycle per pixel
> +              "2x": two clock cycles per pixel
> +              "dd": one clock cycle per pixel, data driven on both edges
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/string
> +            - enum: [ 1x, 2x, dd ]
> +
> +        adi,clock-delay:
> +          description:
> +            Video data clock delay relative to the pixel clock, in ps
> +            (-1200ps .. 1600 ps).
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/uint32
> +            - default: 0
> +
> +        adi,embedded-sync:
> +          description:
> +            The input uses synchronization signals embedded in the data
> +            stream (similar to BT.656). Defaults to 0 (separate H/V
> +            synchronization signals).
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/uint32
> +            - enum: [ 0, 1 ]
> +            - default: 0
> +
> +      required:
> +        - adi,input-depth
> +        - adi,input-colorspace
> +        - adi,input-clock
> +
> +  # adi,input-style and adi,input-justification are required except in
> +  # "rgb 1x" and "yuv444 1x" modes.
> +  - if:
> +      not:
> +        properties:
> +          adi,input-colorspace:
> +            contains:
> +              enum: [ rgb, yuv444 ]
> +          adi,input-clock:
> +            contains:
> +              const: 1x

I believe this will be true (before the not) if the properties are not 
present. You need 'required' if that's not what you want.

> +
> +    then:
> +      properties:
> +        adi,input-style:
> +          description:
> +            Input components arrangement variant as listed in the input
> +            format tables in the datasheet.
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/uint32
> +            - enum: [ 1, 2, 3 ]
> +
> +        adi,input-justification:
> +          description: Input bit justification.
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/string
> +            - enum: [ left, evenly, right ]
> +
> +      required:
> +        - adi,input-style
> +        - adi,input-justification
> +
> +  # ADV7533/35-specific parameters
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - adi,adv7533
> +              - adi,adv7535
> +
> +    then:
> +      properties:
> +        adi,disable-timing-generator:
> +          description:
> +            Disables the interal timing generator. The chip will rely on
> +            the sync signals in the DSI data lanes, rather than generate
> +            its own timings for HDMI output.
> +          type: boolean
> +
> +        adi,dsi-lanes:
> +          description: Number of DSI data lanes connected to the DSI host.
> +          allOf:
> +            - $ref: /schemas/types.yaml#/definitions/uint32
> +            - enum: [ 1, 2, 3, 4 ]
> +
> +        a2vdd-supply:
> +          description: A 1.8V supply that powers up the A2VDD pin.
> +          maxItems: 1
> +
> +        v3p3-supply:
> +          description: A 3.3V supply that powers up the V3P3 pin.
> +          maxItems: 1
> +
> +        v1p2-supply:
> +          description:
> +            A supply that powers up the V1P2 pin. It can be either 1.2V
> +            or 1.8V for ADV7533 but only 1.8V for ADV7535.
> +          maxItems: 1
> +
> +      required:
> +        - adi,dsi-lanes
> +
> +required:
> +  - compatible
> +  - reg
> +  - ports
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    adv7511w: hdmi@39 {
> +        compatible = "adi,adv7511w";
> +        /*
> +         * The EDID page will be accessible on address 0x66 on the I2C
> +         * bus. All other maps continue to use their default addresses.
> +         */
> +        reg = <0x39>, <0x66>;
> +        reg-names = "main", "edid";
> +        interrupt-parent = <&gpio3>;
> +        interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
> +        clocks = <&cec_clock>;
> +        clock-names = "cec";
> +
> +        adi,input-depth = <8>;
> +        adi,input-colorspace = "rgb";
> +        adi,input-clock = "1x";
> +
> +        ports {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +
> +            port@0 {
> +                reg = <0>;
> +                adv7511w_in: endpoint {
> +                    remote-endpoint = <&dpi_out>;
> +                };
> +            };
> +
> +            port@1 {
> +                reg = <1>;
> +                adv7511_out: endpoint {
> +                    remote-endpoint = <&hdmi_connector_in>;
> +                };
> +            };
> +
> +            port@2 {
> +                reg = <2>;
> +                codec_endpoint: endpoint {
> +                    remote-endpoint = <&i2s0_cpu_endpoint>;
> +                };
> +            };
> +        };
> +    };
> +
> +...
> -- 
> 2.18.0
> 



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux