From patchwork Fri Sep 16 18:17:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 2367 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id E83C03F032 for ; Fri, 16 Sep 2022 20:19:13 +0200 (CEST) Received: by mail-pj1-f72.google.com with SMTP id x4-20020a17090a294400b002007b5f5fabsf208308pjf.7 for ; Fri, 16 Sep 2022 11:19:13 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1663352352; cv=pass; d=google.com; s=arc-20160816; b=KufT/YKLzanfVBpI1dJYjCcbcza0LueKfeP1fxw3RQ7KG6ftTtrPsWug8JBYzHa6y1 KzpB+64TMYM0agFtdKisc7crlow90JsURkFkEQH/4c+hzOGcedT7ePxwcw0JsVX5eqZC YbfyGe8c9ZNSTQdhApzGQCWn6sjt6tigBx5lS9z1f58hrdRibz1aHg1bYralbNe+wi1Z p1weEWZpmOGJdedqn/ErufqI/R6ULxocDDN959+gdM0qJmkaF18Q+a7sa+HM/wJz9mBL EIOatsaMC3v/bnp0cnZYMV322Maog4XILU4XvK1XQjBu+a+Q1iUtICOPjHvNs/Lu+j9Q MMvA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=x1PmvAfszQkUQDGOhLRltCCONCUeMrmJPkSDjRi4zts=; b=0HCEBWdLJ4MfYBry6qkZ7lzCkA0oGb9BdIsG1s0/kWGNCA+HISLfzX2x3UGpS8M5bi M4qHgOXmP/N04nibFzhQiAZ/c4TwK+j4oeJC+uYo73/PDCIAWkEAAEVLpeT9zD1wpIIn 6JssHZVyGyZHRxp55XePvT0GGUWI2+7Oe6pd1O6Pq5gMGfRwdQuMBGEM8Myw9jDcImZs OMJcDysil76c0zl8toSgo2idu17qLmzs+MFkrJKswNEKPNns4ofi9Oqql9qZIU9kb2kz WowQneoQBJUGf3k9LV8E8+umqFYkUtG9MBQaFpjnSp38RPmbcLvRRIINcj1gIlPEg0BJ 6IDQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=UQg0TSNC; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date; bh=x1PmvAfszQkUQDGOhLRltCCONCUeMrmJPkSDjRi4zts=; b=WQB3V43/UjIcdTFHZ6LJAx3dbtPn9CMBATICDAysNN0SYtn+e2mwaHYTBgIZkneZjx Ah7ojdJUgysc2eOoDafHzWun6kT3lo0ReLY+/Ru8Vdhrku+AQYdR+zL+OwdB9kksVVah EoF6DvZPPK6IQnt30xhoGjMlRtYoA+M0ObqCY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date; bh=x1PmvAfszQkUQDGOhLRltCCONCUeMrmJPkSDjRi4zts=; b=Ept2YUHajP9+QOapkjSIHBRWTPHs8K6eJIihIBmc8RS1eTPQeYQZB66pquMJVsJvRC Ri5W3aSFQzo2sv2JlVpxDZs1SZ6iHDMWbkN3zndVltbSpLrtv/bzG9mOWAynMz2cjtZq Nyc4MfZk7o0mMNjQrgClN7o/yFyAWn26ifTKJD1kqLu0SNFjJnEtJckwc5nYlGUVA4op smBw05CqeNLd6E7e86nKWe3Pn9ARyz2Wtg2lVp6kTU0X2JUxUQJjAWMvesmd5ew3V40I qrMXZnFbMdx4j4iT7IzvSXNhUFFbLbX/1MZITZqtrVKbbLoPDfubAv6DBUTuaBcBKCwp FShw== X-Gm-Message-State: ACrzQf1RMTmoHcdReQNgeIlBxAQCgJAJbfV7EuciGoeb6/eHy5ytZr0U SSDcCwqPjQc0MvgpOKOEjwGoiKnm X-Google-Smtp-Source: AMsMyM6gQKK6cG/c+qN054Ni2j+BRlWYHsIbWyU1zS0a35UVv/8ZI0ZOV0Zij/6W2Bh+pq1BE+UFow== X-Received: by 2002:a17:90b:1d0f:b0:202:be3e:a14a with SMTP id on15-20020a17090b1d0f00b00202be3ea14amr17516131pjb.102.1663352352756; Fri, 16 Sep 2022 11:19:12 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:903:185:b0:16e:ce7d:3e1e with SMTP id z5-20020a170903018500b0016ece7d3e1els16381959plg.1.-pod-prod-gmail; Fri, 16 Sep 2022 11:19:12 -0700 (PDT) X-Received: by 2002:a17:90a:c782:b0:202:c73e:5488 with SMTP id gn2-20020a17090ac78200b00202c73e5488mr17398591pjb.202.1663352351857; Fri, 16 Sep 2022 11:19:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663352351; cv=none; d=google.com; s=arc-20160816; b=QZ/D8neKF1Fh6oFFljTnsFtAffqQagJNYhQU0D8yqaEVkswEy+u9w24pp58pCftyAK 3aV94KxC8sSxKrOGESPLfjWX+tc86Ne7p5fjAd+H3yvVYBet4wQEuj6//eSflqFxiKFD 6K5NpTKCuu3Y0XDXZmNWr0i/41sPCPPBsW0G9qtGRMT8EDKgxb0IDTvN615lixbZ5TaY aASNz6Yd/oIYjbMPh1qv0Ueq/t5Ci2q3eUO87zBC8eTccIGaZc6G3mpigHNNvZcFI9xa Yb1i/Lzc0J0zDJmfJFzXSqrg9YP0DhF0afvqHQwNoBfidivH7P4XFEo2/4j/tkO7k8tD Ta2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=/hU4HRiScUW44wbIelmvAkcYgyCjCELEthv9SlsOnOg=; b=Nu0GKJrT/fUUufS5p8tCkfs9vvuwW2yk0yneonjp71lk0sqRgbI/Ahs0aaU1YRKOix 3fEO2A+Vk9KnGOakMFGB/axKqHR5mlOWhY1CYm3TcccxEorSqE7Se73Bq4ip3rsm12o5 aHAeSJAIN7e7VoYVkEIgfWpzi51jsYOyTOKUCFn1s+IuUHkTwZgJvJHZiHwjaaCddcHd CaSLaELjtsRWnv8WXWRISb+Z2dK9yJWbKl7xWElJRlJ9YpAJfp+o7dtBHEcFMdX//vrr IoZYm3AfmdeEKCxTJOBl6uHi78/x0tfjJnzfRMb63s3oNY9IhFW7WGC9x8nIwMQEb1bD mtNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=UQg0TSNC; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id p7-20020a1709028a8700b001783a40ce84sor7042263plo.120.2022.09.16.11.19.11 for (Google Transport Security); Fri, 16 Sep 2022 11:19:11 -0700 (PDT) Received-SPF: pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Received: by 2002:a17:902:d512:b0:178:2898:8099 with SMTP id b18-20020a170902d51200b0017828988099mr1037241plg.131.1663352351541; Fri, 16 Sep 2022 11:19:11 -0700 (PDT) Received: from localhost.localdomain ([2405:201:c00a:a073:ae5d:6ee4:5c2f:6733]) by smtp.gmail.com with ESMTPSA id d14-20020a17090a6a4e00b002007b60e288sm1770000pjm.23.2022.09.16.11.19.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Sep 2022 11:19:11 -0700 (PDT) From: Jagan Teki To: Andrzej Hajda , Inki Dae , Marek Szyprowski , Joonyoung Shim , Seung-Woo Kim , Kyungmin Park , Frieder Schrempf , Fancy Fang , Tim Harvey , Michael Nazzareno Trimarchi , Adam Ford , Neil Armstrong , Robert Foss , Laurent Pinchart , Tommaso Merciai , Marek Vasut Cc: Matteo Lisi , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP Linux Team , linux-amarula , Jagan Teki Subject: [PATCH v5 07/11] drm: bridge: samsung-dsim: Add platform PLL_P (PMS_P) offset Date: Fri, 16 Sep 2022 23:47:27 +0530 Message-Id: <20220916181731.89764-8-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220916181731.89764-1-jagan@amarulasolutions.com> References: <20220916181731.89764-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: jagan@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=UQg0TSNC; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Look like PLL PMS_P offset value varies between platforms that have Samsung DSIM IP. However, there is no clear evidence for it as both Exynos and i.MX 8M Mini Application Processor Reference Manual is still referring the PMS_P offset as 13. The offset 13 is not working for i.MX8M Mini SoCs but the downstream NXP sec-dsim.c driver is using offset 14 for i.MX8M Mini SoC platforms [1] [2]. PMS_P value set in sec_mipi_dsim_check_pll_out using PLLCTRL_SET_P() with offset 13 and then an additional offset of one bit added in sec_mipi_dsim_config_pll via PLLCTRL_SET_PMS(). Not sure whether it is reference manual documentation or something else but this patch trusts the downstream code and handle PLL_P offset via platform driver data so-that imx8mm driver data shall use pll_p_offset to 14. [1] https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/gpu/drm/bridge/sec-dsim.c?h=imx_5.4.47_2.2.0#n210 [2] https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/gpu/drm/bridge/sec-dsim.c?h=imx_5.4.47_2.2.0#n211 v5: * updated clear commit message v4, v3, v2: * none v1: * updated commit message * add downstream driver link Signed-off-by: Frieder Schrempf Signed-off-by: Jagan Teki --- drivers/gpu/drm/bridge/samsung-dsim.c | 10 ++++++++-- include/drm/bridge/samsung-dsim.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 8abf89326424..60f22c506c0f 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -168,7 +168,7 @@ /* DSIM_PLLCTRL */ #define DSIM_FREQ_BAND(x) ((x) << 24) #define DSIM_PLL_EN (1 << 23) -#define DSIM_PLL_P(x) ((x) << 13) +#define DSIM_PLL_P(x, offset) ((x) << (offset)) #define DSIM_PLL_M(x) ((x) << 4) #define DSIM_PLL_S(x) ((x) << 1) @@ -368,6 +368,7 @@ static const struct samsung_dsim_driver_data exynos3_dsi_driver_data = { .max_freq = 1000, .wait_for_reset = 1, .num_bits_resol = 11, + .pll_p_offset = 13, .reg_values = reg_values, }; @@ -380,6 +381,7 @@ static const struct samsung_dsim_driver_data exynos4_dsi_driver_data = { .max_freq = 1000, .wait_for_reset = 1, .num_bits_resol = 11, + .pll_p_offset = 13, .reg_values = reg_values, }; @@ -390,6 +392,7 @@ static const struct samsung_dsim_driver_data exynos5_dsi_driver_data = { .max_freq = 1000, .wait_for_reset = 1, .num_bits_resol = 11, + .pll_p_offset = 13, .reg_values = reg_values, }; @@ -401,6 +404,7 @@ static const struct samsung_dsim_driver_data exynos5433_dsi_driver_data = { .max_freq = 1500, .wait_for_reset = 0, .num_bits_resol = 12, + .pll_p_offset = 13, .reg_values = exynos5433_reg_values, }; @@ -412,6 +416,7 @@ static const struct samsung_dsim_driver_data exynos5422_dsi_driver_data = { .max_freq = 1500, .wait_for_reset = 1, .num_bits_resol = 12, + .pll_p_offset = 13, .reg_values = exynos5422_reg_values, }; @@ -543,7 +548,8 @@ static unsigned long samsung_dsim_set_pll(struct samsung_dsim *dsi, writel(driver_data->reg_values[PLL_TIMER], dsi->reg_base + driver_data->plltmr_reg); - reg = DSIM_PLL_EN | DSIM_PLL_P(p) | DSIM_PLL_M(m) | DSIM_PLL_S(s); + reg = DSIM_PLL_EN | DSIM_PLL_P(p, driver_data->pll_p_offset) | + DSIM_PLL_M(m) | DSIM_PLL_S(s); if (driver_data->has_freqband) { static const unsigned long freq_bands[] = { diff --git a/include/drm/bridge/samsung-dsim.h b/include/drm/bridge/samsung-dsim.h index 0c5a905f3de7..df3d030daec6 100644 --- a/include/drm/bridge/samsung-dsim.h +++ b/include/drm/bridge/samsung-dsim.h @@ -53,6 +53,7 @@ struct samsung_dsim_driver_data { unsigned int max_freq; unsigned int wait_for_reset; unsigned int num_bits_resol; + unsigned int pll_p_offset; const unsigned int *reg_values; };