Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp4753812rwb; Tue, 17 Jan 2023 05:12:45 -0800 (PST) X-Google-Smtp-Source: AMrXdXu/VoMaXbFyxY6zr3IlqVajdc+QrxsiLtrclhqMWpRDbJb2F/tLT9oam8yMBf0Oi1eCWZxQ X-Received: by 2002:a50:9fe7:0:b0:49e:ef4:51c3 with SMTP id c94-20020a509fe7000000b0049e0ef451c3mr2321664edf.16.1673961165060; Tue, 17 Jan 2023 05:12:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673961165; cv=none; d=google.com; s=arc-20160816; b=DbsyxDq6/Q8u92KCS1PgQkH2OXsvqqhzHIT/C/rRODzMkL7Ytz9nrZbj0pEqmiStUa 4JJuipBArAZ2gA7A7xgclX/IzboxVKiM7Vng2hC70voh3lgXGnkgVO5waEEFgWVhBaVH Xnt/lye4+Fc+yWNEUExoK6lgPzOc/5CTJ/cwwZpox90pkZtNPZbiPArqOcLrhok4WLRI 8D17534XoR9GeZCYZ48pYAa7+ThZCEyuywmgkfX829E4iUDyYlmvlY2kQxVpZ2Kkjf9T pAjLTanLmKvdgdjiWQP4hcKuoMxqmBi4Z34LfqMZqVwbxtdVPO3srBukG/j1dsB8pkG7 Jl7A== 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=KRKlyrWmfJlglnzUD4Wpu2MBTD+1V3Zf1U7PgFhOFmk=; b=Cp52/B11xm7fUNV3ZFZKoVB3hgoAeGFkwDXPMUZzaozq27wKYv1a0SmwRGhEm1S1/g Oi0hQNfzGa7r03lZZUf+VhpHHbefvR+g+I8TRqsHOSERXc0BaZbOTjRH3n4hEj7doihx tTlmlOrtLN3gapG2cQn3qHOcrG00EMwYwTm6rs2Zd0jwsEAtEoRqqhtxOKCE7JiD3ilL OcEA7wWQvoE5jL1EAb8F6XJpzc+JGDkUJIWNYMWGZQonn+oFxnVxw03GDpRbeizgTXSM zLs4H0Eno82ZO/nmKvY02mtel26ZvmRWHD0bIM3naog1nvWCsCjkVAgmkptXRL9Xf9gD nmaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=lhXA6EOB; 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 w19-20020a05640234d300b0046b7410c015si39348413edc.18.2023.01.17.05.12.23; Tue, 17 Jan 2023 05:12:45 -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=lhXA6EOB; 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 S236058AbjAQMjI (ORCPT + 48 others); Tue, 17 Jan 2023 07:39:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236129AbjAQMjF (ORCPT ); Tue, 17 Jan 2023 07:39:05 -0500 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52BC535252; Tue, 17 Jan 2023 04:39:04 -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 B5E8310C; Tue, 17 Jan 2023 13:38:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1673959141; bh=0xanUWyMoxJnvXqqNZ5UOGy3oyg6sQdr/aJLg0bLmX0=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=lhXA6EOBtju3hz7RVGApa3gFkm8IjwyEevWIttJjwuSssA6tWWX3VMk4dP6KCwshf D1TXAw5l8b9t1Vd5W0sbVT1fBO26Skg59JiGVMd89TgWhDkXbpcp0S0PTFKKS9B67y fFirV+o2rzHN81rIAuhffeTrNvXXekunotwKsK54= Message-ID: <808e831f-4282-0e58-ebb2-2f556aaeaca4@ideasonboard.com> Date: Tue, 17 Jan 2023 14:38:57 +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: [RFC PATCH 3/4] dt-bindings: panel: Introduce dual-link LVDS panel Content-Language: en-US To: Aradhya Bhatia , AngeloGioacchino Del Regno , Rob Herring , Krzysztof Kozlowski , Jyri Sarha , David Airlie , Daniel Vetter , Laurent Pinchart , Thierry Reding , Sam Ravnborg , Maxime Ripard , Liam Girdwood , Mark Brown , Lad Prabhakar , Paul Walmsley , Palmer Dabbelt , Albert Ou , Matthias Brugger , Guo Ren Cc: DRI Development List , Devicetree List , Linux Kernel List , Linux RISC-V List , Linux ARM Kernel List , Linux Mediatek List , Linux C-SKY Arch List , Nishanth Menon , Vignesh Raghavendra , Rahul T R , Devarsh Thakkar , Jai Luthra , Jayesh Choudhary References: <20230103064615.5311-1-a-bhatia1@ti.com> <20230103064615.5311-4-a-bhatia1@ti.com> <09f1ca83-c7d5-a186-6fa6-09cdd7a0b9cc@collabora.com> <431ddd82-055b-2526-3d5e-f6563e48d264@ti.com> From: Tomi Valkeinen In-Reply-To: <431ddd82-055b-2526-3d5e-f6563e48d264@ti.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.2 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 09/01/2023 18:21, Aradhya Bhatia wrote: > Hi Angelo, > > Thanks for taking a look at the patches! > > On 03-Jan-23 17:21, AngeloGioacchino Del Regno wrote: >> Il 03/01/23 07:46, Aradhya Bhatia ha scritto: >>> Dual-link LVDS interfaces have 2 links, with even pixels traveling on >>> one link, and odd pixels on the other. These panels are also generic in >>> nature, with no documented constraints, much like their single-link >>> counterparts, "panel-lvds". >>> >>> Add a new compatible, "panel-dual-lvds", and a dt-binding document for >>> these panels. >>> >>> Signed-off-by: Aradhya Bhatia >>> --- >>>   .../display/panel/panel-dual-lvds.yaml        | 157 ++++++++++++++++++ >>>   MAINTAINERS                                   |   1 + >>>   2 files changed, 158 insertions(+) >>>   create mode 100644 >>> Documentation/devicetree/bindings/display/panel/panel-dual-lvds.yaml >>> >>> diff --git >>> a/Documentation/devicetree/bindings/display/panel/panel-dual-lvds.yaml b/Documentation/devicetree/bindings/display/panel/panel-dual-lvds.yaml >>> new file mode 100644 >>> index 000000000000..88a7aa2410be >>> --- /dev/null >>> +++ >>> b/Documentation/devicetree/bindings/display/panel/panel-dual-lvds.yaml >>> @@ -0,0 +1,157 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/display/panel/panel-dual-lvds.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: Generic Dual-Link LVDS Display Panel >>> + >>> +maintainers: >>> +  - Aradhya Bhatia >>> +  - Thierry Reding >>> + >>> +description: | >>> +  A dual-LVDS interface is a dual-link connection with the even pixels >>> +  traveling on one link, and the odd pixels traveling on the other. >>> + >>> +allOf: >>> +  - $ref: panel-common.yaml# >>> +  - $ref: /schemas/display/lvds.yaml/# >>> + >>> +properties: >>> +  compatible: >>> +    oneOf: >>> +      - items: >>> +          - enum: >>> +              - lincolntech,lcd185-101ct >>> +              - microtips,13-101hieb0hf0-s >>> +          - const: panel-dual-lvds >>> +      - const: panel-dual-lvds >>> + >>> +  ports: >>> +    $ref: /schemas/graph.yaml#/properties/ports >>> + >>> +    properties: >>> +      port@0: >>> +        $ref: /schemas/graph.yaml#/$defs/port-base >>> +        unevaluatedProperties: false >>> +        description: The sink for first set of LVDS pixels. >>> + >>> +        properties: >>> +          dual-lvds-odd-pixels: >>> +            type: boolean >>> + >>> +          dual-lvds-even-pixels: >>> +            type: boolean >>> + >>> +        oneOf: >>> +          - required: [dual-lvds-odd-pixels] >> >> One question: why do we need a "panel-dual-lvds" compatible? >> A Dual-LVDS panel is a LVDS panel using two ports, hence still a >> panel-lvds. >> >> If you're doing this to clearly distinguish, for human readability >> purposes, >> single-link vs dual-link panels, I think that this would still be >> clear even >> if we use panel-lvds alone because dual-link panels, as you wrote in this >> binding, does *require* two ports, with "dual-lvds-{odd,even}-pixels" >> properties. > > Yes, while they are both LVDS based panels the extra LVDS sink in these > panels, and the capability to decode and display the 2 sets of signals > are enough hardware differences that warrant for an addition of a new > compatible. > >> >> So... the devicetree node would look like this: >> >> panel { >>      compatible = "vendor,panel", "panel-lvds"; >>      .... >>      ports { >>          port@0 { >>              ..... >>              -> dual-lvds-odd-pixels <- >>          } >> >>          port@1 { >>              ..... >>              -> dual-lvds-even-pixels <- >>          }; >>      }; >> }; >> >>> +          - required: [dual-lvds-even-pixels] >> >> ...Though, if you expect dual-lvds panels to get other quirks in the >> future, >> that's a whole different story and you may actually need the >> panel-dual-lvds >> compatible. > > Yes, exactly. Even while being non-smart, there are going to be more > quirks in future. And it would be better if they have their own > compatible/binding, and are not getting appended in an ever-growing > if-else ladder. :) I can imagine a panel which you can use with a single LVDS link if the clock is high enough, or two LVDS links if the clock has to be lower. Is that a dual-lvds panel? =) But probably that situation is no different than a panel that can work with DSI or DPI input. Still, I'm agree with Angelo in that a new compatible string for dual link lvds feels a bit odd. That said, it's possible the panel-lvds bindings might get rather confusing. So I don't have a strong feeling here. Tomi