From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 791E4C282CE for ; Mon, 8 Apr 2019 16:59:01 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4828A217F4 for ; Mon, 8 Apr 2019 16:59:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="o5juP76r" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4828A217F4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LSBG50U1JPoaDaBmaWuquuh/6c2vb9kxDHfZALNInT0=; b=o5juP76rOus6GQ Kbq3tqy1TAnkVwCF0Ldgj2cE2p7/b0d8BrJm+GHftsMu/b4/RwWh7yuuUxNTKcZsm9VejHtELAoy/ O+t32/0s1iVOod0ofL+lbyy2DGBUx+La1z/6cHX38OKEDoCk/Yhm2tPRtCwFWp6jHLt8XEkHwiRu8 QfvleD9z8q2H+YFfGxFb9ZNPWchRogATzXFTy1Rr+Uk7lCQ+1e6kUcCx2f5ibC3zxgrJRpfwWfAmz AjUi5UKXQ0QkgArInKotcTyAJTTbCy6zUTDs2WqW8IoIBrMKHqoUMigmW2COtpXDzd8ZrR9tPUexH Vt+R6+MFrGfZcPDlabsA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hDXbj-00060X-K0; Mon, 08 Apr 2019 16:58:55 +0000 Received: from mirror2.csie.ntu.edu.tw ([140.112.30.76] helo=wens.csie.org) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hDXam-0004fs-CY for linux-arm-kernel@lists.infradead.org; Mon, 08 Apr 2019 16:57:59 +0000 Received: by wens.csie.org (Postfix, from userid 1000) id D8C1E5FD85; Tue, 9 Apr 2019 00:57:46 +0800 (CST) From: Chen-Yu Tsai To: Maxime Ripard , Michael Turquette , Stephen Boyd , Rob Herring , Mark Rutland , Yong Deng , Mauro Carvalho Chehab Subject: [PATCH 6/6] [DO NOT MERGE] ARM: dts: sun8i: a83t: bananapi-m3: Enable BPI OV5640 camera Date: Tue, 9 Apr 2019 00:57:44 +0800 Message-Id: <20190408165744.11672-7-wens@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190408165744.11672-1-wens@kernel.org> References: <20190408165744.11672-1-wens@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190408_095756_975423_8B4929BE X-CRM114-Status: GOOD ( 13.21 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Kocialkowski , Chen-Yu Tsai , linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Chen-Yu Tsai Bananapi produces a camera module specifically for the Bananapi M3. This module has an OV5640 sensor connected via the parallel CSI interface, and an OV8865 sensor connected via MIPI CSI. I2C2 is the shared control interface for them. The active-low reset signal is shared by the two sensors, while each sensor has a dedicated shutdown line. The module's onboard regulator provide power for the OV5640, while the Bananapi M3 provides power from the PMIC for the OV8865. There's also a VM149C voice coil motor driver at I2C address 0x0c, and an unknown device responding on I2C address 0x20. Both are related to the OV8655 at address 0x36. Since there is no support for the OV8865, this patch only enables the OV5640. Signed-off-by: Chen-Yu Tsai --- arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts | 101 +++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts index 838be7b3715f..11b27755207a 100644 --- a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts +++ b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts @@ -85,6 +85,33 @@ }; }; + reg_ov5640_avdd: ov5640-avdd { + compatible = "regulator-fixed"; + regulator-name = "ov5640-avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + /* dldo4 enables this regulator; real supply is PS */ + vin-supply = <®_dldo4>; + }; + + reg_ov5640_dovdd: ov5640-iovdd { + compatible = "regulator-fixed"; + regulator-name = "ov5640-dovdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + /* dldo4 enables this regulator; real supply is PS */ + vin-supply = <®_dldo4>; + }; + + reg_ov5640_dvdd: ov5640-dvdd { + compatible = "regulator-fixed"; + regulator-name = "ov5640-dvdd"; + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <1500000>; + /* dldo4 enables this regulator; real supply is PS */ + vin-supply = <®_dldo4>; + }; + reg_usb1_vbus: reg-usb1-vbus { compatible = "regulator-fixed"; regulator-name = "usb1-vbus"; @@ -115,6 +142,30 @@ cpu-supply = <®_dcdc3>; }; +&ccu { + /* Use a stable clock source with known fixed rate for MCLK */ + assigned-clocks = <&ccu CLK_CSI_MCLK>; + assigned-clock-parents = <&osc24M>; + assigned-clock-rates = <24000000>; +}; + +&csi { + pinctrl-names = "default"; + pinctrl-0 = <&csi_8bit_parallel_pins>; + status = "okay"; +}; + +&csi_in { + csi_from_ov5640: endpoint { + remote-endpoint = <&ov5640_to_csi>; + bus-width = <8>; + data-shift = <2>; + hsync-active = <1>; /* Active high */ + vsync-active = <1>; /* Active high */ + pclk-sample = <1>; /* Rising */ + }; +}; + &de { status = "okay"; }; @@ -147,6 +198,36 @@ }; }; +&i2c2 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c2_pe_pins>; + status = "okay"; + + ov5640: camera@3c { + compatible = "ovti,ov5640"; + reg = <0x3c>; + clocks = <&ccu CLK_CSI_MCLK>; + clock-names = "xclk"; + AVDD-supply = <®_ov5640_avdd>; + DOVDD-supply = <®_ov5640_dovdd>; + DVDD-supply = <®_ov5640_dvdd>; + powerdown-gpios = <&pio 3 15 GPIO_ACTIVE_HIGH>; /* PD15 */ + reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */ + rotation = <180>; + + port { + ov5640_to_csi: endpoint { + remote-endpoint = <&csi_from_ov5640>; + bus-width = <8>; + data-shift = <2>; + hsync-active = <1>; /* Active high */ + vsync-active = <1>; /* Active high */ + pclk-sample = <1>; /* Rising */ + }; + }; + }; +}; + &mdio { rgmii_phy: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; @@ -191,6 +272,12 @@ status = "okay"; }; +&pio { + /* pinctrl hog: MCLK is shared by both camera sensors */ + pinctrl-names = "default"; + pinctrl-0 = <&csi_mclk_pin>; +}; + &r_cir { clock-frequency = <3000000>; status = "okay"; @@ -327,11 +414,25 @@ regulator-name = "vcc-pd"; }; +®_dldo4 { + /* This also powers the pull-ups on the CSI connector */ + regulator-always-on; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-name = "avdd-csi"; +}; + ®_drivevbus { regulator-name = "usb0-vbus"; status = "okay"; }; +®_eldo1 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "dvdd-csi-r"; +}; + ®_fldo1 { regulator-min-microvolt = <1080000>; regulator-max-microvolt = <1320000>; -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel