Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp8468141rwb; Tue, 13 Dec 2022 06:48:02 -0800 (PST) X-Google-Smtp-Source: AA0mqf7F4xyOeMYDn2u9Ake8DzUAP66x956t5cXIzc1pKuRoPS60MTZ/ZFWTNd6wAs2eGvp/YX9x X-Received: by 2002:aa7:d885:0:b0:470:1897:d8c7 with SMTP id u5-20020aa7d885000000b004701897d8c7mr4890708edq.28.1670942882056; Tue, 13 Dec 2022 06:48:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670942882; cv=none; d=google.com; s=arc-20160816; b=pfPn4MlLML0v7+6gPIyg2Apr0p7GG2r0cAcxEnDvlniJRQIJz2bcK17it1AR5AEqvG gu/AmwXLzM7auLKdxxbvOIACBxsJ2w+iDm+CyOxcjEQmXhu7wEmvxXkDPu5IsbmUlHFA /vf++cxjz3BrN28y5oQBq+NMra319Le5ILC2M2vo8YoSQIf5luMAZHjKFRJyiBtjReld wieM/zQW8bDvr6TtKM2sQZshkfYMGwM5ePD2isuFJvrAKzLtAEpUO0BsUd0a2kENwCoY u7o6U8nMR597mJnCxli6blhgF2/GI6HerunySrxjj4cudTkp+m/8pI+cIoAPFYvoPQg1 KPrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=f7YmdD//HWjQlNiOvgKmnJb1cb0IZotl88s6tXTSJWg=; b=oNigWlDWDUHJv2sHBah4M0aFADz8LbGcg2mcTlk/3ot6JJE74WVZ1zeQe37x6GPAZa /HsFsrVanRcq5pdHbBiZ/xMmMkEiQn/f+Hl+VdPISFXGYHP4ShVlCFX3ie5qTQocKMQn 3/DDXWAxLUxuHEBB4ukCxjTXOcw/h2K2dReGSYC4ZrF5y089AXVk6AkZdvAvy6c6OmuJ UmnhGxPkyPhxF2Q9gJHsTxi6Y0QvyUq2N5+bhJR8z3Ixh7j+TRrnD7lVe6h2+xU/9lsZ lUGW9gvguf6SlkKA8TKRa+h/2LFCAeW9CZgbhPKCdd/lTfuWFq66g96Xcwd/9DsrbIrB Js0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=f8kZgNHl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m22-20020a056402431600b0046ff2b05f0csi4651494edc.354.2022.12.13.06.47.44; Tue, 13 Dec 2022 06:48:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=f8kZgNHl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235505AbiLMO0F (ORCPT + 73 others); Tue, 13 Dec 2022 09:26:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230061AbiLMO0D (ORCPT ); Tue, 13 Dec 2022 09:26:03 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 852F411C1C; Tue, 13 Dec 2022 06:26:01 -0800 (PST) Received: from [192.168.1.15] (91-154-32-225.elisa-laajakaista.fi [91.154.32.225]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id DE8FC7C5; Tue, 13 Dec 2022 15:25:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1670941558; bh=y6alB7XsPNlf71CeYriPi+VSoAIpXnaeIDC4C5kwU0c=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=f8kZgNHlkdcseP0gMb7WjCUISWUODSxN9rOa+f8Sp+zwImbzQORMdxPaqIYfW2FTX rlnX+SxHf4McM1zCyq11ifytHmyCDuxhPI7hkTulZGRPyBU6imTf97vNLy1iXn78Qh +YrVzO0/m3+U3rMgJKLDtqFSwwc0BbjBSQE2UADU= Message-ID: <99372b9d-2050-2040-6b29-a1939c2e0c95@ideasonboard.com> Date: Tue, 13 Dec 2022 16:25:46 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v5 5/8] dt-bindings: media: add bindings for TI DS90UB960 Content-Language: en-US To: Laurent Pinchart Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , Wolfram Sang , Luca Ceresoli , Andy Shevchenko , Matti Vaittinen , Mauro Carvalho Chehab , Peter Rosin , Liam Girdwood , Mark Brown , Sakari Ailus , Michael Tretter , Shawn Tu , Hans Verkuil , Mike Pagano , =?UTF-8?Q?Krzysztof_Ha=c5=82asa?= , Marek Vasut References: <20221208104006.316606-1-tomi.valkeinen@ideasonboard.com> <20221208104006.316606-6-tomi.valkeinen@ideasonboard.com> From: Tomi Valkeinen In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/12/2022 19:58, Laurent Pinchart wrote: > Hi Tomi, > > Thank you for the patch. > > On Thu, Dec 08, 2022 at 12:40:03PM +0200, Tomi Valkeinen wrote: >> Add DT bindings for TI DS90UB960 FPDLink-3 Deserializer. >> >> Signed-off-by: Tomi Valkeinen >> --- >> .../bindings/media/i2c/ti,ds90ub960.yaml | 358 ++++++++++++++++++ >> 1 file changed, 358 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml >> >> diff --git a/Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml >> new file mode 100644 >> index 000000000000..d8b5e219d420 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml >> @@ -0,0 +1,358 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/media/i2c/ti,ds90ub960.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Texas Instruments DS90UB9XX Family FPD-Link Deserializer Hubs >> + >> +maintainers: >> + - Tomi Valkeinen >> + >> +description: >> + The TI DS90UB9XX devices are FPD-Link video deserializers with I2C and GPIO >> + forwarding. >> + >> +properties: >> + compatible: >> + enum: >> + - ti,ds90ub960-q1 >> + - ti,ds90ub9702-q1 >> + >> + reg: >> + maxItems: 1 >> + description: >> + i2c addresses for the deserializer and the serializers > > s/i2c/I2C/ > > Same below. > > A bit more details would be nice, for instance the order in which > addresses should be specified should be documented. The example below > has one address only, so it's quite unclear. Or is this a left-over, > from before the i2c-alias-pool ? That's a left over, but not related to i2c-alias-pool but the i2c-alias for the serializers. It already says above 'maxItems: 1', so now it only contains the deserializer address. I'll drop the desc. >> + >> + clocks: >> + maxItems: 1 >> + description: >> + Reference clock connected to the REFCLK pin. >> + >> + clock-names: >> + items: >> + - const: refclk >> + >> + powerdown-gpios: >> + maxItems: 1 >> + description: >> + Specifier for the GPIO connected to the PDB pin. >> + >> + i2c-alias-pool: >> + $ref: /schemas/types.yaml#/definitions/uint16-array >> + description: >> + i2c alias pool is a pool of i2c addresses on the main i2c bus that can be >> + used to access the remote peripherals. The addresses must be available, >> + not used by any other peripheral. Each remote peripheral is assigned an >> + alias from the pool, and transactions to that address will be forwarded >> + to the remote peripheral, with the address translated to the remote >> + peripheral's real address. > > As this property is optional, should you describe what happens when it's > not specified ? > > I would also indicate that the pool doesn't cover the serializers, only > the devices behind them. Yep, I'll clarify these. >> + >> + links: >> + type: object >> + additionalProperties: false >> + >> + properties: >> + '#address-cells': >> + const: 1 >> + >> + '#size-cells': >> + const: 0 >> + >> + ti,manual-strobe: >> + type: boolean >> + description: >> + Enable manual strobe position and EQ level >> + >> + patternProperties: >> + '^link@[0-9a-f]+$': > > There can be up to 4 links only, right ? I would then use > > '^link@[0-3]$': Yes, I'll change that. >> + type: object >> + additionalProperties: false >> + properties: >> + reg: >> + description: The link number >> + maxItems: 1 >> + >> + i2c-alias: >> + description: >> + The i2c address used for the serializer. Transactions to this >> + address on the i2c bus where the deserializer resides are >> + forwarded to the serializer. >> + >> + ti,rx-mode: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + enum: >> + - 0 # RAW10 >> + - 1 # RAW12 HF >> + - 2 # RAW12 LF >> + - 3 # CSI2 SYNC >> + - 4 # CSI2 NON-SYNC >> + description: FPD-Link Input Mode > > Are there use cases for controlling this dynamically (in particular the > sync/non-sync modes) ? Is there anything that could be queried at > runtime from the serializers instead of being specified in DT ? We need a link to the serializer before we can query anything from the serializer. To have a link, we need the mode... So, as I mentioned in the other reply, we could define these in some way in the serializer's properties instead of here, but I'm not sure if that's a good change. The driver can change the mode at runtime (say, from sync to non-sync mode, if the HW supports that). But I think this property should reflect the HW strapped configuration of the serializer. > Same question for the parameters below. Additionally, are there any > parameters that need to be identical for all links ? The same answer to the cdr-mode. No need to be identical. The strobe-pos and eq-level are unrelated to this topic. >> + >> + ti,cdr-mode: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + enum: >> + - 0 # FPD3 >> + - 1 # FPD4 >> + description: FPD-Link CDR Mode >> + >> + ti,strobe-pos: >> + $ref: /schemas/types.yaml#/definitions/int32 >> + minimum: -13 >> + maximum: 13 >> + description: Manual strobe position >> + >> + ti,eq-level: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + maximum: 14 >> + description: Manual EQ level >> + >> + serializer: >> + type: object >> + description: FPD-Link Serializer node >> + >> + required: >> + - reg >> + - i2c-alias >> + - ti,rx-mode >> + - serializer >> + >> + ports: >> + $ref: /schemas/graph.yaml#/properties/ports >> + >> + properties: >> + port@0: >> + $ref: /schemas/graph.yaml#/properties/port >> + unevaluatedProperties: false >> + description: FPD-Link input 0 >> + >> + port@1: >> + $ref: /schemas/graph.yaml#/properties/port >> + unevaluatedProperties: false >> + description: FPD-Link input 1 >> + >> + port@2: >> + $ref: /schemas/graph.yaml#/properties/port >> + unevaluatedProperties: false >> + description: FPD-Link input 2 >> + >> + port@3: >> + $ref: /schemas/graph.yaml#/properties/port >> + unevaluatedProperties: false >> + description: FPD-Link input 3 >> + >> + port@4: >> + $ref: /schemas/graph.yaml#/$defs/port-base >> + unevaluatedProperties: false >> + description: CSI-2 Output 0 >> + >> + properties: >> + endpoint: >> + $ref: /schemas/media/video-interfaces.yaml# >> + unevaluatedProperties: false >> + >> + properties: >> + data-lanes: >> + minItems: 1 >> + maxItems: 4 >> + >> + port@5: >> + $ref: /schemas/graph.yaml#/$defs/port-base >> + unevaluatedProperties: false >> + description: CSI-2 Output 1 >> + >> + properties: >> + endpoint: >> + $ref: /schemas/media/video-interfaces.yaml# >> + unevaluatedProperties: false >> + >> + properties: >> + data-lanes: >> + minItems: 1 >> + maxItems: 4 > > The ports should be mandatory, shouldn't they ? Did you mean data-lanes? Yes, data-lanes should be mandatory. Tomi