From nobody Thu Apr 2 17:18:14 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 4469334AB0D for ; Fri, 27 Mar 2026 16:12:39 +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=1774627961; cv=none; b=G908XTVpqaRvH790MGnQLtrbq5M//pSQ8p4xIp0kCySEH1n+G0I3t4i2kLsEvIPU90vRi8cb11BIg3B+ABOT1wE6p1Di1BY1NZWZ9Vls3AbI96OWXlR5sUtn2jG1g96fZvzUt5WlbWzHA27KwdS1NNGt237yoOsv9X36IXob0iw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774627961; c=relaxed/simple; bh=MNrAIbdMcQ69eUABsCEhZ1TvMsJSWiKNRpYtVmTWOy8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RI9ovgdUGzML/FrdbIId7RMZX+sWIPiuxDSiILJiJNnfSLI2Kst5fJUeS0t0zUT3lGllGXHFgTh8mGjTmWoupTO6XXQ9lAmPXoBzyrL9LJ66cJh2BQtQGKFXj6brizhN2ahmKw/A4X1Ck+RgEQB/VI0/uOJsahzNWtDs6m7Xj5s= 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=yxkqqcFt; 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="yxkqqcFt" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b97e6e48b24so402672666b.2 for ; Fri, 27 Mar 2026 09:12:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1774627957; x=1775232757; 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=w2+QJfKRcmrV5A3/+Pu8IIk900YGksP7rXJkNHvnm5M=; b=yxkqqcFtkVnIE7yUtU9TeoTOn4a/BDIAqeE0eeysU5YmP3eAMs3pzVvQWA91+HlzJ4 LO/xEATw0q4h9J53k3XsTDKVKd9WC/vvVvIvnPUkFfz6R6/5hyq67BvkHOOUxnBuvNvt LzFswgiNe5BJLKrj+BSiYthXwBkWnLfb4sO8wWiiBLOi381j9a16kcgQz7JZk3Kd8tOS Qjn5sW+Spt+J3PWBa0HbKTwYeexu9doECP9oCYIGOEe/44n5dtnYWTbCVKXsV5KTJy3W +0XMrSB/jRkSCsb0dJ9I+TtCX5nx4xi8y0iFXsV5tJMPwYhC134HDnVkgDskG0A80IO3 uzPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774627957; x=1775232757; 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=w2+QJfKRcmrV5A3/+Pu8IIk900YGksP7rXJkNHvnm5M=; b=ouGyIjb4u1v9/wYqZpRLG9xHL0TgAyzPoMSyTVseoypyxSgzUrc72BHFc+103GiLUT eb6r0wk187kO6+KZbE84RTumFYsVYxrUd2lYSdLoCKr2zHcEoUbODW3xnCcgbRiATB+P SPut7VzZ+6n0Jl+DBauyUq33bx8vbKRGGs/JxDl4p837v4mZ3dpYFV1iS09tyPM/QxId RlMztztMkoA+D8mMmXEP9vsvvhhaKs5tAIHPXeSc7SescfTa+1MJ6t2yL/05lHoMnKAL BeHUX3IPoV/MK+ZvhiU5Peu4p1RpJ7egyLh8G8SVZC+JR8zebP0pgIkVnLcAFZfd/vfH GBsQ== X-Forwarded-Encrypted: i=1; AJvYcCXOAcRawT9xPPE7x7mEbTX7g1TodzZvjpH8feQzjN5+RIcZyaBzKqWKSt74FlmLOYeVR7S6nSi3yGxLcFE=@vger.kernel.org X-Gm-Message-State: AOJu0YwSxRaWm/0RKiW0KnAFxElBdG7SjHvbMWPCzFYgdnJYuVd8OAb1 MXB2mLTqoDaFCOSbYLWmZlMGj4SZVDphq/g0MNgJCo9gvLNvqtqC6ydD4TK201ysfw4= X-Gm-Gg: ATEYQzz3Cw9hXIhdXEk954imWNksyLNCXDYoKzqjCDJVlkR0Nd6mLYjOCSy6dAe8pzD 8yXcuHFagp5+5LSo1a/ubojxeKDkUOPEcEf4PortMy4JL3yMejhNxL/mBKcl91ykQgtoOHWidRB Mz5mnrn8FZHWpYTk1CjWok92gbHPwx8+NIg6ZcTCPAWoyyv8VNXnM9NHyRCL8tfrl29yJ6QgeaU t1pdmHjiQEyTltCCKFVua94139lRLDc2rjoKe5HAjd1Lm69wx84rjJtDD1t+YJiKcsLIXAQLH6F 0yNzYjvp+PaFd0qK67g7RbVAYd/b1AFNmt10KfQxxWxo1c++AEoQn+opprSu8Hura1sDsMjxzFl jGdMjr8qVK1gb0rjGlgRFpMDWhp3ZnY0ch80UYQEJBkQjReIF/G5hGfUmn2wel6KLNP3kHeW5GW GDtP8339wgShSbjN13/5gyk8QH7IkRJnezWeLUiDdvUk/YMm/Q/y903FD5U7r8Wus57r4MgLPDS Eo8dklNXaagdh55 X-Received: by 2002:a17:907:388b:b0:b98:4850:3b89 with SMTP id a640c23a62f3a-b9b508fb15bmr201044366b.37.1774627957321; Fri, 27 Mar 2026 09:12:37 -0700 (PDT) Received: from [172.16.220.101] (144-178-202-139.static.ef-service.nl. [144.178.202.139]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9b20265cc0sm273518366b.15.2026.03.27.09.12.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 09:12:37 -0700 (PDT) From: Luca Weiss Date: Fri, 27 Mar 2026 17:12:25 +0100 Subject: [PATCH v2 6/9] drm/msm/dsi: add support for DSI-PHY on Milos 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: <20260327-milos-mdss-v2-6-bc586683f5ca@fairphone.com> References: <20260327-milos-mdss-v2-0-bc586683f5ca@fairphone.com> In-Reply-To: <20260327-milos-mdss-v2-0-bc586683f5ca@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 , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jonathan Marek , Krishna Manikandan , Neil Armstrong , Alexander Koskovich 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 , Dmitry Baryshkov X-Mailer: b4 0.15.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774627949; l=2987; i=luca.weiss@fairphone.com; s=20250611; h=from:subject:message-id; bh=MNrAIbdMcQ69eUABsCEhZ1TvMsJSWiKNRpYtVmTWOy8=; b=5SR/5qTBYNIDCGL8cuTNXwvhzYkYevnNbG5tqBVj6DaWvC5VwQFqUBefrvK3PQwf37OLko88/ 49lWJuZx0jPD32kD0ipHchOJxdTUSFwUd9ONcju8pYJK36i70aOoZXK X-Developer-Key: i=luca.weiss@fairphone.com; a=ed25519; pk=O1aw+AAust5lEmgrNJ1Bs7PTY0fEsJm+mdkjExA69q8= Add DSI PHY support for the Milos platform. Reviewed-by: Dmitry Baryshkov Signed-off-by: Luca Weiss --- drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 ++ drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 1 + drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/ds= i/phy/dsi_phy.c index c59375aaae19..1fb3899b88bf 100644 --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c @@ -571,6 +571,8 @@ static const struct of_device_id dsi_phy_dt_match[] =3D= { .data =3D &dsi_phy_5nm_8350_cfgs }, { .compatible =3D "qcom,sm8450-dsi-phy-5nm", .data =3D &dsi_phy_5nm_8450_cfgs }, + { .compatible =3D "qcom,milos-dsi-phy-4nm", + .data =3D &dsi_phy_4nm_milos_cfgs }, { .compatible =3D "qcom,sm8550-dsi-phy-4nm", .data =3D &dsi_phy_4nm_8550_cfgs }, { .compatible =3D "qcom,sm8650-dsi-phy-4nm", diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h b/drivers/gpu/drm/msm/ds= i/phy/dsi_phy.h index c01784ca38ed..21a59d66e8dc 100644 --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.h @@ -61,6 +61,7 @@ extern const struct msm_dsi_phy_cfg dsi_phy_5nm_8350_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_5nm_8450_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_5nm_8775p_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_5nm_sar2130p_cfgs; +extern const struct msm_dsi_phy_cfg dsi_phy_4nm_milos_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_4nm_8550_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_4nm_8650_cfgs; extern const struct msm_dsi_phy_cfg dsi_phy_3nm_8750_cfgs; diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c b/drivers/gpu/drm/ms= m/dsi/phy/dsi_phy_7nm.c index 8f4b03713f25..984a66085dfb 100644 --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c @@ -1436,6 +1436,29 @@ const struct msm_dsi_phy_cfg dsi_phy_5nm_sar2130p_cf= gs =3D { .quirks =3D DSI_PHY_7NM_QUIRK_V5_2, }; =20 +const struct msm_dsi_phy_cfg dsi_phy_4nm_milos_cfgs =3D { + .has_phy_lane =3D true, + .regulator_data =3D dsi_phy_7nm_98000uA_regulators, + .num_regulators =3D ARRAY_SIZE(dsi_phy_7nm_98000uA_regulators), + .ops =3D { + .enable =3D dsi_7nm_phy_enable, + .disable =3D dsi_7nm_phy_disable, + .pll_init =3D dsi_pll_7nm_init, + .save_pll_state =3D dsi_7nm_pll_save_state, + .restore_pll_state =3D dsi_7nm_pll_restore_state, + .set_continuous_clock =3D dsi_7nm_set_continuous_clock, + }, + .min_pll_rate =3D 600000000UL, +#ifdef CONFIG_64BIT + .max_pll_rate =3D 5000000000UL, +#else + .max_pll_rate =3D ULONG_MAX, +#endif + .io_start =3D { 0xae95000 }, + .num_dsi_phy =3D 1, + .quirks =3D DSI_PHY_7NM_QUIRK_V5_2, +}; + const struct msm_dsi_phy_cfg dsi_phy_4nm_8550_cfgs =3D { .has_phy_lane =3D true, .regulator_data =3D dsi_phy_7nm_98400uA_regulators, --=20 2.53.0