From patchwork Mon Apr 6 16:42:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lad Prabhakar X-Patchwork-Id: 11475847 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2DDF9913 for ; Mon, 6 Apr 2020 16:43:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1729524984 for ; Mon, 6 Apr 2020 16:43:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729576AbgDFQm7 (ORCPT ); Mon, 6 Apr 2020 12:42:59 -0400 Received: from relmlor2.renesas.com ([210.160.252.172]:31608 "EHLO relmlie6.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729416AbgDFQm7 (ORCPT ); Mon, 6 Apr 2020 12:42:59 -0400 X-IronPort-AV: E=Sophos;i="5.72,351,1580742000"; d="scan'208";a="43643794" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie6.idc.renesas.com with ESMTP; 07 Apr 2020 01:42:58 +0900 Received: from localhost.localdomain (unknown [10.226.36.204]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id F374C40061B6; Tue, 7 Apr 2020 01:42:54 +0900 (JST) From: Lad Prabhakar To: Laurent Pinchart , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Kieran Bingham Cc: Geert Uytterhoeven , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Lad Prabhakar , Lad Prabhakar Subject: [PATCH v5 1/5] media: dt-bindings: media: i2c: Deprecate usage of the clock-frequency property Date: Mon, 6 Apr 2020 17:42:37 +0100 Message-Id: <1586191361-16598-2-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org OV5645 sensor supports input clock frequency ranging from 6MHz to 27MHz but the driver strictly expects this to be 24MHz (with tolerance of 1%) with this restrictions let the driver enforce the clock frequency internally to 24MHz rather then being passed as dt-property. Signed-off-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Reviewed-by: Geert Uytterhoeven --- Documentation/devicetree/bindings/media/i2c/ov5645.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt b/Documentation/devicetree/bindings/media/i2c/ov5645.txt index 72ad992f77be..a55bb728ea48 100644 --- a/Documentation/devicetree/bindings/media/i2c/ov5645.txt +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt @@ -8,7 +8,6 @@ Required Properties: - compatible: Value should be "ovti,ov5645". - clocks: Reference to the xclk clock. - clock-names: Should be "xclk". -- clock-frequency: Frequency of the xclk clock. - enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds to the hardware pin PWDNB which is physically active low. - reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW. This corresponds to @@ -37,7 +36,6 @@ Example: clocks = <&clks 200>; clock-names = "xclk"; - clock-frequency = <24000000>; vdddo-supply = <&camera_dovdd_1v8>; vdda-supply = <&camera_avdd_2v8>; From patchwork Mon Apr 6 16:42:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lad Prabhakar X-Patchwork-Id: 11475851 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 14B4A913 for ; Mon, 6 Apr 2020 16:43:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F274E24984 for ; Mon, 6 Apr 2020 16:43:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729706AbgDFQnE (ORCPT ); Mon, 6 Apr 2020 12:43:04 -0400 Received: from relmlor2.renesas.com ([210.160.252.172]:31608 "EHLO relmlie6.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729486AbgDFQnE (ORCPT ); Mon, 6 Apr 2020 12:43:04 -0400 X-IronPort-AV: E=Sophos;i="5.72,351,1580742000"; d="scan'208";a="43643811" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie6.idc.renesas.com with ESMTP; 07 Apr 2020 01:43:03 +0900 Received: from localhost.localdomain (unknown [10.226.36.204]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id 5950540065D4; Tue, 7 Apr 2020 01:42:59 +0900 (JST) From: Lad Prabhakar To: Laurent Pinchart , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Kieran Bingham Cc: Geert Uytterhoeven , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Lad Prabhakar , Lad Prabhakar Subject: [PATCH v5 2/5] media: i2c: ov5645: Drop reading clock-frequency dt-property Date: Mon, 6 Apr 2020 17:42:38 +0100 Message-Id: <1586191361-16598-3-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Modes in the driver are based on xvclk frequency fixed to 24MHz, but where as the OV5645 sensor can support the xvclk frequency ranging from 6MHz to 24MHz. So instead making clock-frequency as dt-property just let the driver enforce the required clock frequency. Signed-off-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Reviewed-by: Geert Uytterhoeven --- drivers/media/i2c/ov5645.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c index a6c17d15d754..52848fff8a08 100644 --- a/drivers/media/i2c/ov5645.c +++ b/drivers/media/i2c/ov5645.c @@ -61,6 +61,8 @@ #define OV5645_SDE_SAT_U 0x5583 #define OV5645_SDE_SAT_V 0x5584 +#define OV5645_XVCLK_FREQ 24000000 + /* regulator supplies */ static const char * const ov5645_supply_name[] = { "vdddo", /* Digital I/O (1.8V) supply */ @@ -1094,25 +1096,19 @@ static int ov5645_probe(struct i2c_client *client) return PTR_ERR(ov5645->xclk); } - ret = of_property_read_u32(dev->of_node, "clock-frequency", &xclk_freq); + ret = clk_set_rate(ov5645->xclk, OV5645_XVCLK_FREQ); if (ret) { - dev_err(dev, "could not get xclk frequency\n"); + dev_err(dev, "could not set xclk frequency\n"); return ret; } - /* external clock must be 24MHz, allow 1% tolerance */ + xclk_freq = clk_get_rate(ov5645->xclk); if (xclk_freq < 23760000 || xclk_freq > 24240000) { dev_err(dev, "external clock frequency %u is not supported\n", xclk_freq); return -EINVAL; } - ret = clk_set_rate(ov5645->xclk, xclk_freq); - if (ret) { - dev_err(dev, "could not set xclk frequency\n"); - return ret; - } - for (i = 0; i < OV5645_NUM_SUPPLIES; i++) ov5645->supplies[i].supply = ov5645_supply_name[i]; From patchwork Mon Apr 6 16:42:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lad Prabhakar X-Patchwork-Id: 11475855 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AEA6D913 for ; Mon, 6 Apr 2020 16:43:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 96C2F24984 for ; Mon, 6 Apr 2020 16:43:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729719AbgDFQnK (ORCPT ); Mon, 6 Apr 2020 12:43:10 -0400 Received: from relmlor1.renesas.com ([210.160.252.171]:30273 "EHLO relmlie5.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729534AbgDFQnK (ORCPT ); Mon, 6 Apr 2020 12:43:10 -0400 X-IronPort-AV: E=Sophos;i="5.72,351,1580742000"; d="scan'208";a="43857558" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie5.idc.renesas.com with ESMTP; 07 Apr 2020 01:43:07 +0900 Received: from localhost.localdomain (unknown [10.226.36.204]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id C2C8C40061B6; Tue, 7 Apr 2020 01:43:03 +0900 (JST) From: Lad Prabhakar To: Laurent Pinchart , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Kieran Bingham Cc: Geert Uytterhoeven , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Lad Prabhakar , Lad Prabhakar Subject: [PATCH v5 3/5] media: i2c: ov5645: Turn probe error into warning for xvclk frequency mismatch Date: Mon, 6 Apr 2020 17:42:39 +0100 Message-Id: <1586191361-16598-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org PLL's on platforms might not be so accurate enough to generate the required clock frequency, so instead of erroring out on xvlck frequency mismatch just warn the user and continue ahead in probe. Signed-off-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Reviewed-by: Geert Uytterhoeven --- drivers/media/i2c/ov5645.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c index 52848fff8a08..314760349adf 100644 --- a/drivers/media/i2c/ov5645.c +++ b/drivers/media/i2c/ov5645.c @@ -1103,11 +1103,8 @@ static int ov5645_probe(struct i2c_client *client) } /* external clock must be 24MHz, allow 1% tolerance */ xclk_freq = clk_get_rate(ov5645->xclk); - if (xclk_freq < 23760000 || xclk_freq > 24240000) { - dev_err(dev, "external clock frequency %u is not supported\n", - xclk_freq); - return -EINVAL; - } + if (xclk_freq < 23760000 || xclk_freq > 24240000) + dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n"); for (i = 0; i < OV5645_NUM_SUPPLIES; i++) ov5645->supplies[i].supply = ov5645_supply_name[i]; From patchwork Mon Apr 6 16:42:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lad Prabhakar X-Patchwork-Id: 11475857 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F0384913 for ; Mon, 6 Apr 2020 16:43:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D7F0624998 for ; Mon, 6 Apr 2020 16:43:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729731AbgDFQnN (ORCPT ); Mon, 6 Apr 2020 12:43:13 -0400 Received: from relmlor2.renesas.com ([210.160.252.172]:5338 "EHLO relmlie6.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729609AbgDFQnN (ORCPT ); Mon, 6 Apr 2020 12:43:13 -0400 X-IronPort-AV: E=Sophos;i="5.72,351,1580742000"; d="scan'208";a="43643842" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie6.idc.renesas.com with ESMTP; 07 Apr 2020 01:43:12 +0900 Received: from localhost.localdomain (unknown [10.226.36.204]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id 2A4A54006CD9; Tue, 7 Apr 2020 01:43:07 +0900 (JST) From: Lad Prabhakar To: Laurent Pinchart , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Kieran Bingham Cc: Geert Uytterhoeven , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Lad Prabhakar , Lad Prabhakar Subject: [PATCH v5 4/5] ARM: dts: imx6qdl-wandboard: Drop clock-frequency property from ov5645 node Date: Mon, 6 Apr 2020 17:42:40 +0100 Message-Id: <1586191361-16598-5-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org clock-frequency property has been deprecated in ov5645 binding. This patch makes sure it matches the bindings by dropping clock-frequency property from ov5645 node. Signed-off-by: Lad Prabhakar Reviewed-by: Laurent Pinchart --- arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi index c070893c509e..fa01cad65335 100644 --- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi @@ -126,7 +126,6 @@ reg = <0x3c>; clocks = <&clks IMX6QDL_CLK_CKO2>; clock-names = "xclk"; - clock-frequency = <24000000>; vdddo-supply = <®_1p8v>; vdda-supply = <®_2p8v>; vddd-supply = <®_1p5v>; From patchwork Mon Apr 6 16:42:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lad Prabhakar X-Patchwork-Id: 11475859 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 17B0B913 for ; Mon, 6 Apr 2020 16:43:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E9E472499B for ; Mon, 6 Apr 2020 16:43:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729738AbgDFQnS (ORCPT ); Mon, 6 Apr 2020 12:43:18 -0400 Received: from relmlor1.renesas.com ([210.160.252.171]:57420 "EHLO relmlie5.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729533AbgDFQnR (ORCPT ); Mon, 6 Apr 2020 12:43:17 -0400 X-IronPort-AV: E=Sophos;i="5.72,351,1580742000"; d="scan'208";a="43857586" Received: from unknown (HELO relmlir5.idc.renesas.com) ([10.200.68.151]) by relmlie5.idc.renesas.com with ESMTP; 07 Apr 2020 01:43:16 +0900 Received: from localhost.localdomain (unknown [10.226.36.204]) by relmlir5.idc.renesas.com (Postfix) with ESMTP id 8C21240065D4; Tue, 7 Apr 2020 01:43:12 +0900 (JST) From: Lad Prabhakar To: Laurent Pinchart , Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Kieran Bingham Cc: Geert Uytterhoeven , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Lad Prabhakar , Lad Prabhakar Subject: [PATCH v5 5/5] media: dt-bindings: media: i2c: convert ov5645 bindings to json-schema Date: Mon, 6 Apr 2020 17:42:41 +0100 Message-Id: <1586191361-16598-6-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <1586191361-16598-1-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Convert ov5645 bindings to json-schema. Signed-off-by: Lad Prabhakar --- .../devicetree/bindings/media/i2c/ov5645.txt | 52 -------- .../devicetree/bindings/media/i2c/ov5645.yaml | 126 ++++++++++++++++++ 2 files changed, 126 insertions(+), 52 deletions(-) delete mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.yaml diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt b/Documentation/devicetree/bindings/media/i2c/ov5645.txt deleted file mode 100644 index a55bb728ea48..000000000000 --- a/Documentation/devicetree/bindings/media/i2c/ov5645.txt +++ /dev/null @@ -1,52 +0,0 @@ -* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor - -The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor with -an active array size of 2592H x 1944V. It is programmable through a serial I2C -interface. - -Required Properties: -- compatible: Value should be "ovti,ov5645". -- clocks: Reference to the xclk clock. -- clock-names: Should be "xclk". -- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds - to the hardware pin PWDNB which is physically active low. -- reset-gpios: Chip reset GPIO. Polarity is GPIO_ACTIVE_LOW. This corresponds to - the hardware pin RESETB. -- vdddo-supply: Chip digital IO regulator. -- vdda-supply: Chip analog regulator. -- vddd-supply: Chip digital core regulator. - -The device node must contain one 'port' child node for its digital output -video port, in accordance with the video interface bindings defined in -Documentation/devicetree/bindings/media/video-interfaces.txt. - -Example: - - &i2c1 { - ... - - ov5645: ov5645@3c { - compatible = "ovti,ov5645"; - reg = <0x3c>; - - enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; - reset-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>; - pinctrl-names = "default"; - pinctrl-0 = <&camera_rear_default>; - - clocks = <&clks 200>; - clock-names = "xclk"; - - vdddo-supply = <&camera_dovdd_1v8>; - vdda-supply = <&camera_avdd_2v8>; - vddd-supply = <&camera_dvdd_1v2>; - - port { - ov5645_ep: endpoint { - clock-lanes = <1>; - data-lanes = <0 2>; - remote-endpoint = <&csi0_ep>; - }; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.yaml b/Documentation/devicetree/bindings/media/i2c/ov5645.yaml new file mode 100644 index 000000000000..d5cdcf9a1c76 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.yaml @@ -0,0 +1,126 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/ov5645.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Omnivision 1/4-Inch 5MP CMOS Digital Image Sensor + +maintainers: + - Sakari Ailus + - Lad Prabhakar + +description: |- + The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor with + an active array size of 2592H x 1944V. It is programmable through a serial I2C + interface. + +properties: + compatible: + const: ovti,ov5645 + + reg: + description: I2C device address + maxItems: 1 + + clocks: + description: External clock frequency should range between 6MHz to 27MHz. + maxItems: 1 + + clock-names: + items: + - const: xclk + + enable-gpios: + description: |- + Chip enable GPIO. This corresponds to the hardware pin PWDNB which is + physically active low. + + reset-gpios: + description: Chip reset GPIO. This corresponds to the hardware pin RESETB. + + vdddo-supply: + description: Chip digital IO regulator. + + vdda-supply: + description: Chip analog regulator. + + vddd-supply: + description: Chip digital core regulator. + + # See ../video-interfaces.txt for more details + port: + type: object + properties: + endpoint: + type: object + + properties: + data-lanes: + description: |- + The sensor supports either one-lane, or two-lane operation. + For one-lane operation the property must be set to <1> and + for two-lane operation the property must be set to <1 2>. + items: + - const: 1 + - const: 2 + + clock-lanes: + description: + should be set to <0> (clock lane on hardware lane 0). + items: + - const: 0 + + remote-endpoint: true + + required: + - data-lanes + - clock-lanes + - remote-endpoint + + additionalProperties: false + + additionalProperties: false + +required: + - compatible + - reg + - clocks + - clock-names + - enable-gpios + - reset-gpios + - vdddo-supply + - vdda-supply + - vddd-supply + - port + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + ov5645: sensor@3c { + compatible = "ovti,ov5645"; + reg = <0x3c>; + clocks = <&ov5645_cl>; + clock-names = "xclk"; + enable-gpios = <&gpio1 6 /* GPIO_ACTIVE_HIGH */>; + reset-gpios = <&gpio5 20 /* GPIO_ACTIVE_LOW */>; + vdddo-supply = <&camera_dovdd_1v8>; + vdda-supply = <&camera_avdd_2v8>; + vddd-supply = <&camera_dvdd_1v2>; + + port { + ov5645_0: endpoint { + remote-endpoint = <&csi1_ep>; + clock-lanes = <0>; + data-lanes = <1 2>; + }; + }; + }; + }; + +...