Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp308347rwe; Wed, 31 Aug 2022 22:49:17 -0700 (PDT) X-Google-Smtp-Source: AA6agR5INieq9pc6oAO+k5zk490OhXuHh9u82VQNTRvBHEi9L0lK0+AM1FNLkLjaF4UKVeyN/6W7 X-Received: by 2002:a17:90b:4c08:b0:1fb:66d3:79c with SMTP id na8-20020a17090b4c0800b001fb66d3079cmr6819671pjb.121.1662011357308; Wed, 31 Aug 2022 22:49:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662011357; cv=none; d=google.com; s=arc-20160816; b=bsGNUFrDLz+rxy9SZlmfCLywhKeiMgy+dfSr0QQ6VmaPGcghsZmfMcXMzpjnyz9SfW 78j2rXaDME/C0w9foLndSft2FQdoSyUJXuAmC5RC0yhGBaus6UYSH0ZydFVETDYJB8ks Ns9zqR5jVVNeU42SzYtgezGBdehLqSyp0khGK5abIRBpNFOy+QBve8G8uPGkKuzEFPDs NkiQLwrwnRUkul7myu6fXUCSUr13i0wgRagWPpiWl6blSeTrDAGyVbPpU8IfBYXm4OiE 3+9gLrDGiQVjrvTFUoz3PAVKs9ptS5MpO3qamTt5uoVjPQ5wSpPkX2SORaVNKLlYJOQz xcNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=mcfytsWsCpsS5xJvwxRmh5lu9oU5CSXmd8OL1AgESC4=; b=QgjyeJMY2UCbt43W6fbvO9qUhIg+Nven4tooNWJQMcj2f4aA51KolpUDg3sQgJQBx0 vHo8gUMlvHMWeEB/IxRxBvejDJg3lgF2TPzryhqjZFzgsRKzyRAdbfXWoxQh/aox2UOf knUHuulv08eV6IYseN15DWm9jKgUcyBdoclHxkEY84OLLPS0Q5jhgtXqf/jE+n/CTY31 zhS1BaSB4UP8Bnl46tK05GZkSpAVw2JBSbYzFNupvIpfUVjP9/vQIRGPSp2oLi03VyNA jpW1mAym3oPGZo4oOVJDnTtFSchDHa9l4/eZ3s265m8pzSlpgWSA1RerscDSRZ+EJ/2V tsew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=CrhtxCwa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o6-20020a656146000000b0041e1d3668f8si6857411pgv.73.2022.08.31.22.49.06; Wed, 31 Aug 2022 22:49:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=CrhtxCwa; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232511AbiIAEmr (ORCPT + 99 others); Thu, 1 Sep 2022 00:42:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232372AbiIAEmJ (ORCPT ); Thu, 1 Sep 2022 00:42:09 -0400 Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD9F3E42D7; Wed, 31 Aug 2022 21:42:03 -0700 (PDT) X-UUID: fb503e0e8b34422682b7211b8e44fbe6-20220901 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=mcfytsWsCpsS5xJvwxRmh5lu9oU5CSXmd8OL1AgESC4=; b=CrhtxCwaLssgFXWrbQFjIAd8wIQwMGpX1WKyYdwFRGiRfwBcKGTBx6mOYaMvSJvUv79OFDiut68s/F2bMVZ4yFfZLZlBTAo+cSt7JEOaqwup0QVRehG4HQl7vS/YJJdO02J3I3pHjZ0x2ZJqKvpfHgploaYLBwqmFge1DEBQzrw=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.10,REQID:a0e21283-7163-4fdb-95db-7ad5eb7edaf9,OB:0,L OB:0,IP:0,URL:0,TC:0,Content:-25,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Releas e_Ham,ACTION:release,TS:-25 X-CID-META: VersionHash:84eae18,CLOUDID:9b18c520-1c20-48a5-82a0-25f9c331906d,C OID:IGNORED,Recheck:0,SF:nil,TC:nil,Content:0,EDM:-3,IP:nil,URL:0,File:nil ,Bulk:nil,QS:nil,BEC:nil,COL:1 X-UUID: fb503e0e8b34422682b7211b8e44fbe6-20220901 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 284794022; Thu, 01 Sep 2022 12:41:53 +0800 Received: from mtkmbs11n1.mediatek.inc (172.21.101.186) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3; Thu, 1 Sep 2022 12:41:51 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs11n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Thu, 1 Sep 2022 12:41:51 +0800 From: Bo-Chen Chen To: , , , , , , , , , CC: , , , , , , , , , , , , , , Bo-Chen Chen Subject: [PATCH v17 03/10] drm/mediatek: Add MT8195 Embedded DisplayPort driver Date: Thu, 1 Sep 2022 12:41:42 +0800 Message-ID: <20220901044149.16782-4-rex-bc.chen@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20220901044149.16782-1-rex-bc.chen@mediatek.com> References: <20220901044149.16782-1-rex-bc.chen@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,URIBL_CSS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Schneider-Pargmann This patch adds a embedded displayport driver for the MediaTek mt8195 SoC. It supports the MT8195, the embedded DisplayPort units. It offers DisplayPort 1.4 with up to 4 lanes. The driver creates a child device for the phy. The child device will never exist without the parent being active. As they are sharing a register range, the parent passes a regmap pointer to the child so that both can work with the same register range. The phy driver sets device data that is read by the parent to get the phy device that can be used to control the phy properties. This driver is based on an initial version by Jitao shi Signed-off-by: Markus Schneider-Pargmann Signed-off-by: Guillaume Ranquet Signed-off-by: Bo-Chen Chen --- drivers/gpu/drm/mediatek/Kconfig | 9 + drivers/gpu/drm/mediatek/Makefile | 2 + drivers/gpu/drm/mediatek/mtk_dp.c | 1999 +++++++++++++++++++++++++ drivers/gpu/drm/mediatek/mtk_dp_reg.h | 305 ++++ 4 files changed, 2315 insertions(+) create mode 100644 drivers/gpu/drm/mediatek/mtk_dp.c create mode 100644 drivers/gpu/drm/mediatek/mtk_dp_reg.h diff --git a/drivers/gpu/drm/mediatek/Kconfig b/drivers/gpu/drm/mediatek/Kconfig index 2976d21e9a34..e66f4a3b6be0 100644 --- a/drivers/gpu/drm/mediatek/Kconfig +++ b/drivers/gpu/drm/mediatek/Kconfig @@ -21,6 +21,15 @@ config DRM_MEDIATEK This driver provides kernel mode setting and buffer management to userspace. +config DRM_MEDIATEK_DP + tristate "DRM DPTX Support for MediaTek SoCs" + depends on DRM_MEDIATEK + select PHY_MTK_DP + select DRM_DISPLAY_HELPER + select DRM_DISPLAY_DP_HELPER + help + DRM/KMS Display Port driver for MediaTek SoCs. + config DRM_MEDIATEK_HDMI tristate "DRM HDMI Support for Mediatek SoCs" depends on DRM_MEDIATEK diff --git a/drivers/gpu/drm/mediatek/Makefile b/drivers/gpu/drm/mediatek/Makefile index 6e604a933ed0..3517d1c65cd7 100644 --- a/drivers/gpu/drm/mediatek/Makefile +++ b/drivers/gpu/drm/mediatek/Makefile @@ -23,3 +23,5 @@ mediatek-drm-hdmi-objs := mtk_cec.o \ mtk_hdmi_ddc.o obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mediatek-drm-hdmi.o + +obj-$(CONFIG_DRM_MEDIATEK_DP) += mtk_dp.o diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c new file mode 100644 index 000000000000..e2ec9b02b1aa --- /dev/null +++ b/drivers/gpu/drm/mediatek/mtk_dp.c @@ -0,0 +1,1999 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2019-2022 MediaTek Inc. + * Copyright (c) 2022 BayLibre + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include