Re: [PATCH 24/28] dt-bindings: media: Convert marvell,mmp2-ccic to json-schema

From: Lubomir Rintel
Date: Sun May 17 2020 - 15:21:18 EST


On Fri, Mar 27, 2020 at 01:46:37PM -0600, Rob Herring wrote:
> On Tue, Mar 17, 2020 at 10:39:18AM +0100, Lubomir Rintel wrote:
> > Convert the marvell,mmp2-ccic binding to DT schema format using
> > json-schema.
> >
> > Signed-off-by: Lubomir Rintel <lkundrak@xxxxx>
> > ---
> > .../bindings/media/marvell,mmp2-ccic.txt | 50 ---------
> > .../bindings/media/marvell,mmp2-ccic.yaml | 102 ++++++++++++++++++
> > 2 files changed, 102 insertions(+), 50 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/media/marvell,mmp2-ccic.txt
> > create mode 100644 Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.txt b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.txt
> > deleted file mode 100644
> > index 7ec2c8c8a3b98..0000000000000
> > --- a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.txt
> > +++ /dev/null
> > @@ -1,50 +0,0 @@
> > -Marvell MMP2 camera host interface
> > -
> > -Required properties:
> > - - compatible: Should be "marvell,mmp2-ccic".
> > - - reg: Register base and size.
> > - - interrupts: The interrupt number.
> > - - #clock-cells: Must be 0.
> > -
> > -Optional properties:
> > - - clocks: Reference to the input clock as specified by
> > - Documentation/devicetree/bindings/clock/clock-bindings.txt.
> > - - clock-names: Names of the clocks used; "axi" for the AXI bus interface,
> > - "func" for the peripheral clock and "phy" for the parallel
> > - video bus interface.
> > - - clock-output-names: Optional clock source for sensors. Shall be "mclk".
> > -
> > -Required subnodes:
> > - - port: The parallel bus interface port with a single endpoint linked to
> > - the sensor's endpoint as described in
> > - Documentation/devicetree/bindings/media/video-interfaces.txt.
> > -
> > -Required endpoint properties:
> > - - bus-type: data bus type, <5> or <6> for Parallel or Bt.656 respectively
> > - - pclk-sample: pixel clock polarity
> > - - hsync-active: horizontal synchronization polarity (only required for
> > - parallel bus)
> > - - vsync-active: vertical synchronization polarity (only required for
> > - parallel bus)
> > -
> > -Example:
> > -
> > - camera0: camera@d420a000 {
> > - compatible = "marvell,mmp2-ccic";
> > - reg = <0xd420a000 0x800>;
> > - interrupts = <42>;
> > - clocks = <&soc_clocks MMP2_CLK_CCIC0>;
> > - clock-names = "axi";
> > - #clock-cells = <0>;
> > - clock-output-names = "mclk";
> > -
> > - port {
> > - camera0_0: endpoint {
> > - remote-endpoint = <&ov7670_0>;
> > - bus-type = <5>; /* Parallel */
> > - hsync-active = <1>; /* Active high */
> > - vsync-active = <1>; /* Active high */
> > - pclk-sample = <0>; /* Falling */
> > - };
> > - };
> > - };
> > diff --git a/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml
> > new file mode 100644
> > index 0000000000000..890a3f9d0302f
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/marvell,mmp2-ccic.yaml
> > @@ -0,0 +1,102 @@
> > +# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
>
> GPL-2.0-only please. Dual license only if you have rights on the old
> file to do so.

I do. I wrote the original binding file.

> > +# Copyright 2019,2020 Lubomir Rintel <lkundrak@xxxxx>
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/marvell,mmp2-ccic.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Marvell MMP2 camera host interface bindings
> > +
> > +maintainers:
> > + - Lubomir Rintel <lkundrak@xxxxx>
> > +
> > +properties:
> > + $nodename:
> > + pattern: '^camera@[a-f0-9]+$'
> > +
> > + compatible:
> > + const: marvell,mmp2-ccic
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + interrupts:
> > + maxItems: 1
> > +
> > + port:
> > + type: object
> > + additionalProperties: false
> > +
> > + properties:
> > + endpoint:
>
> Wrong indentaion.
>
> > + type: object
> > + additionalProperties: false
> > +
> > + # Properties described in
> > + # Documentation/devicetree/bindings/media/video-interfaces.txt
> > + properties:
> > + remote-endpoint: true
> > + hsync-active: true
> > + vsync-active: true
> > + pclk-sample: true
> > + bus-type: true
> > +
> > + required:
> > + - remote-endpoint
> > +
> > + required:
> > + - endpoint
> > +
> > + clocks:
> > + minItems: 1
> > + maxItems: 3
>
> Shouldn't really be variable for a single compatible.
>
> > + items:
> > + - description: AXI bus interface clock
> > + - description: Peripheral clock
> > + - description: Parallel video bus interface clock
> > +
> > + clock-names:
> > + minItems: 1
> > + maxItems: 3
> > + items:
> > + - const: axi
> > + - const: func
> > + - const: phy
> > +
> > + '#clock-cells':
> > + const: 0
> > +
> > + clock-output-names:
> > + const: mclk
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - interrupts
> > + - port
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/clock/marvell,mmp2.h>
> > +
> > + camera@d420a000 {
> > + compatible = "marvell,mmp2-ccic";
> > + reg = <0xd420a000 0x800>;
> > + interrupts = <42>;
> > + clocks = <&soc_clocks MMP2_CLK_CCIC0>;
> > + clock-names = "axi";
> > + #clock-cells = <0>;
> > + clock-output-names = "mclk";
> > +
> > + port {
> > + camera0_0: endpoint {
> > + remote-endpoint = <&ov7670_0>;
> > + bus-type = <5>; /* Parallel */
> > + hsync-active = <1>; /* Active high */
> > + vsync-active = <1>; /* Active high */
> > + pclk-sample = <0>; /* Falling */
> > + };
> > + };
> > + };
> > +
> > +...
> > --
> > 2.25.1
> >