From nobody Tue Feb 10 03:56:17 2026 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6EF5C33D4F3 for ; Fri, 19 Dec 2025 16:41:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766162491; cv=none; b=B55u4An3FWVtFiSA1G14rZe1zm9A3wjQ+7Lrv3kqdvLMBaq27SOiqQDGg/2vW6dPU8/8jeAgCgPWJsLPgG3ccrmeznKnxq7rOkb45/iO7T5r7j+TSpHe+4kEOtJPUL10WN6407+N24P8gLNhXmvHwSkVx76lvbplxv8LpiSH/d8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766162491; c=relaxed/simple; bh=ZPY/+FNr1/I/jCjPIrjQ2ntydK3ydgHgE/NHLtUlLqI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hyUYX9VJ6X/uc+jXEEuYd8Cy4qpEcVXeZ309BtjBPNUnNrV5PHDnJXjj+oOoLJH8CeloMHi8La1bMyidgzfm7Uq2yW2vEYLwsl+85eK5TdGs3bCmqKGwtm1L1+XcV6W4zd9jqpG7YbKWzeJur7vsaIq/gsdyh7vtke6/5vp/s4o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=zZVgpvB/; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="zZVgpvB/" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b79f8f7ea43so451052666b.2 for ; Fri, 19 Dec 2025 08:41:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1766162483; x=1766767283; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=BUxnJEEvA236F8NBMU+pi14SjYgYMC3mWtbkAiJbgJA=; b=zZVgpvB/it2R6xjifk7VjCSX74bp6+kAD+pwx2yAErZetdTNmQyLkWWfO+xV8kKJkd tO2xoQ/RGsGp2z1apCtfTPK8mcvai+e5WI8XT1UNrhFoIDDnRbWyp0DDS3oJGPd0pIAy agEdxXM7nRGF70uOyD2MaYW4vsoynxdKw/1+l1EOAb9oEqw4Im5HGcefFHiDw7Rx/nwa UBUPNaWm9zGCzv/1IqUhJGn/udp1Kl8rYBCrJ3Esof1r5hmgDpwgKIyerihC2n6aUIis hGF4KCl2msjqrtgNOBDLmUOA1Kq935OsjO4moualmKpM7UbFZutEFSvSdu69Ann7uScm soTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766162483; x=1766767283; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=BUxnJEEvA236F8NBMU+pi14SjYgYMC3mWtbkAiJbgJA=; b=dEIl+kroXYuBdIl1S2cIB82+m1s8S4RpcS68EDbalAOF3dMV6WlI54jeQwoQgxIIMa fQ+mJA7xFS9SWvdgTNzP6NoKwydpKwAF7IVO0epe6OybmaoQz1VlpJuzyHHipEdGfwl5 wZgxnwW9d/pJb4yf81Yd3mwD5LdkboAC1Vs07sg4uyp3VFK048Qh8B+bQx5qxjvgTl/D J0n2IWV3FZIkvJNQHvEqgZFJUkapsyEYVPIGTAA+xlFPzwLH+XO3362QX31xqVopr8Kt YK5O1GxR8NtYGEN3ppfIN6qiC+ipsIbNUFdd25TrcjTaqes+XeGTSTU8PwGFN5O2QK/L FKRA== X-Forwarded-Encrypted: i=1; AJvYcCX0HZOK4cTRmsA4xV8bUzHnMAXVkbMwJY4MuXgT7NcD3ECUuwh4K2WVNOtNE+igg4uO+OhdohSUz7ywqvE=@vger.kernel.org X-Gm-Message-State: AOJu0YzbWm5WVIW09gAITvlR9xzrWdP5A9ExMcFloFDuUq1vK/vNMuHz UQXJcuQq9bN4XM4Q7ReNuhPjeMzwmwdHhSi1uqSpmgQ038MsTL63OHsPXuLOD3MXHL8= X-Gm-Gg: AY/fxX5lQKTfEMLrh6LtFSvB5Nja00gBTCZL4C+8gWCvxh7NMDsvuFR+Qg4B2mjK2RN LI05ipJc1L9zkuHLbEz/epIMIFMMtJcYW7yYdACKZPdAEZ9h9921YN3mhXkmK4WkcZZh6TknwWu pb3vMxhbYVOH3kjPWX6MbZUwm1hQ6518/ARV2AWV88V3ZCG/Ytw7dRMAhGmPHF4OPtkHtcwWY/D jkhJ0skQnX6J5oUN0FFfzic7/xzYPXjddsLZFUbk+2qkJfPOZ6SAzlK6Nq5nPIoiTWp3LoGLsS0 pyaqTUuepoqIr7UIXFGhVjRLzVNiqkidsI/DaaFJV9aY+719r8KraFZGpWox0/VvwSNApTRmX/n KkOfGKhDWCuswhQD8T1hxnWIHTRZ+2iL1WbiwTN/W6VJLMnv2NWO5G+mwa9dP13A2+mGmi+6hBs hbwC1AYC9bOBb95ALB21cnjrvsm3lR7mg7Za3VXaqkaOYq+DgdPaK8OiM3UoqcCe35Mg0MtQ31/ Zt0Xwllz/RlaizXFEsFME3xuS5qu6u51xt4AeOMlpuRDw== X-Google-Smtp-Source: AGHT+IE7/rDvAirOTWuD+BVN5TbR1N6ti7H+jP3ySf2yYQJ6aR8Hobv4GJ5Cw25G9s0WT629tUqWPQ== X-Received: by 2002:a17:907:6e8d:b0:b7a:1be1:823 with SMTP id a640c23a62f3a-b80371f4980mr307764866b.64.1766162483081; Fri, 19 Dec 2025 08:41:23 -0800 (PST) Received: from [192.168.178.182] (2001-1c00-3b89-c600-71a4-084f-6409-1447.cable.dynamic.v6.ziggo.nl. [2001:1c00:3b89:c600:71a4:84f:6409:1447]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8037f4ef1fsm270073866b.64.2025.12.19.08.41.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Dec 2025 08:41:22 -0800 (PST) From: Luca Weiss Date: Fri, 19 Dec 2025 17:41:11 +0100 Subject: [PATCH RFC 5/6] arm64: dts: qcom: milos: Add MDSS Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251219-milos-mdss-v1-5-4537a916bdf9@fairphone.com> References: <20251219-milos-mdss-v1-0-4537a916bdf9@fairphone.com> In-Reply-To: <20251219-milos-mdss-v1-0-4537a916bdf9@fairphone.com> To: Bjorn Andersson , Konrad Dybcio , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, Luca Weiss X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1766162477; l=6457; i=luca.weiss@fairphone.com; s=20250611; h=from:subject:message-id; bh=ZPY/+FNr1/I/jCjPIrjQ2ntydK3ydgHgE/NHLtUlLqI=; b=bTYroNnX9nmEp+PvxNLxIefBtVd4tBPLovBupbfVOdJ8HI0UiqL0WfH/MKEvYwKQ+t8e+eZOC EsYuqD5T1+tB1FhWAdiM4maIun2YecmssvG6Cy1ETDN3K03Ie2h0iZ/ X-Developer-Key: i=luca.weiss@fairphone.com; a=ed25519; pk=O1aw+AAust5lEmgrNJ1Bs7PTY0fEsJm+mdkjExA69q8= Signed-off-by: Luca Weiss --- arch/arm64/boot/dts/qcom/milos.dtsi | 211 ++++++++++++++++++++++++++++++++= +++- 1 file changed, 209 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/milos.dtsi b/arch/arm64/boot/dts/qcom= /milos.dtsi index 0756cf5fb888..2477f0d97278 100644 --- a/arch/arm64/boot/dts/qcom/milos.dtsi +++ b/arch/arm64/boot/dts/qcom/milos.dtsi @@ -3,6 +3,7 @@ * Copyright (c) 2025, Luca Weiss */ =20 +#include #include #include #include @@ -1821,6 +1822,212 @@ camcc: clock-controller@adb0000 { #power-domain-cells =3D <1>; }; =20 + mdss: display-subsystem@ae00000 { + compatible =3D "qcom,milos-mdss"; + reg =3D <0x0 0x0ae00000 0x0 0x1000>; + reg-names =3D "mdss"; + + interrupts =3D ; + + clocks =3D <&dispcc DISP_CC_MDSS_AHB_CLK>, + <&gcc GCC_DISP_HF_AXI_CLK>, + <&dispcc DISP_CC_MDSS_MDP_CLK>; + + resets =3D <&dispcc DISP_CC_MDSS_CORE_BCR>; + + interconnects =3D <&mmss_noc MASTER_MDP QCOM_ICC_TAG_ALWAYS + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY + &cnoc_main SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>; + interconnect-names =3D "mdp0-mem", + "cpu-cfg"; + + power-domains =3D <&dispcc DISP_CC_MDSS_CORE_GDSC>; + + iommus =3D <&apps_smmu 0x1c00 0x2>; + + interrupt-controller; + #interrupt-cells =3D <1>; + + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + status =3D "disabled"; + + mdss_mdp: display-controller@ae01000 { + compatible =3D "qcom,milos-dpu"; + reg =3D <0x0 0x0ae01000 0x0 0x8f000>, + <0x0 0x0aeb0000 0x0 0x2008>; + reg-names =3D "mdp", + "vbif"; + + interrupts-extended =3D <&mdss 0>; + + clocks =3D <&gcc GCC_DISP_HF_AXI_CLK>, + <&dispcc DISP_CC_MDSS_AHB_CLK>, + <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>, + <&dispcc DISP_CC_MDSS_MDP_CLK>, + <&dispcc DISP_CC_MDSS_VSYNC_CLK>; + clock-names =3D "nrt_bus", + "iface", + "lut", + "core", + "vsync"; + + assigned-clocks =3D <&dispcc DISP_CC_MDSS_VSYNC_CLK>; + assigned-clock-rates =3D <19200000>; + + operating-points-v2 =3D <&mdp_opp_table>; + + power-domains =3D <&rpmhpd RPMHPD_CX>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + dpu_intf1_out: endpoint { + remote-endpoint =3D <&mdss_dsi0_in>; + }; + }; + }; + + mdp_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-200000000 { + opp-hz =3D /bits/ 64 <200000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + }; + + opp-342000000 { + opp-hz =3D /bits/ 64 <342000000>; + required-opps =3D <&rpmhpd_opp_svs>; + }; + + opp-402000000 { + opp-hz =3D /bits/ 64 <402000000>; + required-opps =3D <&rpmhpd_opp_svs_l1>; + }; + + opp-535000000 { + opp-hz =3D /bits/ 64 <535000000>; + required-opps =3D <&rpmhpd_opp_nom>; + }; + + opp-600000000 { + opp-hz =3D /bits/ 64 <600000000>; + required-opps =3D <&rpmhpd_opp_nom_l1>; + }; + + opp-630000000 { + opp-hz =3D /bits/ 64 <630000000>; + required-opps =3D <&rpmhpd_opp_turbo>; + }; + }; + }; + + mdss_dsi0: dsi@ae94000 { + compatible =3D "qcom,milos-dsi-ctrl", "qcom,mdss-dsi-ctrl"; + reg =3D <0x0 0x0ae94000 0x0 0x400>; + reg-names =3D "dsi_ctrl"; + + interrupts-extended =3D <&mdss 4>; + + clocks =3D <&dispcc DISP_CC_MDSS_BYTE0_CLK>, + <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, + <&dispcc DISP_CC_MDSS_PCLK0_CLK>, + <&dispcc DISP_CC_MDSS_ESC0_CLK>, + <&dispcc DISP_CC_MDSS_AHB_CLK>, + <&gcc GCC_DISP_HF_AXI_CLK>; + clock-names =3D "byte", + "byte_intf", + "pixel", + "core", + "iface", + "bus"; + + assigned-clocks =3D <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, + <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; + assigned-clock-parents =3D <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>, + <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>; + + operating-points-v2 =3D <&mdss_dsi_opp_table>; + + power-domains =3D <&rpmhpd RPMHPD_CX>; + + phys =3D <&mdss_dsi0_phy>; + phy-names =3D "dsi"; + + #address-cells =3D <1>; + #size-cells =3D <0>; + + status =3D "disabled"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + mdss_dsi0_in: endpoint { + remote-endpoint =3D <&dpu_intf1_out>; + }; + }; + + port@1 { + reg =3D <1>; + + mdss_dsi0_out: endpoint { + }; + }; + }; + + mdss_dsi_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + opp-187500000 { + opp-hz =3D /bits/ 64 <187500000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + }; + + opp-300000000 { + opp-hz =3D /bits/ 64 <300000000>; + required-opps =3D <&rpmhpd_opp_svs>; + }; + + opp-358000000 { + opp-hz =3D /bits/ 64 <358000000>; + required-opps =3D <&rpmhpd_opp_svs_l1>; + }; + }; + }; + + mdss_dsi0_phy: phy@ae95000 { + compatible =3D "qcom,milos-dsi-phy-4nm"; + reg =3D <0x0 0x0ae95000 0x0 0x200>, + <0x0 0x0ae95200 0x0 0x280>, + <0x0 0x0ae95500 0x0 0x400>; + reg-names =3D "dsi_phy", + "dsi_phy_lane", + "dsi_pll"; + + clocks =3D <&dispcc DISP_CC_MDSS_AHB_CLK>, + <&rpmhcc RPMH_CXO_CLK>; + clock-names =3D "iface", + "ref"; + + #clock-cells =3D <1>; + #phy-cells =3D <0>; + + status =3D "disabled"; + }; + }; + dispcc: clock-controller@af00000 { compatible =3D "qcom,milos-dispcc"; reg =3D <0x0 0x0af00000 0x0 0x20000>; @@ -1829,8 +2036,8 @@ dispcc: clock-controller@af00000 { <&sleep_clk>, <&gcc GCC_DISP_AHB_CLK>, <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>, - <0>, /* dsi0_phy_pll_out_byteclk */ - <0>, /* dsi0_phy_pll_out_dsiclk */ + <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>, + <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>, <0>, /* dp0_phy_pll_link_clk */ <0>; /* dp0_phy_pll_vco_div_clk */ =20 --=20 2.52.0