All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/5] Add r8a77965 DRIF support
@ 2020-10-14 15:57 Fabrizio Castro
  2020-10-14 15:57 ` [PATCH v4 1/5] MAINTAINERS: Update MAINTAINERS for Renesas DRIF driver Fabrizio Castro
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Fabrizio Castro @ 2020-10-14 15:57 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Rob Herring, Geert Uytterhoeven
  Cc: Fabrizio Castro, Ramesh Shanmugasundaram, linux-media,
	devicetree, linux-kernel, linux-renesas-soc, Chris Paterson,
	Biju Das, Prabhakar Mahadev Lad, Laurent Pinchart

Dear All,

this series is to add DRIF support for the r8a77965
(a.k.a. R-Car M3-N). Version 4 improves the DT schema
for DRIF, as suggested by Geert.

Thanks,
Fab

Fabrizio Castro (5):
  MAINTAINERS: Update MAINTAINERS for Renesas DRIF driver
  media: dt-bindings: media: renesas,drif: Convert to json-schema
  media: dt-bindings: media: renesas,drif: Add r8a77990 support
  media: dt-bindings: media: renesas,drif: Add r8a77965 support
  arm64: dts: r8a77965: Add DRIF support

 .../bindings/media/renesas,drif.txt           | 177 -----------
 .../bindings/media/renesas,drif.yaml          | 279 ++++++++++++++++++
 MAINTAINERS                                   |   4 +-
 arch/arm64/boot/dts/renesas/r8a77965.dtsi     | 120 ++++++++
 4 files changed, 401 insertions(+), 179 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/media/renesas,drif.txt
 create mode 100644 Documentation/devicetree/bindings/media/renesas,drif.yaml

-- 
2.25.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v4 1/5] MAINTAINERS: Update MAINTAINERS for Renesas DRIF driver
  2020-10-14 15:57 [PATCH v4 0/5] Add r8a77965 DRIF support Fabrizio Castro
@ 2020-10-14 15:57 ` Fabrizio Castro
  2020-10-14 15:57 ` [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema Fabrizio Castro
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Fabrizio Castro @ 2020-10-14 15:57 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Rob Herring, Geert Uytterhoeven
  Cc: Fabrizio Castro, Ramesh Shanmugasundaram, linux-media,
	devicetree, linux-kernel, linux-renesas-soc, Chris Paterson,
	Biju Das, Prabhakar Mahadev Lad, Laurent Pinchart

Add Fabrizio castro and remove Ramesh Shanmugasundaram.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Ramesh Shanmugasundaram <rashanmu@gmail.com>
---
v3->v4:
* No change
v2->v3:
* Removed Ramesh Shanmugasundaram as maintainer, as suggested
  by Ramesh
* Reworked commit title and changelog
v1->v2:
* No change

 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 9a54806ebf02..4ff8e65df4e7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10835,7 +10835,7 @@ F:	drivers/media/platform/renesas-ceu.c
 F:	include/media/drv-intf/renesas-ceu.h
 
 MEDIA DRIVERS FOR RENESAS - DRIF
-M:	Ramesh Shanmugasundaram <rashanmu@gmail.com>
+M:	Fabrizio Castro <fabrizio.castro.jz@renesas.com>
 L:	linux-media@vger.kernel.org
 L:	linux-renesas-soc@vger.kernel.org
 S:	Supported
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema
  2020-10-14 15:57 [PATCH v4 0/5] Add r8a77965 DRIF support Fabrizio Castro
  2020-10-14 15:57 ` [PATCH v4 1/5] MAINTAINERS: Update MAINTAINERS for Renesas DRIF driver Fabrizio Castro
@ 2020-10-14 15:57 ` Fabrizio Castro
  2020-10-16 15:50   ` Rob Herring
  2020-10-16 15:55   ` Rob Herring
  2020-10-14 15:57 ` [PATCH v4 3/5] media: dt-bindings: media: renesas,drif: Add r8a77990 support Fabrizio Castro
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 11+ messages in thread
From: Fabrizio Castro @ 2020-10-14 15:57 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Rob Herring, Geert Uytterhoeven
  Cc: Fabrizio Castro, Ramesh Shanmugasundaram, linux-media,
	devicetree, linux-kernel, linux-renesas-soc, Chris Paterson,
	Biju Das, Prabhakar Mahadev Lad, Laurent Pinchart

Convert the Renesas DRIF bindings to DT schema and update
MAINTAINERS accordingly.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3->v4:
* Replace "if" statement with "else" statement for the branch
  rejecting pinctrl-0 and pinctrl-names properties, as suggested
  by Geert
v2->v3:
* 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
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          | 277 ++++++++++++++++++
 MAINTAINERS                                   |   2 +-
 3 files changed, 278 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..000000000000
