Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1940302pxb; Sat, 22 Jan 2022 10:40:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJwa7o+hbc/zrt9Coy9uX542go+aSLdlcMh0ggGR+HEv3tLb1thF94Wtod2eI72UTllN2xS1 X-Received: by 2002:a63:6a09:: with SMTP id f9mr6603464pgc.533.1642876809392; Sat, 22 Jan 2022 10:40:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642876809; cv=none; d=google.com; s=arc-20160816; b=tQ5D4df23HhLlTjazRDuZ1Ef8nnSIkvWP41dY4XZoFTMhggjpzOpEg70UhzgdVlcQ2 hKUJ74t9bZ6lvswtZXtuggUMZvKtOU11Topbjt2er33FoEEWjdWGpnOg6F/Ct8mW3mBM gyrribcyl27fMRKjz4gEaZcWiEFpMWd5Ulizt3SwYr4tzlgtfKB8cUJPyQMMoUJGXgsB NJVgQ5spGXc0ETAl0Na/kcBR1/LMQMartQMg4dEW0wraDvaGg3Om/nRvDB9qaUnBb3Yv 0IoHnfYoKmiuewMKu0se6UiQciUai+oRUgQCt7vF7rjNay6txxIczthlbgocU/2IJYJH FkQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=eADYDHUaB/xG36S7sQKGPpEqIIAxnN08uQ2IqfPFwak=; b=g0gtRVY+AxfG14l08Mae81jjwFpszXNCbImDnc5KxrnHU3F+q0e40FVNk06FJ0nbv3 LaGUEI6YgAw8mAbLaM7LyLjyn9CqagTIJOEsuWwFrDGMT3nWqUnnZ2VsQ67diz7U6Pk9 Cwr3zc1Nw7+Rg6dQ6daSzJwl1E4M15HmjAEcDL6EQcUbwPLFNfWiY8oQoZbedECd3rei LKoIbW7ClHnZqdo0W/abwX1GXGtWCK5JtYuGNcz8Zgo3iYsA7+R3Hs0H8qZPI6079dz2 vSenFKrr9twq2aLu2tq1UCrAZv/Il7JEiVnImtqKV5omsGoWxQKJTCwJ1ZLqH7nc5XeR abVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=r8xmmdsC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j5si8677314pll.469.2022.01.22.10.39.57; Sat, 22 Jan 2022 10:40:09 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=r8xmmdsC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229628AbiAUX2I (ORCPT + 99 others); Fri, 21 Jan 2022 18:28:08 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:55754 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229502AbiAUX2H (ORCPT ); Fri, 21 Jan 2022 18:28:07 -0500 Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 89CB3E51; Sat, 22 Jan 2022 00:28:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1642807685; bh=WBsVLZLHVoz+Srdhcn8MwEJ8reYksppYcP6TQmVP9AA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=r8xmmdsCQ7Y7+7qNuDh5sUuslgpi9UD/ovQS3MS1y1wRuY2/9Z3DNfDBVvi5qeibW GLZGLMUeEesIAQFrNWFTAkNBoY9WyhMg5NT8K+OkGHrNLupOoAp7CeH0ToKPTL6dpC x2T3Kn5fXCcO4yJ2msyU+1gxm7JHSUBn8ltTrjds= Date: Sat, 22 Jan 2022 01:27:49 +0200 From: Laurent Pinchart To: Jean-Michel Hautbois Cc: dave.stevenson@raspberrypi.com, devicetree@vger.kernel.org, kernel-list@raspberrypi.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, lukasz@jany.st, mchehab@kernel.org, naush@raspberrypi.com, robh@kernel.org, tomi.valkeinen@ideasonboard.com Subject: Re: [RFC PATCH v2 3/7] media: dt-bindings: media: Add bindings for bcm2835-unicam Message-ID: References: <20220121081810.155500-1-jeanmichel.hautbois@ideasonboard.com> <20220121081810.155500-4-jeanmichel.hautbois@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220121081810.155500-4-jeanmichel.hautbois@ideasonboard.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jean-Michel, Thank you for the patch. On Fri, Jan 21, 2022 at 09:18:06AM +0100, Jean-Michel Hautbois wrote: > Introduce the dt-bindinds documentation for bcm2835 CCP2/CSI2 camera s/bindinds/bindings/ I'd mention "Unicam" somewhere here. > interface. Also add a MAINTAINERS entry for it. > > Signed-off-by: Dave Stevenson > Signed-off-by: Naushir Patuck > Signed-off-by: Jean-Michel Hautbois > --- > Dave: I assumed you were the maintainer for this file, as I based it on the > bcm2835-unicam.txt file. Are you happy to be added directly as the > maintainer, or should this be specified as "Raspberry Pi Kernel > Maintenance " > - in v2: multiple corrections to pass the bot checking as Rob kindly > told me. > --- > .../bindings/media/brcm,bcm2835-unicam.yaml | 103 ++++++++++++++++++ > MAINTAINERS | 6 + > 2 files changed, 109 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml > > diff --git a/Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml b/Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml > new file mode 100644 > index 000000000000..1427514142cf > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml > @@ -0,0 +1,103 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/brcm,bcm2835-unicam.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Broadcom BCM283x Camera Interface (Unicam) > + > +maintainers: > + - Dave Stevenson > + > +description: |- > + 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. As mentioned in the review of the DT integration, the nodes should ideally be called just "csi", not "csi0" and "csi1" (maybe Rob could confirm this ?). Dave, is there a way the firmware could be updated to also hand over control of the Unicam instances to Linux when a "csi" node is found, not just "csi0" or "csi1" ? Given that the node names are significant, they should be enforced in the YAML schema. > + > +properties: > + compatible: > + const: brcm,bcm2835-unicam > + > + reg: > + description: > + physical base address and length of the register sets for the device. This can be dropped. > + maxItems: 1 There are two items in the example below. How does this validate ? > + > + interrupts: > + description: the IRQ line for this Unicam instance. This can be dropped. > + maxItems: 1 > + > + clocks: > + description: |- > + list of clock specifiers, corresponding to entries in clock-names > + property. clocks: items: - description: The clock for ... - description: The clock for ... (with the two descriptions matching the LP and VPU clocks, I don't know what they are). > + > + clock-names: > + items: > + - const: lp > + - const: vpu > + > + port: > + $ref: /schemas/graph.yaml#/properties/port > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - port > + > +additionalProperties: False > + > +examples: > + - | > + csi1: csi1@7e801000 { > + compatible = "brcm,bcm2835-unicam"; > + reg = <0x7e801000 0x800>, > + <0x7e802004 0x4>; > + interrupts = <2 7>; Let's use the Pi 4 device tree as an example, as that's what we're upstreaming first. > + clocks = <&clocks BCM2835_CLOCK_CAM1>, This will fail to compile without a proper #include, did you get this to pass validation ? > + <&firmware_clocks 4>; > + clock-names = "lp", "vpu"; > + 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>; > + }; > + }; > + }; > + }; I'd drop this node completely. > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index 33f75892f98e..07f238fd5ff9 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -3679,6 +3679,12 @@ F: Documentation/media/v4l-drivers/bcm2835-isp.rst > F: drivers/staging/vc04_services/bcm2835-isp > F: include/uapi/linux/bcm2835-isp.h > > +BROADCOM BCM2835 CAMERA DRIVER > +M: Raspberry Pi Kernel Maintenance > +L: linux-media@vger.kernel.org > +S: Maintained > +F: Documentation/devicetree/bindings/media/brcm,bcm2835-unicam.yaml > + > BROADCOM BCM47XX MIPS ARCHITECTURE > M: Hauke Mehrtens > M: Rafał Miłecki -- Regards, Laurent Pinchart