Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2323860pxp; Mon, 21 Mar 2022 16:59:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzepOkaNpwwqcCpFz1ovgv+IzzsleUqHpT/6g1BlWw/Il9NRh+qb9whIzZoAnhAiqbiEzg1 X-Received: by 2002:a05:6a00:1254:b0:4fa:874e:1319 with SMTP id u20-20020a056a00125400b004fa874e1319mr12605668pfi.14.1647907168004; Mon, 21 Mar 2022 16:59:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647907167; cv=none; d=google.com; s=arc-20160816; b=QiK/+0b+EzCfIMe+uItS9XomDLdOW2D7sm4k+i0yBfgXr9jSjd9j7jU8CNPkFt4f0P VsiCP0PHV0qvJB1VmEqOW6inuyJ0e3S8XYGcQ37+55Q0R9GQM+1ZPHUQw0AmnmduaqU0 qMKEcB7XNtdfoH6JI6jugtg37A/ryffo9v7WN5nyDOfPGXVk3gHSe+e++fmLDbkfGnFe DwPq+TLtcZ1KrSAn2Onbmv/j4yIlswAWVafPSoaTXJYHse/Xr2BfuZZt55P/srBFtS7d xrTcNo0uBYDdOcFKmqkx6EXFfTVhotOFdEa91U31NMYLV//LFEC4ZW6EeJZHi73x6ocO ggsg== 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-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=10C1VoEdFPxq2EX61iLyVklfX08g8qkm8o81dxA7EZI=; b=yPZd/vpwc43KqDAPd4Kfx5w6h0MLvtDs553wHkCCd+meOENBObn1l1whEMY41G8B++ FyVqM/DX0sk6/HSHZwLgCexqGtX9Hhhc25wQGHX44a0GopEAQ92062OhTPdlNa3gyUn6 gxXHMNynkTcZ2eiy1GMkuhvzkFyj9IrTtlgMxGRTkzCDN3MhVHitdnK7kfIyt5UE6Gj+ Vl+7aWjZ/OlMjoNU0Sp9K663i/iSunbPL/cz8E4P/a1n7sG6+YbY8Mjrs0wIR9efTN/M HjrdHIBezfQjLz7XIs0F3el59XJ4EvgrGYUFW+bu1Gt5D0OslkXDmL6QD5KsKodC6/RD DK9Q== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id p18-20020a63f452000000b003816043f0c4si13450168pgk.697.2022.03.21.16.59.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 16:59:27 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 76562335521; Mon, 21 Mar 2022 16:25:14 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233178AbiCUX0c (ORCPT + 99 others); Mon, 21 Mar 2022 19:26:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38892 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233213AbiCUX0S (ORCPT ); Mon, 21 Mar 2022 19:26:18 -0400 Received: from mail-ot1-f48.google.com (mail-ot1-f48.google.com [209.85.210.48]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9ED215FF5; Mon, 21 Mar 2022 16:20:48 -0700 (PDT) Received: by mail-ot1-f48.google.com with SMTP id e25-20020a0568301e5900b005b236d5d74fso11542453otj.0; Mon, 21 Mar 2022 16:20:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=10C1VoEdFPxq2EX61iLyVklfX08g8qkm8o81dxA7EZI=; b=htO8OCFGoMwC2NgQA449ZQTQaj0MA9DC0bXue9ComIpzwmqCUtuQl4PffUI89DSiAa 2ofafLw2k6vBzoqppPMuKCF7HFiDe1hi7owtis1c29saQY8H/shK0fzE0xBu/d5nTkeT JFIJE0IarqZKVivvP4VfcQ4Bk083zG2NsyfzE70Ye4QEnQsGOIPocRg8W4vuJ20thuVq LwOfsnVkIrVQyYbkRaA+V8H0aHPlrSwJk03yIzn+m5VfTjYlE2m2mqpZwnWHIQ0dbI4N /J3JwSYLI9Ie2ImnORM/zoals1YnJexHTSKmVotqGNLQmGsZ4hQVJE4icZx7BIWAHMm0 HfLA== X-Gm-Message-State: AOAM531C0fg7Cq5oQZUPka2gBq6f2BInELOVdWmasNFgaELqD+nsb56x BDkghDkmz4rG761vWxyBzg== X-Received: by 2002:a9d:7dd8:0:b0:5b2:29e1:d46a with SMTP id k24-20020a9d7dd8000000b005b229e1d46amr8638687otn.106.1647904847839; Mon, 21 Mar 2022 16:20:47 -0700 (PDT) Received: from robh.at.kernel.org (66-90-144-107.dyn.grandenetworks.net. [66.90.144.107]) by smtp.gmail.com with ESMTPSA id x14-20020a05680801ce00b002d97bda386fsm8001690oic.52.2022.03.21.16.20.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 16:20:46 -0700 (PDT) Received: (nullmailer pid 732787 invoked by uid 1000); Mon, 21 Mar 2022 23:20:45 -0000 Date: Mon, 21 Mar 2022 18:20:45 -0500 From: Rob Herring To: Sui Jingfeng <15330273260@189.cn> Cc: Maxime Ripard , Thomas Zimmermann , Roland Scheidegger , Zack Rusin , Christian Gmeiner , David Airlie , Daniel Vetter , Thomas Bogendoerfer , Dan Carpenter , Krzysztof Kozlowski , Andrey Zhizhikin , Sam Ravnborg , "David S . Miller" , Jiaxun Yang , Lucas Stach , Maarten Lankhorst , Ilia Mirkin , Qing Zhang , suijingfeng , linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH v11 5/7] dt-bindings: display: Add Loongson display controller Message-ID: References: <20220321162916.1116541-1-15330273260@189.cn> <20220321162916.1116541-6-15330273260@189.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220321162916.1116541-6-15330273260@189.cn> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 Tue, Mar 22, 2022 at 12:29:14AM +0800, Sui Jingfeng wrote: > From: suijingfeng > Needs a commit message. > Signed-off-by: suijingfeng > Signed-off-by: Sui Jingfeng <15330273260@189.cn> Same person? Don't need both emails. > --- > .../loongson/loongson,display-controller.yaml | 230 ++++++++++++++++++ > 1 file changed, 230 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > > diff --git a/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > new file mode 100644 > index 000000000000..7be63346289e > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > @@ -0,0 +1,230 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/loongson/loongson,display-controller.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Loongson LS7A1000/LS2K1000/LS2K0500 Display Controller Device Tree Bindings > + > +maintainers: > + - Sui Jingfeng > + > +description: |+ > + > + Loongson display controllers are simple which require scanout buffers > + to be physically contiguous. LS2K1000/LS2K0500 is a SOC, only system > + memory is available. LS7A1000/LS7A2000 is bridge chip which is equipped > + with a dedicated video RAM which is 64MB or more, precise size can be > + read from the PCI BAR 2 of the GPU device(0x0014:0x7A15) in the bridge > + chip. > + > + LSDC has two display pipes, each way has a DVO interface which provide > + RGB888 signals, vertical & horizontal synchronisations, data enable and > + the pixel clock. LSDC has two CRTC, each CRTC is able to scanout from > + 1920x1080 resolution at 60Hz. Each CRTC has two FB address registers. > + > + For LS7A1000, there are 4 dedicated GPIOs whose control register is > + located at the DC register space. They are used to emulate two way i2c, > + One for DVO0, another for DVO1. > + > + LS2K1000 and LS2K0500 SoC grab i2c adapter from other module, either > + general purpose GPIO emulated i2c or hardware i2c in the SoC. > + > + LSDC's display pipeline have several components as below description, > + > + The display controller in LS7A1000: > + ___________________ _________ > + | -------| | | > + | CRTC0 --> | DVO0 ----> Encoder0 ---> Connector0 ---> | Monitor | > + | _ _ -------| ^ ^ |_________| > + | | | | | -------| | | > + | |_| |_| | i2c0 <--------+-------------+ > + | -------| > + | DC IN LS7A1000 | > + | _ _ -------| > + | | | | | | i2c1 <--------+-------------+ > + | |_| |_| -------| | | _________ > + | -------| | | | | > + | CRTC1 --> | DVO1 ----> Encoder1 ---> Connector1 ---> | Panel | > + | -------| |_________| > + |___________________| > + > + Simple usage of LS7A1000 with LS3A4000 CPU: > + > + +------+ +-----------------------------------+ > + | DDR4 | | +-------------------+ | > + +------+ | | PCIe Root complex | LS7A1000 | > + || MC0 | +--++---------++----+ | > + +----------+ HT 3.0 | || || | > + | LS3A4000 |<-------->| +---++---+ +--++--+ +---------+ +------+ > + | CPU |<-------->| | GC1000 | | LSDC |<-->| DDR3 MC |<->| VRAM | > + +----------+ | +--------+ +-+--+-+ +---------+ +------+ > + || MC1 +---------------|--|----------------+ > + +------+ | | > + | DDR4 | +-------+ DVO0 | | DVO1 +------+ > + +------+ VGA <--|ADV7125|<--------+ +-------->|TFP410|--> DVI/HDMI > + +-------+ +------+ > + > + The display controller in LS2K1000/LS2K0500: > + ___________________ _________ > + | -------| | | > + | CRTC0 --> | DVO0 ----> Encoder0 ---> Connector0 ---> | Monitor | > + | _ _ -------| ^ ^ |_________| > + | | | | | | | | > + | |_| |_| | +------+ | > + | <---->| i2c0 |<---------+ > + | DC IN LS2K1000 | +------+ > + | _ _ | +------+ > + | | | | | <---->| i2c1 |----------+ > + | |_| |_| | +------+ | _________ > + | -------| | | | | > + | CRTC1 --> | DVO1 ----> Encoder1 ---> Connector1 ---> | Panel | > + | -------| |_________| > + |___________________| > + > +properties: > + $nodename: > + pattern: "^display-controller@[0-9a-f],[0-9a-f]$" > + > + compatible: > + oneOf: > + - items: > + - enum: > + - loongson,ls7a1000-dc > + - loongson,ls2k1000-dc > + - loongson,ls2k0500-dc > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + i2c-gpio@0: > + description: | > + Built-in GPIO emulate i2c exported for external display bridge If you have i2c-gpio, that belongs at the DT top-level, not here. > + configuration, onitor detection and edid read back etc, for ls7a1000 > + only. Its compatible must be lsdc,i2c-gpio-0. The reg property can be No, there's a defined i2c-gpio compatible already. > + used to specify a I2c adapter bus number, if you don't specify one > + i2c driver core will dynamically assign a bus number. Please specify Bus numbers are a linux detail not relevant to DT binding. > + it only when its bus number matters. Bus number greater than 6 is safe > + because ls7a1000 bridge have 6 hardware I2C controller integrated. > + > + i2c-gpio@1: > + description: | > + Built-in GPIO emulate i2c exported for external display bridge > + configuration, onitor detection and edid read back etc, for ls7a1000 > + only. Its compatible must be lsdc,i2c-gpio-1. > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: output port node connected with DPI panels or external encoders, with only one endpoint. > + > + port@1: > + $ref: /schemas/graph.yaml#/properties/port > + description: output port node connected with DPI panels or external encoders, with only one endpoint. > + > + required: > + - port@0 > + - port@1 > + > +required: > + - compatible > + - reg > + - interrupts > + - ports > + > +additionalProperties: false > + > +examples: > + - | > + #include > + bus { > + > + #address-cells = <3>; > + #size-cells = <2>; > + #interrupt-cells = <2>; > + > + display-controller@6,1 { > + compatible = "loongson,ls7a1000-dc"; > + reg = <0x3100 0x0 0x0 0x0 0x0>; > + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + i2c-gpio@0 { > + compatible = "lsdc,i2c-gpio-0"; > + reg = <6>; > + sda = <0>; > + scl = <1>; > + }; > + > + i2c-gpio@1 { > + compatible = "lsdc,i2c-gpio-1"; > + reg = <7>; > + sda = <2>; > + scl = <3>; > + }; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + endpoint { > + remote-endpoint = <&vga_encoder_in>; > + }; > + }; > + port@1 { > + reg = <1>; > + endpoint { > + remote-endpoint = <&dvi_encoder_in>; > + }; > + }; > + }; > + }; > + }; > + > + - | > + #include > + bus { > + > + #address-cells = <3>; > + #size-cells = <2>; > + #interrupt-cells = <2>; > + > + display-controller@6,0 { > + compatible = "loongson,ls2k1000-dc"; > + reg = <0x3100 0x0 0x0 0x0 0x0>; > + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + port@0 { > + reg = <0>; > + endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + port@1 { > + reg = <1>; > + endpoint { > + remote-endpoint = <&hdmi_encoder_in>; > + }; > + }; > + }; > + }; > + }; > +... > -- > 2.25.1 > >