From patchwork Fri Oct 31 22:53:46 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Longerbeam X-Patchwork-Id: 5207591 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 18E3E9F318 for ; Fri, 31 Oct 2014 23:57:16 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id F297120120 for ; Fri, 31 Oct 2014 23:57:14 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C9FD6201B9 for ; Fri, 31 Oct 2014 23:57:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4047B6E868; Fri, 31 Oct 2014 16:56:40 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-pa0-f48.google.com (mail-pa0-f48.google.com [209.85.220.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 1E50A6E846 for ; Fri, 31 Oct 2014 15:56:50 -0700 (PDT) Received: by mail-pa0-f48.google.com with SMTP id ey11so8578466pad.21 for ; Fri, 31 Oct 2014 15:56:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=02z8p1u/1QN8PbBcgXeNjUm0bU9QzZELm9zv6gEy2q0=; b=sHD0WH0lB26tIbE92SGW4yvovnnK1oVopt3GtfekxgmxxAKfgJe+50mtjyyHy6dhCp iEru+T/LUSa5kMsqnJqmshUmzQmnnjqf3HIQxXP5Z4xHbl4QRQIj79COuMJxmH2N6lt7 ph77VezD5t9S76FK64UtjgbH5+MleJP7AXI947pS5gfIvZyVRnbuxKYKOavsBDzhz9QV Cne76luTGjkAE1/JzRRYxUz7DOap6Q33VHVxlmMo5XZVhQIMbne/CVMngYjsO1PsVlaI 7GYBU+UC3XXYzjzLkkKbBdvHEVf8AVLi2vHazPYg6Ob8QoCh/vqII7cXQVmhemSeZM0G T1wQ== X-Received: by 10.66.124.130 with SMTP id mi2mr27773660pab.104.1414796209934; Fri, 31 Oct 2014 15:56:49 -0700 (PDT) Received: from mothership.mgc.mentorg.com (c-50-152-159-227.hsd1.ca.comcast.net. [50.152.159.227]) by mx.google.com with ESMTPSA id ev8sm10870656pdb.28.2014.10.31.15.56.49 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 31 Oct 2014 15:56:49 -0700 (PDT) From: Steve Longerbeam X-Google-Original-From: Steve Longerbeam To: dri-devel@lists.freedesktop.org Subject: [PATCH 03/72] ARM: dts: imx6qdl: Create imx-drm crtc nodes Date: Fri, 31 Oct 2014 15:53:46 -0700 Message-Id: <1414796095-10107-4-git-send-email-steve_longerbeam@mentor.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1414796095-10107-1-git-send-email-steve_longerbeam@mentor.com> References: <1414796095-10107-1-git-send-email-steve_longerbeam@mentor.com> X-Mailman-Approved-At: Fri, 31 Oct 2014 16:56:31 -0700 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Create imx-drm crtc device nodes. Each crtc node requires the following parameters: - parent ipu phandle. - di number. - port endpoints. Optionally the node can specify a "dual-plane" boolean parameter to configure the crtc device with a foreground plane. If not given, the crtc will have only a single plane. The crtc port lists the endpoints to the remote encoder endpoints. These endpoints were moved out of the ipu nodes, since they more logically now belong to the crtc nodes. As a result, the display-subsystem node should enumerate its crtcs instead of the former ipu ports. Signed-off-by: Steve Longerbeam --- arch/arm/boot/dts/imx6dl.dtsi | 2 +- arch/arm/boot/dts/imx6q.dtsi | 116 ++++++++++++++++++++------------------ arch/arm/boot/dts/imx6qdl.dtsi | 122 +++++++++++++++++++++------------------- 3 files changed, 127 insertions(+), 113 deletions(-) diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi index b453e0e..05af0f4 100644 --- a/arch/arm/boot/dts/imx6dl.dtsi +++ b/arch/arm/boot/dts/imx6dl.dtsi @@ -98,7 +98,7 @@ display-subsystem { compatible = "fsl,imx-display-subsystem"; - ports = <&ipu1_di0>, <&ipu1_di1>; + crtcs = <&crtc0>, <&crtc1>; }; }; diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi index e9f3646..9d1f88c 100644 --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi @@ -140,6 +140,59 @@ }; }; + crtc2: crtc@2 { + compatible = "fsl,imx-ipuv3-crtc"; + ipu = <&ipu2>; + di = <0>; + dual-plane; + + port { + crtc2_disp0: endpoint@0 { + }; + + crtc2_hdmi: endpoint@1 { + remote-endpoint = <&hdmi_mux_2>; + }; + + crtc2_mipi: endpoint@2 { + }; + + crtc2_lvds0: endpoint@3 { + remote-endpoint = <&lvds0_mux_2>; + }; + + crtc2_lvds1: endpoint@4 { + remote-endpoint = <&lvds1_mux_2>; + }; + }; + }; + + crtc3: crtc@3 { + compatible = "fsl,imx-ipuv3-crtc"; + ipu = <&ipu2>; + di = <1>; + + port { + crtc3_disp0: endpoint@0 { + }; + + crtc3_hdmi: endpoint@1 { + remote-endpoint = <&hdmi_mux_3>; + }; + + crtc3_mipi: endpoint@2 { + }; + + crtc3_lvds0: endpoint@3 { + remote-endpoint = <&lvds0_mux_3>; + }; + + crtc3_lvds1: endpoint@4 { + remote-endpoint = <&lvds1_mux_3>; + }; + }; + }; + sata: sata@02200000 { compatible = "fsl,imx6q-ahci"; reg = <0x02200000 0x4000>; @@ -171,57 +224,12 @@ ipu2_csi1: port@1 { reg = <1>; }; - - ipu2_di0: port@2 { - #address-cells = <1>; - #size-cells = <0>; - reg = <2>; - - ipu2_di0_disp0: endpoint@0 { - }; - - ipu2_di0_hdmi: endpoint@1 { - remote-endpoint = <&hdmi_mux_2>; - }; - - ipu2_di0_mipi: endpoint@2 { - }; - - ipu2_di0_lvds0: endpoint@3 { - remote-endpoint = <&lvds0_mux_2>; - }; - - ipu2_di0_lvds1: endpoint@4 { - remote-endpoint = <&lvds1_mux_2>; - }; - }; - - ipu2_di1: port@3 { - #address-cells = <1>; - #size-cells = <0>; - reg = <3>; - - ipu2_di1_hdmi: endpoint@1 { - remote-endpoint = <&hdmi_mux_3>; - }; - - ipu2_di1_mipi: endpoint@2 { - }; - - ipu2_di1_lvds0: endpoint@3 { - remote-endpoint = <&lvds0_mux_3>; - }; - - ipu2_di1_lvds1: endpoint@4 { - remote-endpoint = <&lvds1_mux_3>; - }; - }; }; }; display-subsystem { compatible = "fsl,imx-display-subsystem"; - ports = <&ipu1_di0>, <&ipu1_di1>, <&ipu2_di0>, <&ipu2_di1>; + crtcs = <&crtc0>, <&crtc1>, <&crtc2>, <&crtc3>; }; }; @@ -232,7 +240,7 @@ reg = <2>; hdmi_mux_2: endpoint { - remote-endpoint = <&ipu2_di0_hdmi>; + remote-endpoint = <&crtc2_hdmi>; }; }; @@ -240,7 +248,7 @@ reg = <3>; hdmi_mux_3: endpoint { - remote-endpoint = <&ipu2_di1_hdmi>; + remote-endpoint = <&crtc3_hdmi>; }; }; }; @@ -259,7 +267,7 @@ reg = <2>; lvds0_mux_2: endpoint { - remote-endpoint = <&ipu2_di0_lvds0>; + remote-endpoint = <&crtc2_lvds0>; }; }; @@ -267,7 +275,7 @@ reg = <3>; lvds0_mux_3: endpoint { - remote-endpoint = <&ipu2_di1_lvds0>; + remote-endpoint = <&crtc3_lvds0>; }; }; }; @@ -277,7 +285,7 @@ reg = <2>; lvds1_mux_2: endpoint { - remote-endpoint = <&ipu2_di0_lvds1>; + remote-endpoint = <&crtc2_lvds1>; }; }; @@ -285,7 +293,7 @@ reg = <3>; lvds1_mux_3: endpoint { - remote-endpoint = <&ipu2_di1_lvds1>; + remote-endpoint = <&crtc3_lvds1>; }; }; }; @@ -296,7 +304,7 @@ reg = <2>; mipi_mux_2: endpoint { - remote-endpoint = <&ipu2_di0_mipi>; + remote-endpoint = <&crtc2_mipi>; }; }; @@ -304,7 +312,7 @@ reg = <3>; mipi_mux_3: endpoint { - remote-endpoint = <&ipu2_di1_mipi>; + remote-endpoint = <&crtc3_mipi>; }; }; }; diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index 9596ed5..13d6b50 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi @@ -167,6 +167,62 @@ interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>; }; + crtc0: crtc@0 { + compatible = "fsl,imx-ipuv3-crtc"; + ipu = <&ipu1>; + di = <0>; + dual-plane; + + port { + crtc0_disp0: endpoint@0 { + }; + + crtc0_hdmi: endpoint@1 { + remote-endpoint = <&hdmi_mux_0>; + }; + + crtc0_mipi: endpoint@2 { + remote-endpoint = <&mipi_mux_0>; + }; + + crtc0_lvds0: endpoint@3 { + remote-endpoint = <&lvds0_mux_0>; + }; + + crtc0_lvds1: endpoint@4 { + remote-endpoint = <&lvds1_mux_0>; + }; + }; + + }; + + crtc1: crtc@1 { + compatible = "fsl,imx-ipuv3-crtc"; + ipu = <&ipu1>; + di = <1>; + + port { + crtc1_disp0: endpoint@0 { + }; + + crtc1_hdmi: endpoint@1 { + remote-endpoint = <&hdmi_mux_1>; + }; + + crtc1_mipi: endpoint@2 { + remote-endpoint = <&mipi_mux_1>; + }; + + crtc1_lvds0: endpoint@3 { + remote-endpoint = <&lvds0_mux_1>; + }; + + crtc1_lvds1: endpoint@4 { + remote-endpoint = <&lvds1_mux_1>; + }; + }; + }; + aips-bus@02000000 { /* AIPS1 */ compatible = "fsl,aips-bus", "simple-bus"; #address-cells = <1>; @@ -711,7 +767,7 @@ reg = <0>; lvds0_mux_0: endpoint { - remote-endpoint = <&ipu1_di0_lvds0>; + remote-endpoint = <&crtc0_lvds0>; }; }; @@ -719,7 +775,7 @@ reg = <1>; lvds0_mux_1: endpoint { - remote-endpoint = <&ipu1_di1_lvds0>; + remote-endpoint = <&crtc1_lvds0>; }; }; }; @@ -734,7 +790,7 @@ reg = <0>; lvds1_mux_0: endpoint { - remote-endpoint = <&ipu1_di0_lvds1>; + remote-endpoint = <&crtc0_lvds1>; }; }; @@ -742,7 +798,7 @@ reg = <1>; lvds1_mux_1: endpoint { - remote-endpoint = <&ipu1_di1_lvds1>; + remote-endpoint = <&crtc1_lvds1>; }; }; }; @@ -763,7 +819,7 @@ reg = <0>; hdmi_mux_0: endpoint { - remote-endpoint = <&ipu1_di0_hdmi>; + remote-endpoint = <&crtc0_hdmi>; }; }; @@ -771,7 +827,7 @@ reg = <1>; hdmi_mux_1: endpoint { - remote-endpoint = <&ipu1_di1_hdmi>; + remote-endpoint = <&crtc1_hdmi>; }; }; }; @@ -1013,7 +1069,7 @@ reg = <0>; mipi_mux_0: endpoint { - remote-endpoint = <&ipu1_di0_mipi>; + remote-endpoint = <&crtc0_mipi>; }; }; @@ -1021,7 +1077,7 @@ reg = <1>; mipi_mux_1: endpoint { - remote-endpoint = <&ipu1_di1_mipi>; + remote-endpoint = <&crtc1_mipi>; }; }; }; @@ -1100,56 +1156,6 @@ ipu1_csi1: port@1 { reg = <1>; }; - - ipu1_di0: port@2 { - #address-cells = <1>; - #size-cells = <0>; - reg = <2>; - - ipu1_di0_disp0: endpoint@0 { - }; - - ipu1_di0_hdmi: endpoint@1 { - remote-endpoint = <&hdmi_mux_0>; - }; - - ipu1_di0_mipi: endpoint@2 { - remote-endpoint = <&mipi_mux_0>; - }; - - ipu1_di0_lvds0: endpoint@3 { - remote-endpoint = <&lvds0_mux_0>; - }; - - ipu1_di0_lvds1: endpoint@4 { - remote-endpoint = <&lvds1_mux_0>; - }; - }; - - ipu1_di1: port@3 { - #address-cells = <1>; - #size-cells = <0>; - reg = <3>; - - ipu1_di0_disp1: endpoint@0 { - }; - - ipu1_di1_hdmi: endpoint@1 { - remote-endpoint = <&hdmi_mux_1>; - }; - - ipu1_di1_mipi: endpoint@2 { - remote-endpoint = <&mipi_mux_1>; - }; - - ipu1_di1_lvds0: endpoint@3 { - remote-endpoint = <&lvds0_mux_1>; - }; - - ipu1_di1_lvds1: endpoint@4 { - remote-endpoint = <&lvds1_mux_1>; - }; - }; }; }; };