RE: [PATCH v3 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema

2020-10-14 Thread Fabrizio Castro
Hi Geert,

Thank you for your feedback!

> From: Geert Uytterhoeven 
> Sent: 14 October 2020 14:40
> Subject: Re: [PATCH v3 2/5] media: dt-bindings: media: renesas,drif: Convert
> to json-schema
>
> Hi Fabrizio,
>
> On Tue, Oct 13, 2020 at 5:02 PM Fabrizio Castro
>  wrote:
> > Convert the Renesas DRIF bindings to DT schema and update
> > MAINTAINERS accordingly.
> >
> > Signed-off-by: Fabrizio Castro 
> > Reviewed-by: Lad Prabhakar  lad...@bp.renesas.com>
> > Reviewed-by: Laurent Pinchart 
> > ---
> > v2->3:
> > * Removed the definition of pinctrl-0 and pinctrl-names, as
> >   suggested by Geert
> > * Added "power-domains" to the list of required properties,
> >   as suggested by Geert
> > * Reworked the conditional requirements, Geert, what do you
> >   think?
>
> Thanks for the update!
>
>
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/renesas,drif.yaml
>
> > +allOf:
> > +  - if:
> > +  required:
> > +- renesas,primary-bond
> > +then:
> > +  required:
> > +- pinctrl-0
> > +- pinctrl-names
> > +- port
> > +
> > +  - if:
> > +  required:
> > +- port
> > +then:
> > +  required:
> > +- pinctrl-0
> > +- pinctrl-names
> > +
> > +  - if:
> > +  not:
> > +required:
> > +  - port
> > +then:
>
> This can just be an "else" branch for the previous "if" statement?

Yes, it's equivalent. I'll send out v4 to tackle this.

Thanks,
Fab

>
> > +  properties:
> > +pinctrl-0: false
> > +pinctrl-names: false
>
> With the above fixed/clarified:
> Reviewed-by: Geert Uytterhoeven 
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-
> m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like 
> that.
> -- Linus Torvalds


Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, 
Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 
Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 
3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. 
no.: DE 14978647


Re: [PATCH v3 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema

2020-10-14 Thread Geert Uytterhoeven
Hi Fabrizio,

On Tue, Oct 13, 2020 at 5:02 PM Fabrizio Castro
 wrote:
> Convert the Renesas DRIF bindings to DT schema and update
> MAINTAINERS accordingly.
>
> Signed-off-by: Fabrizio Castro 
> Reviewed-by: Lad Prabhakar 
> Reviewed-by: Laurent Pinchart 
> ---
> v2->3:
> * Removed the definition of pinctrl-0 and pinctrl-names, as
>   suggested by Geert
> * Added "power-domains" to the list of required properties,
>   as suggested by Geert
> * Reworked the conditional requirements, Geert, what do you
>   think?

Thanks for the update!


> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/renesas,drif.yaml

> +allOf:
> +  - if:
> +  required:
> +- renesas,primary-bond
> +then:
> +  required:
> +- pinctrl-0
> +- pinctrl-names
> +- port
> +
> +  - if:
> +  required:
> +- port
> +then:
> +  required:
> +- pinctrl-0
> +- pinctrl-names
> +
> +  - if:
> +  not:
> +required:
> +  - port
> +then:

This can just be an "else" branch for the previous "if" statement?

> +  properties:
> +pinctrl-0: false
> +pinctrl-names: false

With the above fixed/clarified:
Reviewed-by: Geert Uytterhoeven 

Gr{oetje,eeting}s,

Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


[PATCH v3 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema

2020-10-13 Thread Fabrizio Castro
Convert the Renesas DRIF bindings to DT schema and update
MAINTAINERS accordingly.

Signed-off-by: Fabrizio Castro 
Reviewed-by: Lad Prabhakar 
Reviewed-by: Laurent Pinchart 
---
v2->3:
* Removed the definition of pinctrl-0 and pinctrl-names, as
  suggested by Geert
* Added "power-domains" to the list of required properties,
  as suggested by Geert
* Reworked the conditional requirements, Geert, what do you
  think?
v1->v2:
* s/controller/Controller/ in the title of renesas,drif.yaml
  as suggested by Laurent.

 .../bindings/media/renesas,drif.txt   | 177 ---
 .../bindings/media/renesas,drif.yaml  | 282 ++
 MAINTAINERS   |   2 +-
 3 files changed, 283 insertions(+), 178 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/renesas,drif.txt
 create mode 100644 Documentation/devicetree/bindings/media/renesas,drif.yaml

diff --git a/Documentation/devicetree/bindings/media/renesas,drif.txt 
b/Documentation/devicetree/bindings/media/renesas,drif.txt
deleted file mode 100644
index 0d8974aa8b38..
--- a/Documentation/devicetree/bindings/media/renesas,drif.txt
+++ /dev/null
@@ -1,177 +0,0 @@
-Renesas R-Car Gen3 Digital Radio Interface controller (DRIF)
-
-
-R-Car Gen3 DRIF is a SPI like receive only slave device. A general
-representation of DRIF interfacing with a master device is shown below.
-
-+-++-+
-| |-SCK--->|CLK  |
-|   Master|-SS>|SYNC  DRIFn (slave)  |
-| |-SD0--->|D0   |
-| |-SD1--->|D1   |
-+-++-+
-
-As per datasheet, each DRIF channel (drifn) is made up of two internal
-channels (drifn0 & drifn1). These two internal channels share the common
-CLK & SYNC. Each internal channel has its own dedicated resources like
-irq, dma channels, address space & clock. This internal split is not
-visible to the external master device.
-
-The device tree model represents each internal channel as a separate node.
-The internal channels sharing the CLK & SYNC are tied together by their
-phandles using a property called "renesas,bonding". For the rest of
-the documentation, unless explicitly stated, the word channel implies an
-internal channel.
-
-When both internal channels are enabled they need to be managed together
-as one (i.e.) they cannot operate alone as independent devices. Out of the
-two, one of them needs to act as a primary device that accepts common
-properties of both the internal channels. This channel is identified by a
-property called "renesas,primary-bond".
-
-To summarize,
-   - When both the internal channels that are bonded together are enabled,
- the zeroth channel is selected as primary-bond. This channels accepts
- properties common to all the members of the bond.
-   - When only one of the bonded channels need to be enabled, the property
- "renesas,bonding" or "renesas,primary-bond" will have no effect. That
- enabled channel can act alone as any other independent device.
-
-Required properties of an internal channel:

-- compatible:  "renesas,r8a7795-drif" if DRIF controller is a part of R8A7795 
SoC.
-   "renesas,r8a7796-drif" if DRIF controller is a part of R8A7796 
SoC.
-   "renesas,rcar-gen3-drif" for a generic R-Car Gen3 compatible 
device.
-
-   When compatible with the generic version, nodes must list the
-   SoC-specific version corresponding to the platform first
-   followed by the generic version.
-
-- reg: offset and length of that channel.
-- interrupts: associated with that channel.
-- clocks: phandle and clock specifier of that channel.
-- clock-names: clock input name string: "fck".
-- dmas: phandles to the DMA channels.
-- dma-names: names of the DMA channel: "rx".
-- renesas,bonding: phandle to the other channel.
-
-Optional properties of an internal channel:

-- power-domains: phandle to the respective power domain.
-
-Required properties of an internal channel when:
-   - It is the only enabled channel of the bond (or)
-   - If it acts as primary among enabled bonds
-
-- pinctrl-0: pin control group to be used for this channel.
-- pinctrl-names: must be "default".
-- renesas,primary-bond: empty property indicating the channel acts as primary
-   among the bonded channels.
-- port: child port node corresponding to the data input, in accordance with
-   the video interface bindings defined in
-   Documentation/devicetree/bindings/media/video-interfaces.txt. The port
-   node must contain at