Received: by 2002:a05:6a10:7420:0:0:0:0 with SMTP id hk32csp1139640pxb; Wed, 16 Feb 2022 11:55:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJyB+pWM+aQnCed73ZXgfR9JEE6DsRVWkyGJn2Dxrf5zDx52L+zgKcioaRG5kkog552TFzie X-Received: by 2002:a17:906:c59:b0:6b9:59d8:263e with SMTP id t25-20020a1709060c5900b006b959d8263emr3727577ejf.770.1645041346099; Wed, 16 Feb 2022 11:55:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645041346; cv=none; d=google.com; s=arc-20160816; b=m8ZePbBWKNokpBUjl6q3ZjYCH+CIUYgd7vien7lwQlUxTmuM14630CTFZcyMPTviSl nkpr89Vf4NdZM5viNJkI/NfK5KX8UCQ7P8zUmAzmYSAWMkLTmLJEWoACX5UYUmfVvF8I ZRTVOCpC/payVu2/C5S7SJmENnQVRXWNy33/l4qoq4OuRCOWqp0BaYITMHA/iFAEXW4W r9vyScBrQjHsq8hd7o6ZCo6qDiAnSyAW9yyGAqUZJ3HQ3OgoCZXTz9xnyIjKTYtUHXvE fVBUYc92ZmrlCHIsXwQo5qoQWw4S8oBS0kuDnK11NGdAJgBBwJamCV0QbmAQmyhcffww 7YrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :hmm_source_type:hmm_attache_num:hmm_source_ip; bh=6jAdjB/rFuyMoAqkT7u1EGe3utwo7B8v6mBvv13XkbI=; b=hUlOOwy1W3YFfXmisxiqxJ4zMrIlNUcork19l+n07RgHunAjGrDI0fKc/BZMk06LTn a9KTojnnX6mOkXiYZldNlajcShLsSdGUmvfiyUKLRa2gSDil+/W5nlH1y+v94dB4AA3f Yp2V14IyXumVqcaHK+oXiAQMS/6JBe4RAXSCoF1KMVYYxIbpYrejfkoaRcHpksUVItVw NuAz/FLxV3tKQHRg3rLZuaRi0naXjGytmc7nr+n1WwNM98Hrmdfr46Hj4/GV8/Vc2Nu+ vEW17pMPpqkLStZXqpoZdO9WzcMvk22grt4X33x5xF3lnMDcwmUEynMeANi3gCCFcoQs 5Iqw== ARC-Authentication-Results: i=1; mx.google.com; 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 ec12si474436ejb.68.2022.02.16.11.55.23; Wed, 16 Feb 2022 11:55:46 -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; 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 S237526AbiBPSRh (ORCPT + 99 others); Wed, 16 Feb 2022 13:17:37 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:35770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237512AbiBPSRg (ORCPT ); Wed, 16 Feb 2022 13:17:36 -0500 Received: from 189.cn (ptr.189.cn [183.61.185.101]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 396D91BE059; Wed, 16 Feb 2022 10:17:22 -0800 (PST) HMM_SOURCE_IP: 10.64.8.41:34238.983927469 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-114.242.206.180 (unknown [10.64.8.41]) by 189.cn (HERMES) with SMTP id 72B63100238; Thu, 17 Feb 2022 02:17:20 +0800 (CST) Received: from ([114.242.206.180]) by gateway-151646-dep-b7fbf7d79-9vctg with ESMTP id 33b944c8734e48b5907f9ba382168b44 for mripard@kernel.org; Thu, 17 Feb 2022 02:17:21 CST X-Transaction-ID: 33b944c8734e48b5907f9ba382168b44 X-Real-From: 15330273260@189.cn X-Receive-IP: 114.242.206.180 X-MEDUSA-Status: 0 Sender: 15330273260@189.cn From: Sui Jingfeng <15330273260@189.cn> To: Maxime Ripard , Thomas Zimmermann , Roland Scheidegger , Zack Rusin , Christian Gmeiner , David Airlie , Daniel Vetter , Rob Herring , Thomas Bogendoerfer , Dan Carpenter , Krzysztof Kozlowski , Andrey Zhizhikin , Sam Ravnborg , "David S . Miller" , Jiaxun Yang , Lucas Stach , Maarten Lankhorst , Ilia Mirkin , Qing Zhang , Li Yi , suijingfeng Cc: linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node Date: Thu, 17 Feb 2022 02:17:11 +0800 Message-Id: <20220216181712.1493400-3-15330273260@189.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220216181712.1493400-1-15330273260@189.cn> References: <20220216181712.1493400-1-15330273260@189.cn> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,FROM_LOCAL_DIGITS, FROM_LOCAL_HEX,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, 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 From: suijingfeng The display controller is a pci device, its PCI vendor id is 0x0014 its PCI device id is 0x7a06. 1) In order to let the lsdc kms driver to know which chip the DC is contained in, we add different compatible for different chip. 2) Add display controller device node for ls2k1000 SoC Signed-off-by: suijingfeng Signed-off-by: Sui Jingfeng <15330273260@189.cn> --- .../loongson/loongson,display-controller.yaml | 114 ++++++++++++++++++ .../display/loongson/loongson-drm.txt | 16 +++ .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- 4 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt 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..64d8364b50ab --- /dev/null +++ b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml @@ -0,0 +1,114 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/pci0014,7a06.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Loongson LS7A2000/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. + + 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 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. + + LSDC's display pipeline have several components as below description, + + The display controller in LS7A1000: + ___________________ _________ + | -------| | | + | CRTC0 --> | DVO0 ----> Encoder0 ---> Connector0 ---> | Monotor | + | _ _ -------| ^ ^ |_________| + | | | | | -------| | | + | |_| |_| | 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 ---> | Monotor | + | _ _ -------| ^ ^ |_________| + | | | | | | | | + | |_| |_| | +------+ | + | <---->| i2c0 |<---------+ + | DC IN LS2K1000 | +------+ + | _ _ | +------+ + | | | | | <---->| i2c1 |----------+ + | |_| |_| | +------+ | _________ + | -------| | | | | + | CRTC1 --> | DVO1 ----> Encoder1 ---> Connector1 ---> | Panel | + | -------| |_________| + |___________________| + +properties: + compatible: + enum: + - loongson,ls7a2000-dc + - loongson,ls7a1000-dc + - loongson,ls2k1000-dc + - loongson,ls2k0500-dc + + reg: + maxItems: 1 + + interrupts: + minItems: 1 + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + lsdc: dc@6,1 { + compatible = "loongson,ls7a1000-dc"; + reg = <0x3100 0x0 0x0 0x0 0x0>; + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&pic>; + }; + +... + diff --git a/Documentation/devicetree/bindings/display/loongson/loongson-drm.txt b/Documentation/devicetree/bindings/display/loongson/loongson-drm.txt new file mode 100644 index 000000000000..46417e0e34ba --- /dev/null +++ b/Documentation/devicetree/bindings/display/loongson/loongson-drm.txt @@ -0,0 +1,16 @@ +Loongson display controller +=========================== + +Required properties: +- compatible: Should be "loongson,display-subsystem" or "loongson,ls-fb" +- reg: should be register base and length +- interrupts: Should contain the cores interrupt line + +example: + +lsdc: dc@0x400c0000 { + compatible = "loongson,display-subsystem", "loongson,ls-fb"; + reg = <0x400c0000 0x00010000>; + interrupt-parent = <&icu>; + interrupts = <36>; +}; diff --git a/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi b/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi index 768cf2abcea3..47f6ff4c3e8a 100644 --- a/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi +++ b/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi @@ -209,6 +209,14 @@ gpu@5,0 { interrupt-parent = <&liointc0>; }; + lsdc: dc@6,0 { + compatible = "loongson,ls2k1000-dc"; + + reg = <0x3000 0x0 0x0 0x0 0x0>; + interrupts = <28 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&liointc0>; + }; + pci_bridge@9,0 { compatible = "pci0014,7a19.0", "pci0014,7a19", diff --git a/arch/mips/boot/dts/loongson/ls7a-pch.dtsi b/arch/mips/boot/dts/loongson/ls7a-pch.dtsi index 2f45fce2cdc4..b34426142453 100644 --- a/arch/mips/boot/dts/loongson/ls7a-pch.dtsi +++ b/arch/mips/boot/dts/loongson/ls7a-pch.dtsi @@ -160,11 +160,8 @@ gpu@6,0 { interrupt-parent = <&pic>; }; - dc@6,1 { - compatible = "pci0014,7a06.0", - "pci0014,7a06", - "pciclass030000", - "pciclass0300"; + lsdc: dc@6,1 { + compatible = "loongson,ls7a1000-dc"; reg = <0x3100 0x0 0x0 0x0 0x0>; interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; -- 2.25.1