From patchwork Wed Sep 20 16:07:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dave Stevenson X-Patchwork-Id: 44334 X-Patchwork-Delegate: hverkuil@xs4all.nl Received: from vger.kernel.org ([209.132.180.67]) by www.linuxtv.org with esmtp (Exim 4.84_2) (envelope-from ) id 1duhYO-0002tc-Cz; Wed, 20 Sep 2017 16:08:48 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751813AbdITQIq (ORCPT + 1 other); Wed, 20 Sep 2017 12:08:46 -0400 Received: from mx08-00252a01.pphosted.com ([91.207.212.211]:41826 "EHLO mx08-00252a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751683AbdITQIo (ORCPT ); Wed, 20 Sep 2017 12:08:44 -0400 Received: from pps.filterd (m0102629.ppops.net [127.0.0.1]) by mx08-00252a01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id v8KG8WDf006761 for ; Wed, 20 Sep 2017 17:08:43 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.org; h=from : to : cc : subject : date : message-id : in-reply-to : references : in-reply-to : references; s=pp; bh=lfPIlJ03XB/Fn5G9rnrHV4Fk11TTZiWkqgzo7w6fKow=; b=tEp7RHBg00CFxsF8GoARBHQ6Cs/nse0/I0ZrM+GhQ7UkFb5hkHMYk8zt1OSNxb9BycFm F7up4XRQ2PT33ALEcpkR7Z5iIYk3xvlqIFhv4a9Y9Z+/25kXzzT/pw4ltx7wAtYQIJzq RxlcvQQl6whGshnUJzBQIa4Q0iEI9xzjG5sOvgVp93nFp2nLK6B8/AcYDjqe694t0cek rdZnlTQ/+/cLMhWpXpKVrwui0PmEOwqdStv8Bb7+y1Wj9/2wIY59QgZtimDojIsEGTPb o7nLCL7Bw5CkpOrOuBSe9lgSiB0Tss97x3KyuPh+zpVRn7GqSI+5rsjw+uwKnZqnZVYL yQ== Received: from mail-wm0-f69.google.com (mail-wm0-f69.google.com [74.125.82.69]) by mx08-00252a01.pphosted.com with ESMTP id 2d0reg260q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK) for ; Wed, 20 Sep 2017 17:08:43 +0100 Received: by mail-wm0-f69.google.com with SMTP id u138so3289718wmu.2 for ; Wed, 20 Sep 2017 09:08:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=lfPIlJ03XB/Fn5G9rnrHV4Fk11TTZiWkqgzo7w6fKow=; b=Lo7KzYzaEbMvrLg09oyz8vrEhl40nk/XkTB+j08XLzzJ8rJ1Y5R7iVCCVqZhNyQfBo 1bGP/xlX3hW8H0PJKjPVX2gBvP5wqvsp3LfwG5EvMYc8Y6xrjFqhS8YwlNNKApFO92UK QL5z0uck33mPKvBNdD2YApA7JNgm/mSCdkMuZrn2MK0l2VwDHfSXPOUzuDPnSypTfFzq JqGPQtZpu9jLCct73snJRu98WZ42kOUsE+6Ovk6+fJEyfVqp6kIZnurt14//H3SKAiQ6 b+aUMbfDLGj0zTHyrwItF3+5q5wDv5V3DPvpktnfxL77KY1zIARJZzJEmRY1sq0a6xOV tHUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=lfPIlJ03XB/Fn5G9rnrHV4Fk11TTZiWkqgzo7w6fKow=; b=Czy79xA+NKrVfI6ICWbFOhEQ6V7bG4u200SMbAPFshLMK1t7JYVLk908mWP7zBHxog QD4ngoDv822ymZvuHAkLxmAUqDuPrdF+wvuM8fZCtSbDZywZaHxmWwcbyXYGXP368RnR W9a8W7XK3dmqeJdomo+Z6B+e8+TAb+tv+fWvKsF2I83Fyk57xhezziFEcrCraa09rytp 40WT0xTVAN4pAQ6+CEf+kcuBIXJptzs29RhqfhjiWXBk5pYXQqYxRnj1NAyWixbZDHaS g6YmXabQ4sLeo8Vtkla6RFFbY5BNf1Kw1Cx2/MrxAhtIpPlgDBjqDqucaIJzhlYOi9mH cOBg== X-Gm-Message-State: AHPjjUh1DLghzGSNoPOQtgyDy5XxlUUEDMd2T66KkL+PIA7DisQ7fuhX xBA7tr3/ImxoieG1guYcP9ZotcgaJQLQz6xpJSnVuPRoShniOvCktA5yGA6nrqRIo5q+A1Y+0WE +dLO3e0rDTXCmBaRfYQWVIQ== X-Received: by 10.28.57.215 with SMTP id g206mr4756032wma.117.1505923723024; Wed, 20 Sep 2017 09:08:43 -0700 (PDT) X-Google-Smtp-Source: AOwi7QC8IC69gr2U9RLnDtpSIEG/wcnO7Cr7M1RQBkPwl6yhmeHONgn63qjZ8WgPaZA1Ab1SjrdpTg== X-Received: by 10.28.57.215 with SMTP id g206mr4756021wma.117.1505923722772; Wed, 20 Sep 2017 09:08:42 -0700 (PDT) Received: from dave-VirtualBox.pitowers.org ([217.33.127.173]) by smtp.googlemail.com with ESMTPSA id p15sm1937467wmi.2.2017.09.20.09.08.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Sep 2017 09:08:42 -0700 (PDT) From: Dave Stevenson To: Mauro Carvalho Chehab , Rob Herring , Hans Verkuil , Eric Anholt , Stefan Wahren , Sakari Ailus , linux-media@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, devicetree@vger.kernel.org Cc: Dave Stevenson Subject: [PATCH v3 2/4] [media] dt-bindings: Document BCM283x CSI2/CCP2 receiver Date: Wed, 20 Sep 2017 17:07:55 +0100 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: In-Reply-To: References: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-09-20_04:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709200217 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Document the DT bindings for the CSI2/CCP2 receiver peripheral (known as Unicam) on BCM283x SoCs. Signed-off-by: Dave Stevenson Acked-by: Rob Herring --- Changes since v2 - Removed all references to Linux drivers. - Reworded section about disabling the firmware driver. - Renamed clock from "lp_clock" to "lp" in description and example. - Referred to video-interfaces.txt and stated requirements on remote-endpoint and data-lanes. - Corrected typo in example from csi to csi1. - Removed unnecessary #address-cells and #size-cells in example. - Removed setting of status from the example. .../devicetree/bindings/media/bcm2835-unicam.txt | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/bcm2835-unicam.txt diff --git a/Documentation/devicetree/bindings/media/bcm2835-unicam.txt b/Documentation/devicetree/bindings/media/bcm2835-unicam.txt new file mode 100644 index 0000000..7714fb3 --- /dev/null +++ b/Documentation/devicetree/bindings/media/bcm2835-unicam.txt @@ -0,0 +1,85 @@ +Broadcom BCM283x Camera Interface (Unicam) +------------------------------------------ + +The Unicam block on BCM283x SoCs is the receiver for either +CSI-2 or CCP2 data from image sensors or similar devices. + +The main platform using this SoC is the Raspberry Pi family of boards. +On the Pi the VideoCore firmware can also control this hardware block, +and driving it from two different processors will cause issues. +To avoid this, the firmware checks the device tree configuration +during boot. If it finds device tree nodes called csi0 or csi1 then +it will stop the firmware accessing the block, and it can then +safely be used via the device tree binding. + +Required properties: +=================== +- compatible : must be "brcm,bcm2835-unicam". +- reg : physical base address and length of the register sets for the + device. +- interrupts : should contain the IRQ line for this Unicam instance. +- clocks : list of clock specifiers, corresponding to entries in + clock-names property. +- clock-names : must contain an "lp" entry, matching entries in the + clocks property. + +Unicam supports a single port node. It should contain one 'port' child node +with child 'endpoint' node. Please refer to the bindings defined in +Documentation/devicetree/bindings/media/video-interfaces.txt. + +Within the endpoint node the "remote-endpoint" and "data-lanes" properties +are mandatory. +Data lane reordering is not supported so the data lanes must be in order, +starting at 1. The number of data lanes should represent the number of +usable lanes for the hardware block. That may be limited by either the SoC or +how the platform presents the interface, and the lower value must be used. + +Lane reordering is not supported on the clock lane either, so the optional +property "clock-lane" will implicitly be <0>. +Similarly lane inversion is not supported, therefore "lane-polarities" will +implicitly be <0 0 0 0 0>. +Neither of these values will be checked. + +Example: + csi1: csi1@7e801000 { + compatible = "brcm,bcm2835-unicam"; + reg = <0x7e801000 0x800>, + <0x7e802004 0x4>; + interrupts = <2 7>; + clocks = <&clocks BCM2835_CLOCK_CAM1>; + clock-names = "lp"; + + port { + csi1_ep: endpoint { + remote-endpoint = <&tc358743_0>; + data-lanes = <1 2>; + }; + }; + }; + + i2c0: i2c@7e205000 { + tc358743: csi-hdmi-bridge@0f { + compatible = "toshiba,tc358743"; + reg = <0x0f>; + + clocks = <&tc358743_clk>; + clock-names = "refclk"; + + tc358743_clk: bridge-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <27000000>; + }; + + port { + tc358743_0: endpoint { + remote-endpoint = <&csi1_ep>; + clock-lanes = <0>; + data-lanes = <1 2>; + clock-noncontinuous; + link-frequencies = + /bits/ 64 <297000000>; + }; + }; + }; + };