--- 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 least one endpoint.
-
-Optional endpoint property:
----------------------------
-- sync-active: Indicates sync signal polarity, 0/1 for low/high respectively.
-	       This property maps to SYNCAC bit in the hardware manual. The
-	       default is 1 (active high).
-
-Example:
---------
-
-(1) Both internal channels enabled:
------------------------------------
-
-When interfacing with a third party tuner device with two data pins as shown
-below.
-
-+---------------------+                +---------------------+
-|                     |-----SCK------->|CLK                  |
-|       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
-|                     |-----SD0------->|D0                   |
-|                     |-----SD1------->|D1                   |
-+---------------------+                +---------------------+
-
-	drif00: rif@e6f40000 {
-		compatible = "renesas,r8a7795-drif",
-			     "renesas,rcar-gen3-drif";
-		reg = <0 0xe6f40000 0 0x64>;
-		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&cpg CPG_MOD 515>;
-		clock-names = "fck";
-		dmas = <&dmac1 0x20>, <&dmac2 0x20>;
-		dma-names = "rx", "rx";
-		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
-		renesas,bonding = <&drif01>;
-		renesas,primary-bond;
-		pinctrl-0 = <&drif0_pins>;
-		pinctrl-names = "default";
-		port {
-			drif0_ep: endpoint {
-			     remote-endpoint = <&tuner_ep>;
-			};
-		};
-	};
-
-	drif01: rif@e6f50000 {
-		compatible = "renesas,r8a7795-drif",
-			     "renesas,rcar-gen3-drif";
-		reg = <0 0xe6f50000 0 0x64>;
-		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&cpg CPG_MOD 514>;
-		clock-names = "fck";
-		dmas = <&dmac1 0x22>, <&dmac2 0x22>;
-		dma-names = "rx", "rx";
-		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
-		renesas,bonding = <&drif00>;
-	};
-
-
-(2) Internal channel 1 alone is enabled:
-----------------------------------------
-
-When interfacing with a third party tuner device with one data pin as shown
-below.
-
-+---------------------+                +---------------------+
-|                     |-----SCK------->|CLK                  |
-|       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
-|                     |                |D0 (unused)          |
-|                     |-----SD-------->|D1                   |
-+---------------------+                +---------------------+
-
-	drif00: rif@e6f40000 {
-		compatible = "renesas,r8a7795-drif",
-			     "renesas,rcar-gen3-drif";
-		reg = <0 0xe6f40000 0 0x64>;
-		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&cpg CPG_MOD 515>;
-		clock-names = "fck";
-		dmas = <&dmac1 0x20>, <&dmac2 0x20>;
-		dma-names = "rx", "rx";
-		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
-		renesas,bonding = <&drif01>;
-	};
-
-	drif01: rif@e6f50000 {
-		compatible = "renesas,r8a7795-drif",
-			     "renesas,rcar-gen3-drif";
-		reg = <0 0xe6f50000 0 0x64>;
-		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&cpg CPG_MOD 514>;
-		clock-names = "fck";
-		dmas = <&dmac1 0x22>, <&dmac2 0x22>;
-		dma-names = "rx", "rx";
-		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
-		renesas,bonding = <&drif00>;
-		pinctrl-0 = <&drif0_pins>;
-		pinctrl-names = "default";
-		port {
-			drif0_ep: endpoint {
-			     remote-endpoint = <&tuner_ep>;
-			     sync-active = <0>;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/media/renesas,drif.yaml b/Documentation/devicetree/bindings/media/renesas,drif.yaml
new file mode 100644
index 000000000000..3832ce837553
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/renesas,drif.yaml
@@ -0,0 +1,277 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/renesas,drif.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas R-Car Gen3 Digital Radio Interface Controller (DRIF)
+
+maintainers:
+  - Ramesh Shanmugasundaram <rashanmu@gmail.com>
+  - Fabrizio Castro <fabrizio.castro.jz@renesas.com>
+
+description: |
+  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.
+
+properties:
+  compatible:
+    items:
+      - enum:
+        - renesas,r8a7795-drif        # R-Car H3
+        - renesas,r8a7796-drif        # R-Car M3-W
+      - const: renesas,rcar-gen3-drif # Generic R-Car Gen3 compatible device
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    maxItems: 1
+    items:
+      - const: fck
+
+  resets:
+    maxItems: 1
+
+  dmas:
+    minItems: 1
+    maxItems: 2
+
+  dma-names:
+    minItems: 1
+    maxItems: 2
+    items:
+      - const: rx
+      - const: rx
+
+  renesas,bonding:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      The phandle to the other internal channel of DRIF
+
+  power-domains:
+    maxItems: 1
+
+  renesas,primary-bond:
+    type: boolean
+    description:
+      Indicates that the channel acts as primary among the bonded channels.
+
+  port:
+    type: object
+    description:
+      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 least one endpoint.
+
+    properties:
+      endpoint:
+        type: object
+
+        properties:
+          remote-endpoint:
+            description:
+              A phandle to the remote tuner endpoint subnode in remote node
+              port.
+
+          sync-active:
+            enum: [0, 1]
+            description:
+              Indicates sync signal polarity, 0/1 for low/high respectively.
+              This property maps to SYNCAC bit in the hardware manual. The
+              default is 1 (active high).
+
+        additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - resets
+  - dmas
+  - dma-names
+  - renesas,bonding
+  - power-domains
+
+allOf:
+  - if:
+      required:
+        - renesas,primary-bond
+    then:
+      required:
+        - pinctrl-0
+        - pinctrl-names
+        - port
+
+  - if:
+      required:
+        - port
+    then:
+      required:
+        - pinctrl-0
+        - pinctrl-names
+    else:
+      properties:
+        pinctrl-0: false
+        pinctrl-names: false
+
+additionalProperties: false
+
+examples:
+  # Example with both internal channels enabled.
+  #
+  # When interfacing with a third party tuner device with two data pins as shown
+  # below.
+  #
+  # +---------------------+                +---------------------+
+  # |                     |-----SCK------->|CLK                  |
+  # |       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
+  # |                     |-----SD0------->|D0                   |
+  # |                     |-----SD1------->|D1                   |
+  # +---------------------+                +---------------------+
+  - |
+    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/r8a7795-sysc.h>
+
+    soc {
+            #address-cells = <2>;
+            #size-cells = <2>;
+
+            drif00: rif@e6f40000 {
+                    compatible = "renesas,r8a7795-drif",
+                                 "renesas,rcar-gen3-drif";
+                    reg = <0 0xe6f40000 0 0x64>;
+                    interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                    clocks = <&cpg CPG_MOD 515>;
+                    clock-names = "fck";
+                    dmas = <&dmac1 0x20>, <&dmac2 0x20>;
+                    dma-names = "rx", "rx";
+                    power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                    renesas,bonding = <&drif01>;
+                    resets = <&cpg 515>;
+                    renesas,primary-bond;
+                    pinctrl-0 = <&drif0_pins>;
+                    pinctrl-names = "default";
+                    port {
+                            drif0_ep: endpoint {
+                                 remote-endpoint = <&tuner_ep>;
+                            };
+                    };
+            };
+
+            drif01: rif@e6f50000 {
+                    compatible = "renesas,r8a7795-drif",
+                                 "renesas,rcar-gen3-drif";
+                    reg = <0 0xe6f50000 0 0x64>;
+                    interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                    clocks = <&cpg CPG_MOD 514>;
+                    clock-names = "fck";
+                    dmas = <&dmac1 0x22>, <&dmac2 0x22>;
+                    dma-names = "rx", "rx";
+                    power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                    renesas,bonding = <&drif00>;
+                    resets = <&cpg 514>;
+            };
+    };
+
+  # Example with internal channel 1 alone enabled.
+  #
+  # When interfacing with a third party tuner device with one data pin as shown
+  # below.
+  #
+  # +---------------------+                +---------------------+
+  # |                     |-----SCK------->|CLK                  |
+  # |       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
+  # |                     |                |D0 (unused)          |
+  # |                     |-----SD-------->|D1                   |
+  # +---------------------+                +---------------------+
+  - |
+    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/r8a7795-sysc.h>
+
+    soc {
+            #address-cells = <2>;
+            #size-cells = <2>;
+
+            drif10: rif@e6f60000 {
+                    compatible = "renesas,r8a7795-drif",
+                                 "renesas,rcar-gen3-drif";
+                    reg = <0 0xe6f60000 0 0x64>;
+                    interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                    clocks = <&cpg CPG_MOD 513>;
+                    clock-names = "fck";
+                    dmas = <&dmac1 0x24>, <&dmac2 0x24>;
+                    dma-names = "rx", "rx";
+                    power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                    resets = <&cpg 513>;
+                    renesas,bonding = <&drif11>;
+                    status = "disabled";
+            };
+
+            drif11: rif@e6f70000 {
+                    compatible = "renesas,r8a7795-drif",
+                                 "renesas,rcar-gen3-drif";
+                    reg = <0 0xe6f70000 0 0x64>;
+                    interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+                    clocks = <&cpg CPG_MOD 512>;
+                    clock-names = "fck";
+                    dmas = <&dmac1 0x26>, <&dmac2 0x26>;
+                    dma-names = "rx", "rx";
+                    power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                    resets = <&cpg 512>;
+                    renesas,bonding = <&drif10>;
+                    pinctrl-0 = <&drif1_pins>;
+                    pinctrl-names = "default";
+                    port {
+                            drif1_ep: endpoint {
+                                 remote-endpoint = <&tuner_ep1>;
+                                 sync-active = <0>;
+                            };
+                    };
+            };
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 4ff8e65df4e7..797718391b38 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10840,7 +10840,7 @@ L:	linux-media@vger.kernel.org
 L:	linux-renesas-soc@vger.kernel.org
 S:	Supported
 T:	git git://linuxtv.org/media_tree.git
-F:	Documentation/devicetree/bindings/media/renesas,drif.txt
+F:	Documentation/devicetree/bindings/media/renesas,drif.yaml
 F:	drivers/media/platform/rcar_drif.c
 
 MEDIA DRIVERS FOR RENESAS - FCP
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 3/5] media: dt-bindings: media: renesas,drif: Add r8a77990 support
  2020-10-14 15:57 [PATCH v4 0/5] Add r8a77965 DRIF support Fabrizio Castro
  2020-10-14 15:57 ` [PATCH v4 1/5] MAINTAINERS: Update MAINTAINERS for Renesas DRIF driver Fabrizio Castro
  2020-10-14 15:57 ` [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema Fabrizio Castro
@ 2020-10-14 15:57 ` Fabrizio Castro
  2020-10-16 16:20   ` Rob Herring
  2020-10-14 15:57 ` [PATCH v4 4/5] media: dt-bindings: media: renesas,drif: Add r8a77965 support Fabrizio Castro
  2020-10-14 15:57 ` [PATCH v4 5/5] arm64: dts: r8a77965: Add DRIF support Fabrizio Castro
  4 siblings, 1 reply; 11+ messages in thread
From: Fabrizio Castro @ 2020-10-14 15:57 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Rob Herring, Geert Uytterhoeven
  Cc: Fabrizio Castro, Ramesh Shanmugasundaram, linux-media,
	devicetree, linux-kernel, linux-renesas-soc, Chris Paterson,
	Biju Das, Prabhakar Mahadev Lad, Laurent Pinchart

The r8a77990 (a.k.a. R-Car E3) device tree schema is
compatible with R-Car H3 and M3-W schema.

Document r8a77990 support within renesas,drif.yaml.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
v3->v4:
* No change
v2->v3:
* No change
v1->v2:
* No change

 Documentation/devicetree/bindings/media/renesas,drif.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/media/renesas,drif.yaml b/Documentation/devicetree/bindings/media/renesas,drif.yaml
index 3832ce837553..478968345aa9 100644
--- a/Documentation/devicetree/bindings/media/renesas,drif.yaml
+++ b/Documentation/devicetree/bindings/media/renesas,drif.yaml
@@ -53,6 +53,7 @@ properties:
       - enum:
         - renesas,r8a7795-drif        # R-Car H3
         - renesas,r8a7796-drif        # R-Car M3-W
+        - renesas,r8a77990-drif       # R-Car E3
       - const: renesas,rcar-gen3-drif # Generic R-Car Gen3 compatible device
 
   reg:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 4/5] media: dt-bindings: media: renesas,drif: Add r8a77965 support
  2020-10-14 15:57 [PATCH v4 0/5] Add r8a77965 DRIF support Fabrizio Castro
                   ` (2 preceding siblings ...)
  2020-10-14 15:57 ` [PATCH v4 3/5] media: dt-bindings: media: renesas,drif: Add r8a77990 support Fabrizio Castro
@ 2020-10-14 15:57 ` Fabrizio Castro
  2020-10-19 20:49   ` Rob Herring
  2020-10-14 15:57 ` [PATCH v4 5/5] arm64: dts: r8a77965: Add DRIF support Fabrizio Castro
  4 siblings, 1 reply; 11+ messages in thread
From: Fabrizio Castro @ 2020-10-14 15:57 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Rob Herring, Geert Uytterhoeven
  Cc: Fabrizio Castro, Ramesh Shanmugasundaram, linux-media,
	devicetree, linux-kernel, linux-renesas-soc, Chris Paterson,
	Biju Das, Prabhakar Mahadev Lad, Laurent Pinchart

The r8a77965 (a.k.a. R-Car M3-N) device tree schema is
compatible with the already documented R-Car Gen3 devices.

Document r8a77965 support within renesas,drif.yaml.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v3->v4:
* No change
v2->v3:
* New patch

 Documentation/devicetree/bindings/media/renesas,drif.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/media/renesas,drif.yaml b/Documentation/devicetree/bindings/media/renesas,drif.yaml
index 478968345aa9..0fe79f9e8eb9 100644
--- a/Documentation/devicetree/bindings/media/renesas,drif.yaml
+++ b/Documentation/devicetree/bindings/media/renesas,drif.yaml
@@ -53,6 +53,7 @@ properties:
       - enum:
         - renesas,r8a7795-drif        # R-Car H3
         - renesas,r8a7796-drif        # R-Car M3-W
+        - renesas,r8a77965-drif       # R-Car M3-N
         - renesas,r8a77990-drif       # R-Car E3
       - const: renesas,rcar-gen3-drif # Generic R-Car Gen3 compatible device
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 5/5] arm64: dts: r8a77965: Add DRIF support
  2020-10-14 15:57 [PATCH v4 0/5] Add r8a77965 DRIF support Fabrizio Castro
                   ` (3 preceding siblings ...)
  2020-10-14 15:57 ` [PATCH v4 4/5] media: dt-bindings: media: renesas,drif: Add r8a77965 support Fabrizio Castro
@ 2020-10-14 15:57 ` Fabrizio Castro
  4 siblings, 0 replies; 11+ messages in thread
From: Fabrizio Castro @ 2020-10-14 15:57 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Rob Herring, Geert Uytterhoeven
  Cc: Fabrizio Castro, Ramesh Shanmugasundaram, linux-media,
	devicetree, linux-kernel, linux-renesas-soc, Chris Paterson,
	Biju Das, Prabhakar Mahadev Lad, Laurent Pinchart

Add the DRIF controller nodes for r8a77965 (a.k.a. R-Car M3-N).

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v3->v4:
* No change
v2->v3:
* New patch

 arch/arm64/boot/dts/renesas/r8a77965.dtsi | 120 ++++++++++++++++++++++
 1 file changed, 120 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
index fe4dc12e2bdf..c5a54dc7ede2 100644
--- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
@@ -1550,6 +1550,126 @@ vin7csi40: endpoint@2 {
 			};
 		};
 
+		drif00: rif@e6f40000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f40000 0 0x84>;
+			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 515>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x20>, <&dmac2 0x20>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 515>;
+			renesas,bonding = <&drif01>;
+			status = "disabled";
+		};
+
+		drif01: rif@e6f50000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f50000 0 0x84>;
+			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 514>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x22>, <&dmac2 0x22>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 514>;
+			renesas,bonding = <&drif00>;
+			status = "disabled";
+		};
+
+		drif10: rif@e6f60000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f60000 0 0x84>;
+			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 513>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x24>, <&dmac2 0x24>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 513>;
+			renesas,bonding = <&drif11>;
+			status = "disabled";
+		};
+
+		drif11: rif@e6f70000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f70000 0 0x84>;
+			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 512>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x26>, <&dmac2 0x26>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 512>;
+			renesas,bonding = <&drif10>;
+			status = "disabled";
+		};
+
+		drif20: rif@e6f80000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f80000 0 0x84>;
+			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 511>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x28>, <&dmac2 0x28>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 511>;
+			renesas,bonding = <&drif21>;
+			status = "disabled";
+		};
+
+		drif21: rif@e6f90000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f90000 0 0x84>;
+			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 510>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x2a>, <&dmac2 0x2a>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 510>;
+			renesas,bonding = <&drif20>;
+			status = "disabled";
+		};
+
+		drif30: rif@e6fa0000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6fa0000 0 0x84>;
+			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 509>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x2c>, <&dmac2 0x2c>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 509>;
+			renesas,bonding = <&drif31>;
+			status = "disabled";
+		};
+
+		drif31: rif@e6fb0000 {
+			compatible = "renesas,r8a77965-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6fb0000 0 0x84>;
+			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 508>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x2e>, <&dmac2 0x2e>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+			resets = <&cpg 508>;
+			renesas,bonding = <&drif30>;
+			status = "disabled";
+		};
+
 		rcar_sound: sound@ec500000 {
 			/*
 			 * #sound-dai-cells is required
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema
  2020-10-14 15:57 ` [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema Fabrizio Castro
@ 2020-10-16 15:50   ` Rob Herring
  2020-10-16 15:55   ` Rob Herring
  1 sibling, 0 replies; 11+ messages in thread
From: Rob Herring @ 2020-10-16 15:50 UTC (permalink / raw)
  To: Fabrizio Castro
  Cc: devicetree, linux-kernel, Chris Paterson, Biju Das,
	linux-renesas-soc, Mauro Carvalho Chehab, Rob Herring,
	Geert Uytterhoeven, linux-media, Prabhakar Mahadev Lad,
	Laurent Pinchart, Ramesh Shanmugasundaram

On Wed, 14 Oct 2020 16:57:16 +0100, Fabrizio Castro wrote:
> Convert the Renesas DRIF bindings to DT schema and update
> MAINTAINERS accordingly.
> 
> Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> v3->v4:
> * Replace "if" statement with "else" statement for the branch
>   rejecting pinctrl-0 and pinctrl-names properties, as suggested
>   by Geert
> v2->v3:
> * 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
> 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          | 277 ++++++++++++++++++
>  MAINTAINERS                                   |   2 +-
>  3 files changed, 278 insertions(+), 178 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/media/renesas,drif.txt
>  create mode 100644 Documentation/devicetree/bindings/media/renesas,drif.yaml
> 


My bot found errors running 'make dt_binding_check' on your patch:

./Documentation/devicetree/bindings/media/renesas,drif.yaml:54:9: [warning] wrong indentation: expected 10 but found 8 (indentation)


See https://patchwork.ozlabs.org/patch/1382223

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure dt-schema is up to date:

pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade

Please check and re-submit.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema
  2020-10-14 15:57 ` [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema Fabrizio Castro
  2020-10-16 15:50   ` Rob Herring
@ 2020-10-16 15:55   ` Rob Herring
  2020-10-21 13:48     ` Fabrizio Castro
  1 sibling, 1 reply; 11+ messages in thread
From: Rob Herring @ 2020-10-16 15:55 UTC (permalink / raw)
  To: Fabrizio Castro
  Cc: Mauro Carvalho Chehab, Geert Uytterhoeven,
	Ramesh Shanmugasundaram, linux-media, devicetree, linux-kernel,
	linux-renesas-soc, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad, Laurent Pinchart

On Wed, Oct 14, 2020 at 04:57:16PM +0100, Fabrizio Castro wrote:
> Convert the Renesas DRIF bindings to DT schema and update
> MAINTAINERS accordingly.
> 
> Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> v3->v4:
> * Replace "if" statement with "else" statement for the branch
>   rejecting pinctrl-0 and pinctrl-names properties, as suggested
>   by Geert
> v2->v3:
> * 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
> 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          | 277 ++++++++++++++++++
>  MAINTAINERS                                   |   2 +-
>  3 files changed, 278 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..000000000000
> --- 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 least one endpoint.
> -
> -Optional endpoint property:
> ----------------------------
> -- sync-active: Indicates sync signal polarity, 0/1 for low/high respectively.
> -	       This property maps to SYNCAC bit in the hardware manual. The
> -	       default is 1 (active high).
> -
> -Example:
> ---------
> -
> -(1) Both internal channels enabled:
> ------------------------------------
> -
> -When interfacing with a third party tuner device with two data pins as shown
> -below.
> -
> -+---------------------+                +---------------------+
> -|                     |-----SCK------->|CLK                  |
> -|       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
> -|                     |-----SD0------->|D0                   |
> -|                     |-----SD1------->|D1                   |
> -+---------------------+                +---------------------+
> -
> -	drif00: rif@e6f40000 {
> -		compatible = "renesas,r8a7795-drif",
> -			     "renesas,rcar-gen3-drif";
> -		reg = <0 0xe6f40000 0 0x64>;
> -		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&cpg CPG_MOD 515>;
> -		clock-names = "fck";
> -		dmas = <&dmac1 0x20>, <&dmac2 0x20>;
> -		dma-names = "rx", "rx";
> -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> -		renesas,bonding = <&drif01>;
> -		renesas,primary-bond;
> -		pinctrl-0 = <&drif0_pins>;
> -		pinctrl-names = "default";
> -		port {
> -			drif0_ep: endpoint {
> -			     remote-endpoint = <&tuner_ep>;
> -			};
> -		};
> -	};
> -
> -	drif01: rif@e6f50000 {
> -		compatible = "renesas,r8a7795-drif",
> -			     "renesas,rcar-gen3-drif";
> -		reg = <0 0xe6f50000 0 0x64>;
> -		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&cpg CPG_MOD 514>;
> -		clock-names = "fck";
> -		dmas = <&dmac1 0x22>, <&dmac2 0x22>;
> -		dma-names = "rx", "rx";
> -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> -		renesas,bonding = <&drif00>;
> -	};
> -
> -
> -(2) Internal channel 1 alone is enabled:
> -----------------------------------------
> -
> -When interfacing with a third party tuner device with one data pin as shown
> -below.
> -
> -+---------------------+                +---------------------+
> -|                     |-----SCK------->|CLK                  |
> -|       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
> -|                     |                |D0 (unused)          |
> -|                     |-----SD-------->|D1                   |
> -+---------------------+                +---------------------+
> -
> -	drif00: rif@e6f40000 {
> -		compatible = "renesas,r8a7795-drif",
> -			     "renesas,rcar-gen3-drif";
> -		reg = <0 0xe6f40000 0 0x64>;
> -		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&cpg CPG_MOD 515>;
> -		clock-names = "fck";
> -		dmas = <&dmac1 0x20>, <&dmac2 0x20>;
> -		dma-names = "rx", "rx";
> -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> -		renesas,bonding = <&drif01>;
> -	};
> -
> -	drif01: rif@e6f50000 {
> -		compatible = "renesas,r8a7795-drif",
> -			     "renesas,rcar-gen3-drif";
> -		reg = <0 0xe6f50000 0 0x64>;
> -		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&cpg CPG_MOD 514>;
> -		clock-names = "fck";
> -		dmas = <&dmac1 0x22>, <&dmac2 0x22>;
> -		dma-names = "rx", "rx";
> -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> -		renesas,bonding = <&drif00>;
> -		pinctrl-0 = <&drif0_pins>;
> -		pinctrl-names = "default";
> -		port {
> -			drif0_ep: endpoint {
> -			     remote-endpoint = <&tuner_ep>;
> -			     sync-active = <0>;
> -			};
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/media/renesas,drif.yaml b/Documentation/devicetree/bindings/media/renesas,drif.yaml
> new file mode 100644
> index 000000000000..3832ce837553
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/renesas,drif.yaml
> @@ -0,0 +1,277 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/renesas,drif.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Renesas R-Car Gen3 Digital Radio Interface Controller (DRIF)
> +
> +maintainers:
> +  - Ramesh Shanmugasundaram <rashanmu@gmail.com>
> +  - Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> +
> +description: |
> +  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.
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +        - renesas,r8a7795-drif        # R-Car H3
> +        - renesas,r8a7796-drif        # R-Car M3-W

Note the bot error is from yamllint which just got added to the checks. 
Need 2 more spaces indent here.

With that,

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 3/5] media: dt-bindings: media: renesas,drif: Add r8a77990 support
  2020-10-14 15:57 ` [PATCH v4 3/5] media: dt-bindings: media: renesas,drif: Add r8a77990 support Fabrizio Castro
@ 2020-10-16 16:20   ` Rob Herring
  0 siblings, 0 replies; 11+ messages in thread
From: Rob Herring @ 2020-10-16 16:20 UTC (permalink / raw)
  To: Fabrizio Castro
  Cc: Prabhakar Mahadev Lad, linux-renesas-soc, devicetree,
	Chris Paterson, Mauro Carvalho Chehab, linux-media,
	Ramesh Shanmugasundaram, linux-kernel, Biju Das,
	Laurent Pinchart, Geert Uytterhoeven, Rob Herring

On Wed, 14 Oct 2020 16:57:17 +0100, Fabrizio Castro wrote:
> The r8a77990 (a.k.a. R-Car E3) device tree schema is
> compatible with R-Car H3 and M3-W schema.
> 
> Document r8a77990 support within renesas,drif.yaml.
> 
> Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> v3->v4:
> * No change
> v2->v3:
> * No change
> v1->v2:
> * No change
> 
>  Documentation/devicetree/bindings/media/renesas,drif.yaml | 1 +
>  1 file changed, 1 insertion(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 4/5] media: dt-bindings: media: renesas,drif: Add r8a77965 support
  2020-10-14 15:57 ` [PATCH v4 4/5] media: dt-bindings: media: renesas,drif: Add r8a77965 support Fabrizio Castro
@ 2020-10-19 20:49   ` Rob Herring
  0 siblings, 0 replies; 11+ messages in thread
From: Rob Herring @ 2020-10-19 20:49 UTC (permalink / raw)
  To: Fabrizio Castro
  Cc: Geert Uytterhoeven, linux-media, linux-kernel, Biju Das,
	Ramesh Shanmugasundaram, Rob Herring, Mauro Carvalho Chehab,
	Prabhakar Mahadev Lad, linux-renesas-soc, Chris Paterson,
	Laurent Pinchart, devicetree

On Wed, 14 Oct 2020 16:57:18 +0100, Fabrizio Castro wrote:
> The r8a77965 (a.k.a. R-Car M3-N) device tree schema is
> compatible with the already documented R-Car Gen3 devices.
> 
> Document r8a77965 support within renesas,drif.yaml.
> 
> Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> v3->v4:
> * No change
> v2->v3:
> * New patch
> 
>  Documentation/devicetree/bindings/media/renesas,drif.yaml | 1 +
>  1 file changed, 1 insertion(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema
  2020-10-16 15:55   ` Rob Herring
@ 2020-10-21 13:48     ` Fabrizio Castro
  0 siblings, 0 replies; 11+ messages in thread
From: Fabrizio Castro @ 2020-10-21 13:48 UTC (permalink / raw)
  To: Rob Herring
  Cc: Mauro Carvalho Chehab, Geert Uytterhoeven,
	Ramesh Shanmugasundaram, linux-media, devicetree, linux-kernel,
	linux-renesas-soc, Chris Paterson, Biju Das,
	Prabhakar Mahadev Lad, Laurent Pinchart

Hi Rob,

Thank you for your feedback.

> From: Rob Herring <robh@kernel.org>
> Sent: 16 October 2020 16:56
> Subject: Re: [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to
> json-schema
> 
> On Wed, Oct 14, 2020 at 04:57:16PM +0100, Fabrizio Castro wrote:
> > Convert the Renesas DRIF bindings to DT schema and update
> > MAINTAINERS accordingly.
> >
> > Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > ---
> > v3->v4:
> > * Replace "if" statement with "else" statement for the branch
> >   rejecting pinctrl-0 and pinctrl-names properties, as suggested
> >   by Geert
> > v2->v3:
> > * 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
> > 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          | 277 ++++++++++++++++++
> >  MAINTAINERS                                   |   2 +-
> >  3 files changed, 278 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..000000000000
> > --- 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 least one endpoint.
> > -
> > -Optional endpoint property:
> > ----------------------------
> > -- sync-active: Indicates sync signal polarity, 0/1 for low/high respectively.
> > -	       This property maps to SYNCAC bit in the hardware manual. The
> > -	       default is 1 (active high).
> > -
> > -Example:
> > ---------
> > -
> > -(1) Both internal channels enabled:
> > ------------------------------------
> > -
> > -When interfacing with a third party tuner device with two data pins as shown
> > -below.
> > -
> > -+---------------------+                +---------------------+
> > -|                     |-----SCK------->|CLK                  |
> > -|       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
> > -|                     |-----SD0------->|D0                   |
> > -|                     |-----SD1------->|D1                   |
> > -+---------------------+                +---------------------+
> > -
> > -	drif00: rif@e6f40000 {
> > -		compatible = "renesas,r8a7795-drif",
> > -			     "renesas,rcar-gen3-drif";
> > -		reg = <0 0xe6f40000 0 0x64>;
> > -		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> > -		clocks = <&cpg CPG_MOD 515>;
> > -		clock-names = "fck";
> > -		dmas = <&dmac1 0x20>, <&dmac2 0x20>;
> > -		dma-names = "rx", "rx";
> > -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> > -		renesas,bonding = <&drif01>;
> > -		renesas,primary-bond;
> > -		pinctrl-0 = <&drif0_pins>;
> > -		pinctrl-names = "default";
> > -		port {
> > -			drif0_ep: endpoint {
> > -			     remote-endpoint = <&tuner_ep>;
> > -			};
> > -		};
> > -	};
> > -
> > -	drif01: rif@e6f50000 {
> > -		compatible = "renesas,r8a7795-drif",
> > -			     "renesas,rcar-gen3-drif";
> > -		reg = <0 0xe6f50000 0 0x64>;
> > -		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> > -		clocks = <&cpg CPG_MOD 514>;
> > -		clock-names = "fck";
> > -		dmas = <&dmac1 0x22>, <&dmac2 0x22>;
> > -		dma-names = "rx", "rx";
> > -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> > -		renesas,bonding = <&drif00>;
> > -	};
> > -
> > -
> > -(2) Internal channel 1 alone is enabled:
> > -----------------------------------------
> > -
> > -When interfacing with a third party tuner device with one data pin as shown
> > -below.
> > -
> > -+---------------------+                +---------------------+
> > -|                     |-----SCK------->|CLK                  |
> > -|       Master        |-----SS-------->|SYNC  DRIFn (slave)  |
> > -|                     |                |D0 (unused)          |
> > -|                     |-----SD-------->|D1                   |
> > -+---------------------+                +---------------------+
> > -
> > -	drif00: rif@e6f40000 {
> > -		compatible = "renesas,r8a7795-drif",
> > -			     "renesas,rcar-gen3-drif";
> > -		reg = <0 0xe6f40000 0 0x64>;
> > -		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> > -		clocks = <&cpg CPG_MOD 515>;
> > -		clock-names = "fck";
> > -		dmas = <&dmac1 0x20>, <&dmac2 0x20>;
> > -		dma-names = "rx", "rx";
> > -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> > -		renesas,bonding = <&drif01>;
> > -	};
> > -
> > -	drif01: rif@e6f50000 {
> > -		compatible = "renesas,r8a7795-drif",
> > -			     "renesas,rcar-gen3-drif";
> > -		reg = <0 0xe6f50000 0 0x64>;
> > -		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> > -		clocks = <&cpg CPG_MOD 514>;
> > -		clock-names = "fck";
> > -		dmas = <&dmac1 0x22>, <&dmac2 0x22>;
> > -		dma-names = "rx", "rx";
> > -		power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
> > -		renesas,bonding = <&drif00>;
> > -		pinctrl-0 = <&drif0_pins>;
> > -		pinctrl-names = "default";
> > -		port {
> > -			drif0_ep: endpoint {
> > -			     remote-endpoint = <&tuner_ep>;
> > -			     sync-active = <0>;
> > -			};
> > -		};
> > -	};
> > diff --git a/Documentation/devicetree/bindings/media/renesas,drif.yaml
> b/Documentation/devicetree/bindings/media/renesas,drif.yaml
> > new file mode 100644
> > index 000000000000..3832ce837553
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/renesas,drif.yaml
> > @@ -0,0 +1,277 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/renesas,drif.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Renesas R-Car Gen3 Digital Radio Interface Controller (DRIF)
> > +
> > +maintainers:
> > +  - Ramesh Shanmugasundaram <rashanmu@gmail.com>
> > +  - Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> > +
> > +description: |
> > +  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.
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +        - renesas,r8a7795-drif        # R-Car H3
> > +        - renesas,r8a7796-drif        # R-Car M3-W
> 
> Note the bot error is from yamllint which just got added to the checks.
> Need 2 more spaces indent here.

Thank you for reporting this. Unfortunately I wasn't personally able to reproduce this,
but thankfully a colleague of mine (Prabhakar) was able to reproduce the warning on
his setup. I'll send a v5 to fix this.

Thanks,
Fab

> 
> With that,
> 
> Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-10-21 13:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-14 15:57 [PATCH v4 0/5] Add r8a77965 DRIF support Fabrizio Castro
2020-10-14 15:57 ` [PATCH v4 1/5] MAINTAINERS: Update MAINTAINERS for Renesas DRIF driver Fabrizio Castro
2020-10-14 15:57 ` [PATCH v4 2/5] media: dt-bindings: media: renesas,drif: Convert to json-schema Fabrizio Castro
2020-10-16 15:50   ` Rob Herring
2020-10-16 15:55   ` Rob Herring
2020-10-21 13:48     ` Fabrizio Castro
2020-10-14 15:57 ` [PATCH v4 3/5] media: dt-bindings: media: renesas,drif: Add r8a77990 support Fabrizio Castro
2020-10-16 16:20   ` Rob Herring
2020-10-14 15:57 ` [PATCH v4 4/5] media: dt-bindings: media: renesas,drif: Add r8a77965 support Fabrizio Castro
2020-10-19 20:49   ` Rob Herring
2020-10-14 15:57 ` [PATCH v4 5/5] arm64: dts: r8a77965: Add DRIF support Fabrizio Castro

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.