From patchwork Mon Jan 23 12:23:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 2653 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 927973F039 for ; Mon, 23 Jan 2023 13:25:52 +0100 (CET) Received: by mail-pj1-f69.google.com with SMTP id h2-20020a17090a580200b0022bbc8d6b6bsf2183558pji.8 for ; Mon, 23 Jan 2023 04:25:52 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1674476751; cv=pass; d=google.com; s=arc-20160816; b=esey/RFuMsw7+ZehrrYRqJJYNKV+qj7a0ObGZ7PcZyOqo+rysMRcR3iY3UosgQvIti 7smO540TezkJ7l6Y1fzhDCxX8OJMI0fsmZtRUjLSjzrK4GNU+N0x94HcyF87ZjU3ayXv 8J0mvRHBNEdlKsOjMGVopRbvB3EXC0Fte7ioTvOp6x+876qv7EcqHQZyAGygL4yaGRfq JogBGrcngjdivqLLgPZmKdaZMckMkf8mtFcsdNEGRgNLVJ3yz7g0hO1EbHVBV4EZ2Thg CTtYzehUxtxRdSnu3GeEB0qocFtO6MVnxrWgDFxfCJOH7igrbXEFjzdysRc29DV7EMuk r4EA== 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=H69QoaPlwCb0Ap5jT4yozoLnnIyiab/YzewleRIN12Q=; b=kjRl1JOVJtTX1UFCkQklgRqlvC3B/tOObdHrqBZcYAUercWwWXQmttSVaNBZYIgyP1 98bfh5TWtYJsLJODLJdEeeomiuIORCVAlxHZZF9wudipKlb785KRKuZkcnS6KawPNf7Z 1Lk4FH3o19ORaAT5/VzbXXn70Iwij64FJLCU2Z818gzKREkiSCKmBPVR+fGZ/1M62Ck1 LUsRrqU+eDljEAqUCdp58ZzRG+ptzPrFHVzkueHeUWSn5z2NuLWF2jwthd2djgLpoZn8 dWejY5SU9P+3c/K5bO+JeKvDR1os9u5KcSMMqkutqCDBoy6z9ACsVBk1sN+thZ1mcYth p+Dw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=fN8WO4H6; 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:message-id:reply-to; bh=H69QoaPlwCb0Ap5jT4yozoLnnIyiab/YzewleRIN12Q=; b=BL9fC4IbMDwaRhW2t+hCu93TWzHk499rPdAis6HphmByatJEH80DKiRNO2WsoMrKYi CO+bJT0Q5YdpYPzCYeLXNfyDdN8PzgoTM1kvtnEdRlZQGrBvGnP3aYTYl7G5ukKlFAsG ptXTV3FZNLQJxa9akC7mFVBrrsfS0gBXM5d6A= 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:message-id:reply-to; bh=H69QoaPlwCb0Ap5jT4yozoLnnIyiab/YzewleRIN12Q=; b=bo4E3QBP7CipRV3zKA42nqzX5ZShVnHuajp4RdQ7Tik1cyxnBpGWR7BFTrViH3rtuv w1NAF3KuG9evGzEzmCZWF4Gpb+VHJLI4bQhLmotP9JmU57v5+/2XoIfkKRQG1U3iSWOe A12rZDuka4t0yyHXHonjtga7KzMDCv4zWYZfeD7poXmnOHy9xazc3brXJffgzuKOu1gE BnFDB2rNpdaV7sXirFMG4r4ymfyLtdI3SuRJr1jpSUSx3WfGA9G5BIYgGtMmb7e4Gk1u poDT2ZNY4D1YyGlJpjlI4At7pDlf+bNFkz+Yd5HE2UdIiS4vHdsVTCr105V22MY9/weg 0iNg== X-Gm-Message-State: AFqh2kpsCj3u0ekOKPupAQiFuv01OwDgS5K03wOXC/hwk4+JRai/IV7d Dt9lgBVyq+msr8ifGUPB+VY9z3Gk X-Google-Smtp-Source: AMrXdXuCdns60KDjA/zY5K2IH2ifTj2rVlgQRE4d+fFQbbS5tCXyJEsi0YLUxY7hL3tNxeCnayA3rA== X-Received: by 2002:a17:90a:9707:b0:229:a8c4:9cf0 with SMTP id x7-20020a17090a970700b00229a8c49cf0mr2482311pjo.217.1674476751383; Mon, 23 Jan 2023 04:25:51 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:902:b406:b0:189:b2b2:56d5 with SMTP id x6-20020a170902b40600b00189b2b256d5ls12794270plr.0.-pod-prod-gmail; Mon, 23 Jan 2023 04:25:50 -0800 (PST) X-Received: by 2002:a17:902:d506:b0:194:de33:657c with SMTP id b6-20020a170902d50600b00194de33657cmr15798486plg.66.1674476750492; Mon, 23 Jan 2023 04:25:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674476750; cv=none; d=google.com; s=arc-20160816; b=WrLmy5V2J0DjDg7mOA5xbctIMXY/bKMSY+wIJ057UFOp0Ych42Xg+NW30X8FOkTV+F Nw5knF2foEnVZmyG02mk8W9M9pQ/WoKYyxr79JDGtRGfFkC6B3X/DUDTMNkn0zFNQIVT L+u6lcytYGvKohYkcHn/rVwsnBRx6eN6lABZIIH/8ehgx3Iq91WrOfiNfEHRMHtnEgml SzcAJjjX9vEvOKRA+z9zfMauAdMxauUOsWBF7LxDe0WUuRhv/U6ef6Twzmp9ithhpizB qDzdERRZi8OsjM031W2zo8KF0PrmNt9MarDWKYRYPeUG0IggiDYBGoxhA2fNGDLcZj4h 6OzA== 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=aarpQnT43aQXsGZD812JWiD/2W82RnE9Rgav7f9Bikc=; b=Gspw2lfnLFvUcuUTS2lmhHdePfRu2DB5k+I3wQaCc5ABl+kJaHLPSTnAFgch+9jgGq 9QoCIFsbNNwZvop33DDAkZaSAYEEpDZdNIa6O23ngjtVCPyZIt0VNfinTSuyuh/YzlVo FhO8MhfcOgeCp6b5kmC6x3/aDu8pk1xUQoN7pzR9iEtq526siMXwgI3igf6ByutnvypO b1VDYtcYm6EubaffxwC8bDmqx37zbI076sqgHm+4Iqd0dewZtMMGovXOt/xw+Xb1dddh ZgY2/92l10LunjYmcPbLx/CELhAHPxSx99JXcx6TX3LpgIu4N+SNGbzZQx/erXpZwQaf SZEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=fN8WO4H6; 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 o18-20020a170902779200b001949e879626sor8424444pll.75.2023.01.23.04.25.50 for (Google Transport Security); Mon, 23 Jan 2023 04:25:50 -0800 (PST) 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:a05:6a20:691d:b0:af:b909:2b34 with SMTP id q29-20020a056a20691d00b000afb9092b34mr29656527pzj.41.1674476750174; Mon, 23 Jan 2023 04:25:50 -0800 (PST) Received: from localhost.localdomain ([2405:201:c00a:a15f:2279:f361:f93b:7971]) by smtp.gmail.com with ESMTPSA id w10-20020a170902e88a00b001960806728asm1291811plg.88.2023.01.23.04.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Jan 2023 04:25:49 -0800 (PST) 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 v11 18/18] drm: bridge: samsung-dsim: Add i.MX8M Plus support Date: Mon, 23 Jan 2023 17:53:19 +0530 Message-Id: <20230123122319.261341-19-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230123122319.261341-1-jagan@amarulasolutions.com> References: <20230123122319.261341-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=fN8WO4H6; 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: , From: Marek Vasut Add extras to support i.MX8M Plus. The main change is the removal of HS/VS/DE signal inversion in the LCDIFv3-DSIM glue logic, otherwise the implementation of this IP in i.MX8M Plus is very much compatible with the i.MX8M Mini/Nano one. Reviewed-by: Frieder Schrempf Acked-by: Robert Foss Signed-off-by: Marek Vasut Signed-off-by: Jagan Teki --- Changes for v11: - collect RB from Frieder - collect ACK from Robert Changes for v10: - none Changes for v9: - added im8mp in DSIM_STATE_REINITIALIZED check - drop previous = NULL check drivers/gpu/drm/bridge/samsung-dsim.c | 23 +++++++++++++++++++++++ include/drm/bridge/samsung-dsim.h | 1 + 2 files changed, 24 insertions(+) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 18645c8eaba1..d93e589f5b91 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -479,6 +479,7 @@ samsung_dsim_types[DSIM_TYPE_COUNT] = { [DSIM_TYPE_EXYNOS5422] = &exynos5422_dsi_driver_data, [DSIM_TYPE_EXYNOS5433] = &exynos5433_dsi_driver_data, [DSIM_TYPE_IMX8MM] = &imx8mm_dsi_driver_data, + [DSIM_TYPE_IMX8MP] = &imx8mm_dsi_driver_data, }; static inline struct samsung_dsim *host_to_dsi(struct mipi_dsi_host *h) @@ -1462,10 +1463,17 @@ static int samsung_dsim_atomic_check(struct drm_bridge *bridge, * 13.6.2.7.2 RGB interface * both claim "Vsync, Hsync, and VDEN are active high signals.", the * LCDIF must generate inverted HS/VS/DE signals, i.e. active LOW. + * + * The i.MX8M Plus glue logic between LCDIFv3 and DSIM does not + * implement the same behavior, therefore LCDIFv3 must generate + * HS/VS/DE signals active HIGH. */ if (dsi->plat_data->hw_type == DSIM_TYPE_IMX8MM) { adjusted_mode->flags |= (DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC); adjusted_mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); + } else if (dsi->plat_data->hw_type == DSIM_TYPE_IMX8MP) { + adjusted_mode->flags &= ~(DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC); + adjusted_mode->flags |= (DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); } return 0; @@ -1640,6 +1648,10 @@ static const struct samsung_dsim_host_ops generic_dsim_host_ops = { .unregister_host = generic_dsim_unregister_host, }; +static const struct drm_bridge_timings samsung_dsim_bridge_timings_de_high = { + .input_bus_flags = DRM_BUS_FLAG_DE_HIGH, +}; + static const struct drm_bridge_timings samsung_dsim_bridge_timings_de_low = { .input_bus_flags = DRM_BUS_FLAG_DE_LOW, }; @@ -1729,6 +1741,8 @@ int samsung_dsim_probe(struct platform_device *pdev) /* DE_LOW: i.MX8M Mini/Nano LCDIF-DSIM glue logic inverts HS/VS/DE */ if (dsi->plat_data->hw_type == DSIM_TYPE_IMX8MM) dsi->bridge.timings = &samsung_dsim_bridge_timings_de_low; + else + dsi->bridge.timings = &samsung_dsim_bridge_timings_de_high; if (dsi->plat_data->host_ops && dsi->plat_data->host_ops->register_host) ret = dsi->plat_data->host_ops->register_host(dsi); @@ -1834,11 +1848,20 @@ static const struct samsung_dsim_plat_data samsung_dsim_imx8mm_pdata = { .host_ops = &generic_dsim_host_ops, }; +static const struct samsung_dsim_plat_data samsung_dsim_imx8mp_pdata = { + .hw_type = DSIM_TYPE_IMX8MP, + .host_ops = &generic_dsim_host_ops, +}; + static const struct of_device_id samsung_dsim_of_match[] = { { .compatible = "fsl,imx8mm-mipi-dsim", .data = &samsung_dsim_imx8mm_pdata, }, + { + .compatible = "fsl,imx8mp-mipi-dsim", + .data = &samsung_dsim_imx8mp_pdata, + }, { /* sentinel. */ } }; MODULE_DEVICE_TABLE(of, samsung_dsim_of_match); diff --git a/include/drm/bridge/samsung-dsim.h b/include/drm/bridge/samsung-dsim.h index 86b15f9f57a7..d3a481d115a9 100644 --- a/include/drm/bridge/samsung-dsim.h +++ b/include/drm/bridge/samsung-dsim.h @@ -27,6 +27,7 @@ enum samsung_dsim_type { DSIM_TYPE_EXYNOS5422, DSIM_TYPE_EXYNOS5433, DSIM_TYPE_IMX8MM, + DSIM_TYPE_IMX8MP, DSIM_TYPE_COUNT, };