From patchwork Wed Nov 29 19:43:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 842707 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yn9xW20Ybz9s84 for ; Thu, 30 Nov 2017 06:45:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752566AbdK2ToG (ORCPT ); Wed, 29 Nov 2017 14:44:06 -0500 Received: from smtp-4.sys.kth.se ([130.237.48.193]:54334 "EHLO smtp-4.sys.kth.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751960AbdK2ToF (ORCPT ); Wed, 29 Nov 2017 14:44:05 -0500 Received: from smtp-4.sys.kth.se (localhost.localdomain [127.0.0.1]) by smtp-4.sys.kth.se (Postfix) with ESMTP id 664374DBB; Wed, 29 Nov 2017 20:44:03 +0100 (CET) X-Virus-Scanned: by amavisd-new at kth.se Received: from smtp-4.sys.kth.se ([127.0.0.1]) by smtp-4.sys.kth.se (smtp-4.sys.kth.se [127.0.0.1]) (amavisd-new, port 10024) with LMTP id pXWQPZcaZeo8; Wed, 29 Nov 2017 20:44:02 +0100 (CET) X-KTH-Auth: niso [89.233.230.99] X-KTH-mail-from: niklas.soderlund+renesas@ragnatech.se Received: from bismarck.berto.se (89-233-230-99.cust.bredband2.com [89.233.230.99]) by smtp-4.sys.kth.se (Postfix) with ESMTPSA id CCCBC4C5C; Wed, 29 Nov 2017 20:44:01 +0100 (CET) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: Laurent Pinchart , Hans Verkuil , linux-media@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, tomoharu.fukawa.eb@renesas.com, Kieran Bingham , =?utf-8?q?Niklas_S?= =?utf-8?b?w7ZkZXJsdW5k?= , Rob Herring , devicetree@vger.kernel.org Subject: [PATCH v8 01/28] rcar-vin: add Gen3 devicetree bindings documentation Date: Wed, 29 Nov 2017 20:43:15 +0100 Message-Id: <20171129194342.26239-2-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171129194342.26239-1-niklas.soderlund+renesas@ragnatech.se> References: <20171129194342.26239-1-niklas.soderlund+renesas@ragnatech.se> MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Document the devicetree bindings for the CSI-2 inputs available on Gen3. There is a need to add a custom property 'renesas,id' and to define which CSI-2 input is described in which endpoint under the port@1 node. This information is needed since there are a set of predefined routes between each VIN and CSI-2 block. This routing table will be kept inside the driver but in order for it to act on it it must know which VIN and CSI-2 is which. Signed-off-by: Niklas Söderlund Acked-by: Rob Herring --- .../devicetree/bindings/media/rcar_vin.txt | 116 ++++++++++++++++++--- 1 file changed, 104 insertions(+), 12 deletions(-) diff --git a/Documentation/devicetree/bindings/media/rcar_vin.txt b/Documentation/devicetree/bindings/media/rcar_vin.txt index ff9697ed81396e64..5a95d9668d2c7dfd 100644 --- a/Documentation/devicetree/bindings/media/rcar_vin.txt +++ b/Documentation/devicetree/bindings/media/rcar_vin.txt @@ -2,8 +2,12 @@ Renesas R-Car Video Input driver (rcar_vin) ------------------------------------------- The rcar_vin device provides video input capabilities for the Renesas R-Car -family of devices. The current blocks are always slaves and suppot one input -channel which can be either RGB, YUYV or BT656. +family of devices. + +Each VIN instance has a single parallel input that supports RGB and YUV video, +with both external synchronization and BT.656 synchronization for the latter. +Depending on the instance the VIN input is connected to external SoC pins, or +on Gen3 to a CSI-2 receiver. - compatible: Must be one or more of the following - "renesas,vin-r8a7743" for the R8A7743 device @@ -31,21 +35,38 @@ channel which can be either RGB, YUYV or BT656. Additionally, an alias named vinX will need to be created to specify which video input device this is. -The per-board settings: +The per-board settings Gen2: - port sub-node describing a single endpoint connected to the vin as described in video-interfaces.txt[1]. Only the first one will be considered as each vin interface has one input port. - These settings are used to work out video input format and widths - into the system. +The per-board settings Gen3: + +Gen3 can support both a single connected parallel input source from +external SoC pins (port0) and/or multiple parallel input sources from +local SoC CSI-2 receivers (port1) depending on SoC. +- renesas,id - ID number of the VIN, VINx in the documentation. +- ports + - port0 - sub-node describing a single endpoint connected to the VIN + from external SoC pins described in video-interfaces.txt[1]. Only + the first one will be considered as each VIN interface has at most + one set of SoC external input pins. + - port1 - sub-nodes describing one or more endpoints connected to + the VIN from local SoC CSI-2 receivers. The endpoint numbers must + use the following schema. -Device node example -------------------- + - Endpoint 0 - sub-node describing the endpoint which is CSI20 + - Endpoint 1 - sub-node describing the endpoint which is CSI21 + - Endpoint 2 - sub-node describing the endpoint which is CSI40 + - Endpoint 3 - sub-node describing the endpoint which is CSI41 - aliases { - vin0 = &vin0; - }; +Device node example Gen2 +------------------------ + + aliases { + vin0 = &vin0; + }; vin0: vin@0xe6ef0000 { compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin"; @@ -55,8 +76,8 @@ Device node example status = "disabled"; }; -Board setup example (vin1 composite video input) ------------------------------------------------- +Board setup example Gen2 (vin1 composite video input) +----------------------------------------------------- &i2c2 { status = "ok"; @@ -95,6 +116,77 @@ Board setup example (vin1 composite video input) }; }; +Device node example Gen3 +------------------------ + + vin0: video@e6ef0000 { + compatible = "renesas,vin-r8a7795"; + reg = <0 0xe6ef0000 0 0x1000>; + interrupts = ; + clocks = <&cpg CPG_MOD 811>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 811>; + renesas,id = <0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@1 { + #address-cells = <1>; + #size-cells = <0>; + + reg = <1>; + + vin0csi20: endpoint@0 { + reg = <0>; + remote-endpoint= <&csi20vin0>; + }; + vin0csi21: endpoint@1 { + reg = <1>; + remote-endpoint= <&csi21vin0>; + }; + vin0csi40: endpoint@2 { + reg = <2>; + remote-endpoint= <&csi40vin0>; + }; + }; + }; + }; + + csi20: csi2@fea80000 { + compatible = "renesas,r8a7795-csi2"; + reg = <0 0xfea80000 0 0x10000>; + interrupts = ; + clocks = <&cpg CPG_MOD 714>; + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; + resets = <&cpg 714>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + csi20_in: endpoint { + clock-lanes = <0>; + data-lanes = <1>; + remote-endpoint = <&adv7482_txb>; + }; + }; + + port@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; + + csi20vin0: endpoint@0 { + reg = <0>; + remote-endpoint = <&vin0csi20>; + }; + }; + }; + }; [1] video-interfaces.txt common video media interface From patchwork Wed Nov 29 19:43:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 842705 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yn9w82Q18z9s84 for ; Thu, 30 Nov 2017 06:44:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752743AbdK2ToR (ORCPT ); Wed, 29 Nov 2017 14:44:17 -0500 Received: from smtp-4.sys.kth.se ([130.237.48.193]:54540 "EHLO smtp-4.sys.kth.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751890AbdK2ToP (ORCPT ); Wed, 29 Nov 2017 14:44:15 -0500 Received: from smtp-4.sys.kth.se (localhost.localdomain [127.0.0.1]) by smtp-4.sys.kth.se (Postfix) with ESMTP id 0F92B4CDB; Wed, 29 Nov 2017 20:44:14 +0100 (CET) X-Virus-Scanned: by amavisd-new at kth.se Received: from smtp-4.sys.kth.se ([127.0.0.1]) by smtp-4.sys.kth.se (smtp-4.sys.kth.se [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 5VeSXu7LQqDY; Wed, 29 Nov 2017 20:44:13 +0100 (CET) X-KTH-Auth: niso [89.233.230.99] X-KTH-mail-from: niklas.soderlund+renesas@ragnatech.se Received: from bismarck.berto.se (89-233-230-99.cust.bredband2.com [89.233.230.99]) by smtp-4.sys.kth.se (Postfix) with ESMTPSA id 0B16C4D82; Wed, 29 Nov 2017 20:44:12 +0100 (CET) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: Laurent Pinchart , Hans Verkuil , linux-media@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, tomoharu.fukawa.eb@renesas.com, Kieran Bingham , =?utf-8?q?Niklas_S?= =?utf-8?b?w7ZkZXJsdW5k?= , Rob Herring , devicetree@vger.kernel.org Subject: [PATCH v8 27/28] rcar-vin: enable support for r8a7796 Date: Wed, 29 Nov 2017 20:43:41 +0100 Message-Id: <20171129194342.26239-28-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171129194342.26239-1-niklas.soderlund+renesas@ragnatech.se> References: <20171129194342.26239-1-niklas.soderlund+renesas@ragnatech.se> MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add the SoC specific information for Renesas r8a7796. Signed-off-by: Niklas Söderlund Reviewed-by: Hans Verkuil Acked-by: Rob Herring --- .../devicetree/bindings/media/rcar_vin.txt | 1 + drivers/media/platform/rcar-vin/rcar-core.c | 64 ++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/Documentation/devicetree/bindings/media/rcar_vin.txt b/Documentation/devicetree/bindings/media/rcar_vin.txt index 5a95d9668d2c7dfd..314743532bbb4523 100644 --- a/Documentation/devicetree/bindings/media/rcar_vin.txt +++ b/Documentation/devicetree/bindings/media/rcar_vin.txt @@ -20,6 +20,7 @@ on Gen3 to a CSI-2 receiver. - "renesas,vin-r8a7793" for the R8A7793 device - "renesas,vin-r8a7794" for the R8A7794 device - "renesas,vin-r8a7795" for the R8A7795 device + - "renesas,vin-r8a7796" for the R8A7796 device - "renesas,rcar-gen2-vin" for a generic R-Car Gen2 or RZ/G1 compatible device. - "renesas,rcar-gen3-vin" for a generic R-Car Gen3 compatible device. diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c index 9da5aff33fd224f2..62eb89b36fbb2ee1 100644 --- a/drivers/media/platform/rcar-vin/rcar-core.c +++ b/drivers/media/platform/rcar-vin/rcar-core.c @@ -1085,6 +1085,66 @@ static const struct rvin_info rcar_info_r8a7795es1 = { }, }; +static const struct rvin_info rcar_info_r8a7796 = { + .chip = RCAR_GEN3, + .use_mc = true, + .max_width = 4096, + .max_height = 4096, + + .num_chsels = 5, + .chsels = { + { + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI20, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI20, .chan = 0 }, + }, { + { .csi = RVIN_CSI20, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 1 }, + { .csi = RVIN_CSI20, .chan = 1 }, + }, { + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI20, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 2 }, + { .csi = RVIN_CSI20, .chan = 2 }, + }, { + { .csi = RVIN_CSI40, .chan = 1 }, + { .csi = RVIN_CSI20, .chan = 1 }, + { .csi = RVIN_NC, .chan = 1 }, + { .csi = RVIN_CSI40, .chan = 3 }, + { .csi = RVIN_CSI20, .chan = 3 }, + }, { + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI20, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI20, .chan = 0 }, + }, { + { .csi = RVIN_CSI20, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 1 }, + { .csi = RVIN_CSI20, .chan = 1 }, + }, { + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI20, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 2 }, + { .csi = RVIN_CSI20, .chan = 2 }, + }, { + { .csi = RVIN_CSI40, .chan = 1 }, + { .csi = RVIN_CSI20, .chan = 1 }, + { .csi = RVIN_NC, .chan = 1 }, + { .csi = RVIN_CSI40, .chan = 3 }, + { .csi = RVIN_CSI20, .chan = 3 }, + }, + }, +}; + static const struct of_device_id rvin_of_id_table[] = { { .compatible = "renesas,vin-r8a7778", @@ -1118,6 +1178,10 @@ static const struct of_device_id rvin_of_id_table[] = { .compatible = "renesas,vin-r8a7795", .data = &rcar_info_r8a7795, }, + { + .compatible = "renesas,vin-r8a7796", + .data = &rcar_info_r8a7796, + }, { }, }; MODULE_DEVICE_TABLE(of, rvin_of_id_table); From patchwork Wed Nov 29 19:43:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 842706 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yn9wC5Y16z9s84 for ; Thu, 30 Nov 2017 06:44:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752748AbdK2ToR (ORCPT ); Wed, 29 Nov 2017 14:44:17 -0500 Received: from smtp-4.sys.kth.se ([130.237.48.193]:54530 "EHLO smtp-4.sys.kth.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752743AbdK2ToQ (ORCPT ); Wed, 29 Nov 2017 14:44:16 -0500 Received: from smtp-4.sys.kth.se (localhost.localdomain [127.0.0.1]) by smtp-4.sys.kth.se (Postfix) with ESMTP id 76C024BF6; Wed, 29 Nov 2017 20:44:14 +0100 (CET) X-Virus-Scanned: by amavisd-new at kth.se Received: from smtp-4.sys.kth.se ([127.0.0.1]) by smtp-4.sys.kth.se (smtp-4.sys.kth.se [127.0.0.1]) (amavisd-new, port 10024) with LMTP id C8OAwE0KjhNN; Wed, 29 Nov 2017 20:44:13 +0100 (CET) X-KTH-Auth: niso [89.233.230.99] X-KTH-mail-from: niklas.soderlund+renesas@ragnatech.se Received: from bismarck.berto.se (89-233-230-99.cust.bredband2.com [89.233.230.99]) by smtp-4.sys.kth.se (Postfix) with ESMTPSA id 7BB7C4C5C; Wed, 29 Nov 2017 20:44:13 +0100 (CET) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: Laurent Pinchart , Hans Verkuil , linux-media@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, tomoharu.fukawa.eb@renesas.com, Kieran Bingham , =?utf-8?q?Niklas_S?= =?utf-8?b?w7ZkZXJsdW5k?= , Rob Herring , devicetree@vger.kernel.org Subject: [PATCH v8 28/28] rcar-vin: enable support for r8a77970 Date: Wed, 29 Nov 2017 20:43:42 +0100 Message-Id: <20171129194342.26239-29-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171129194342.26239-1-niklas.soderlund+renesas@ragnatech.se> References: <20171129194342.26239-1-niklas.soderlund+renesas@ragnatech.se> MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Add the SoC specific information for Renesas r8a77970. Signed-off-by: Niklas Söderlund Tested-by: Kieran Bingham Acked-by: Rob Herring Reviewed-by: Hans Verkuil --- .../devicetree/bindings/media/rcar_vin.txt | 1 + drivers/media/platform/rcar-vin/rcar-core.c | 40 ++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/Documentation/devicetree/bindings/media/rcar_vin.txt b/Documentation/devicetree/bindings/media/rcar_vin.txt index 314743532bbb4523..6b98f8a3398fa493 100644 --- a/Documentation/devicetree/bindings/media/rcar_vin.txt +++ b/Documentation/devicetree/bindings/media/rcar_vin.txt @@ -21,6 +21,7 @@ on Gen3 to a CSI-2 receiver. - "renesas,vin-r8a7794" for the R8A7794 device - "renesas,vin-r8a7795" for the R8A7795 device - "renesas,vin-r8a7796" for the R8A7796 device + - "renesas,vin-r8a77970" for the R8A77970 device - "renesas,rcar-gen2-vin" for a generic R-Car Gen2 or RZ/G1 compatible device. - "renesas,rcar-gen3-vin" for a generic R-Car Gen3 compatible device. diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c index 62eb89b36fbb2ee1..bbdf36b5c3c8178d 100644 --- a/drivers/media/platform/rcar-vin/rcar-core.c +++ b/drivers/media/platform/rcar-vin/rcar-core.c @@ -1145,6 +1145,42 @@ static const struct rvin_info rcar_info_r8a7796 = { }, }; +static const struct rvin_info rcar_info_r8a77970 = { + .chip = RCAR_GEN3, + .use_mc = true, + .max_width = 4096, + .max_height = 4096, + + .num_chsels = 5, + .chsels = { + { + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + }, { + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 1 }, + { .csi = RVIN_NC, .chan = 0 }, + }, { + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 2 }, + { .csi = RVIN_NC, .chan = 0 }, + }, { + { .csi = RVIN_CSI40, .chan = 1 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_NC, .chan = 0 }, + { .csi = RVIN_CSI40, .chan = 3 }, + { .csi = RVIN_NC, .chan = 0 }, + }, + }, +}; + static const struct of_device_id rvin_of_id_table[] = { { .compatible = "renesas,vin-r8a7778", @@ -1182,6 +1218,10 @@ static const struct of_device_id rvin_of_id_table[] = { .compatible = "renesas,vin-r8a7796", .data = &rcar_info_r8a7796, }, + { + .compatible = "renesas,vin-r8a77970", + .data = &rcar_info_r8a77970, + }, { }, }; MODULE_DEVICE_TABLE(of, rvin_of_id_table);