From patchwork Mon Aug 21 13:40:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Stein X-Patchwork-Id: 13359461 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CE68FEE49AA for ; Mon, 21 Aug 2023 13:41:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=lgR+Sp785mcj2oILrwDvS0NP5mIk6qyTZbDTYBQidMA=; b=GtXf4wZej0NHkI PF1vUitR8f1Jx16Cx0rscWBWjSvy85eRWqsG32uKQHIDxY/Cm61aTLdGAlgXQxjMGZe3Bd25DG6tj VClRhaEd9DAaefp/Vt6fjU8MWIddxUBvqrtpq8wqMx6dT3bhYFxxrLE63v5u38XF6tDRpoTPled3z ivfKXXGAi1dHZp2PVcabPWVZuJr9p47Pfs5udaNb6HqFHkT+FqnsWsh8falCl8SHgF/GDIRnbsFrb 6XSZXuZ1E07lm9v9htO2Ibjfrxi9gZ7aP5vTd2f96i4pl9pIQw486tuEOZf9FWsGAnxTpgz0lzVYs fTiqjZRXO6FgHQDf7Qhw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qY599-00E64Y-24; Mon, 21 Aug 2023 13:40:43 +0000 Received: from mx1.tq-group.com ([93.104.207.81]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qY592-00E61o-1g for linux-arm-kernel@lists.infradead.org; Mon, 21 Aug 2023 13:40:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tq-group.com; i=@tq-group.com; q=dns/txt; s=key1; t=1692625236; x=1724161236; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=h817tnBkoiUYVNTNEOCWNnfyJ2GfHbo4QUMpeLDMwSw=; b=aFvm47Oaa9j7MrEOjFtEPZ3N8Qfk1IB+l7kINe7zlQYE3N9HrA44CPBZ jiaZdGlSJnu/xtX7EGx64VbJ8RtbICUWeLQUHlmcPf8pwzo56jpar/w2d iEW1Bq2MdRDj28P9LjD7CzhTdn+VAhPQT8/gVWxtAq1z+SgQqMyXnuO9B nUYEbD+5JV1BSgV0qr31n0yn2lKQBlke/561C7slgNohjJ9sOw7dB7ptX uql3F1RJtsO1vLK0+ao1VL5XtVtujc/cupUtoR54FGc4AAdefFdkjEEDo vT87rGSaYw7L+qb04iLBrjZ0nGt64cwdvaMtPN2aZcHPdVd+ShG/Rqnyn w==; X-IronPort-AV: E=Sophos;i="6.01,190,1684792800"; d="scan'208";a="32542896" Received: from vtuxmail01.tq-net.de ([10.115.0.20]) by mx1.tq-group.com with ESMTP; 21 Aug 2023 15:40:29 +0200 Received: from steina-w.tq-net.de (steina-w.tq-net.de [10.123.53.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by vtuxmail01.tq-net.de (Postfix) with ESMTPSA id 9785C280084; Mon, 21 Aug 2023 15:40:29 +0200 (CEST) From: Alexander Stein To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Fabio Estevam , Catalin Marinas , Will Deacon Cc: Alexander Stein , Pengutronix Kernel Team , NXP Linux Team , devicetree@vger.kernel.org, linux@ew.tq-group.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node Date: Mon, 21 Aug 2023 15:40:24 +0200 Message-Id: <20230821134026.385752-2-alexander.stein@ew.tq-group.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230821134026.385752-1-alexander.stein@ew.tq-group.com> References: <20230821134026.385752-1-alexander.stein@ew.tq-group.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230821_064036_860332_95E695EF X-CRM114-Status: GOOD ( 13.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This adds the DSI-LVDS bridge including the regulator, backlight and an unspecified panel. It is expected to set the compatible when the display chain is enabled. Signed-off-by: Alexander Stein --- .../dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 29 ++++++++ .../boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 5 ++ arch/arm64/boot/dts/freescale/mba8mx.dtsi | 68 +++++++++++++++++++ 3 files changed, 102 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts index 156d793a0c972..b2b825d990a62 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts @@ -56,6 +56,19 @@ usb_dr_connector: endpoint { }; }; +&dsi_lvds_bridge { + ports { + port@0 { + reg = <0>; + + lvds_bridge_in: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&mipi_dsi_out>; + }; + }; + }; +}; + &i2c1 { expander2: gpio@27 { compatible = "nxp,pca9555"; @@ -72,6 +85,22 @@ expander2: gpio@27 { }; }; +&mipi_dsi { + samsung,burst-clock-frequency = <891000000>; + samsung,esc-clock-frequency = <20000000>; + + ports { + port@1 { + reg = <1>; + + mipi_dsi_out: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&lvds_bridge_in>; + }; + }; + }; +}; + &pcie_phy { clocks = <&pcie0_refclk>; status = "okay"; diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi index b4466a26d838a..8c0c6e7159247 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi @@ -230,6 +230,11 @@ eeprom0: eeprom@57 { }; }; +&mipi_dsi { + vddcore-supply = <&ldo4_reg>; + vddio-supply = <&ldo3_reg>; +}; + &pcie_phy { fsl,refclk-pad-mode = ; fsl,clkreq-unsupported; diff --git a/arch/arm64/boot/dts/freescale/mba8mx.dtsi b/arch/arm64/boot/dts/freescale/mba8mx.dtsi index 8a9fe5cdcc98a..269e604cb1574 100644 --- a/arch/arm64/boot/dts/freescale/mba8mx.dtsi +++ b/arch/arm64/boot/dts/freescale/mba8mx.dtsi @@ -8,6 +8,16 @@ /* TQ-Systems GmbH MBa8Mx baseboard */ / { + backlight_lvds0: backlight0 { + compatible = "pwm-backlight"; + pwms = <&pwm3 0 5000000 0>; + brightness-levels = <0 4 8 16 32 64 128 255>; + default-brightness-level = <7>; + power-supply = <®_12v>; + enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>; + status = "disabled"; + }; + beeper { compatible = "pwm-beeper"; pwms = <&pwm4 0 250000 0>; @@ -65,12 +75,45 @@ led2: led2 { }; }; + gpio_delays: gpio-delays { + compatible = "gpio-delay"; + #gpio-cells = <3>; + gpio-controller; + gpios = <&expander0 6 GPIO_ACTIVE_HIGH>; + gpio-line-names = "LVDS_BRIDGE_EN_1V8"; + }; + + panel0: panel_lvds0 { + /* + * Display is not fixed, so compatible has to be added from + * DT overlay + */ + backlight = <&backlight_lvds0>; + power-supply = <®_vcc_3v3>; + status = "disabled"; + + port { + panel_in_lvds0: endpoint { + data-lanes = <1 2 3 4>; + remote-endpoint = <&lvds_bridge_out>; + }; + }; + }; + pcie0_refclk: pcie0-refclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <100000000>; }; + reg_12v: regulator-12v { + compatible = "regulator-fixed"; + regulator-name = "MBA8MX_12V"; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + regulator-always-on; + }; + reg_hub_vbus: regulator-hub-vbus { compatible = "regulator-fixed"; regulator-name = "MBA8MX_HUB_VBUS"; @@ -157,6 +200,10 @@ expander0: gpio@23 { interrupts = <9 IRQ_TYPE_EDGE_FALLING>; interrupt-controller; #interrupt-cells = <2>; + gpio-line-names = "", "", "", "", + "", "", "LVDS_BRIDGE_EN_3V3", "", + "", "", "", "", + "", "", "", ""; sd-mux-oe-hog { gpio-hog; @@ -227,6 +274,27 @@ &i2c3 { scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; status = "okay"; + + dsi_lvds_bridge: bridge@2d { + compatible = "ti,sn65dsi84"; + reg = <0x2d>; + enable-gpios = <&gpio_delays 0 130000 0>; + vcc-supply = <®_sn65dsi83_1v8>; + status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@2 { + reg = <2>; + + lvds_bridge_out: endpoint { + remote-endpoint = <&panel_in_lvds0>; + }; + }; + }; + }; }; &pwm3 {