Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp733553ybh; Wed, 18 Mar 2020 08:10:29 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvReC1+xjxSQ8FpvxvFaxZZgnHXyHlDcKhbhDttQyAsB6TXep9G0C/7pGsILHkhprAoJi5Y X-Received: by 2002:aca:5b07:: with SMTP id p7mr3429663oib.146.1584544229438; Wed, 18 Mar 2020 08:10:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584544229; cv=none; d=google.com; s=arc-20160816; b=ndOygkULjPJGGjgKtFZfr6nxxQAQmkVkzceV5zI3YI3FQgyKhGpWTaABZmT1y3uYIo ovCiTp875G3LPzpRGf+1ZjwqJ9DyBblwIfdjysVgYBY02hT6quo2w6SgzcEutEwCqL9Z j2N5gJik9EDpms3czzXdgE4QDX7U+miuvsr3E8INr8hze3V5JPHjxegZ9d9V8NAaGhiY l4L84TwhIB3wyc0m15SC+C+aVgfiGkh/qoqpAsgKguka8XpWQostAxIUoKKFEU1/Mgd9 EwlL0ayoFc1Ll+ODYNuwm+MTXi+H1IQd47sk3SvSIia2mDTi1lTQufReguq+Pk0b+9/k whBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from; bh=FlBsveva1E8P0YYi6jyg4LjNkxYQGEZaFDUYUrl6waw=; b=D+c++6lB1MbM0Q/4udLvAE/rqmx9AAxwEp9MwtFoFaAJvG9Tk4mBRO1/3g/Ps6DZn2 XnCxv0nTR0n++SoJNHS5s+MB7nvDfcqlONsJk3heNMH42X1veF140MTrVgazmSnxUKzQ 2O9eY8s3KYaKVXv5hwU3FAvfw74nwP4kP/4qlWiTpPrlTkXWZsF+MQuSi0mPj3ZlagIF W1HaVdkaGxonkn70N0Snif7nbIemyrMPghL8j6PImLg8I65KltQVThm7XE1Tqo3bzlqL Of+z5gVkRNicgbR/DtG6EdxeS7PJUNZf9q7ff6CPA5e3sFrYp/Ed0IiQE1aiAySPYX3E pi+A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w90si3679079otb.305.2020.03.18.08.10.16; Wed, 18 Mar 2020 08:10:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727400AbgCRPJ0 (ORCPT + 99 others); Wed, 18 Mar 2020 11:09:26 -0400 Received: from honk.sigxcpu.org ([24.134.29.49]:33862 "EHLO honk.sigxcpu.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727360AbgCRPJX (ORCPT ); Wed, 18 Mar 2020 11:09:23 -0400 Received: from localhost (localhost [127.0.0.1]) by honk.sigxcpu.org (Postfix) with ESMTP id 9CC51FB04; Wed, 18 Mar 2020 16:09:20 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at honk.sigxcpu.org Received: from honk.sigxcpu.org ([127.0.0.1]) by localhost (honk.sigxcpu.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y6dfw3zySf0g; Wed, 18 Mar 2020 16:09:09 +0100 (CET) Received: by bogon.sigxcpu.org (Postfix, from userid 1000) id BFAA0412BB; Wed, 18 Mar 2020 16:09:08 +0100 (CET) From: =?UTF-8?q?Guido=20G=C3=BCnther?= To: David Airlie , Daniel Vetter , Rob Herring , Mark Rutland , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , Andrzej Hajda , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Lee Jones , =?UTF-8?q?Guido=20G=C3=BCnther?= , dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Robert Chiras , Sam Ravnborg , Arnd Bergmann Subject: [PATCH v9 2/2] drm/bridge: Add NWL MIPI DSI host controller support Date: Wed, 18 Mar 2020 16:09:08 +0100 Message-Id: <6f2e65df672a0fe832af29f4ea89fbe7250c3a07.1584544065.git.agx@sigxcpu.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This adds initial support for the NWL MIPI DSI Host controller found on i.MX8 SoCs. It adds support for the i.MX8MQ but the same IP can be found on e.g. the i.MX8QXP. It has been tested on the Librem 5 devkit using mxsfb. Signed-off-by: Guido Günther Co-developed-by: Robert Chiras Signed-off-by: Robert Chiras Tested-by: Robert Chiras Tested-by: Martin Kepplinger --- drivers/gpu/drm/bridge/Kconfig | 16 + drivers/gpu/drm/bridge/Makefile | 3 + drivers/gpu/drm/bridge/nwl-dsi.c | 1213 ++++++++++++++++++++++++++++++ drivers/gpu/drm/bridge/nwl-dsi.h | 144 ++++ 4 files changed, 1376 insertions(+) create mode 100644 drivers/gpu/drm/bridge/nwl-dsi.c create mode 100644 drivers/gpu/drm/bridge/nwl-dsi.h diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig index 8397bf72d2f3..d41d93d24f16 100644 --- a/drivers/gpu/drm/bridge/Kconfig +++ b/drivers/gpu/drm/bridge/Kconfig @@ -55,6 +55,22 @@ config DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW to DP++. This is used with the i.MX6 imx-ldb driver. You are likely to say N here. +config DRM_NWL_MIPI_DSI + tristate "Northwest Logic MIPI DSI Host controller" + depends on DRM + depends on COMMON_CLK + depends on OF && HAS_IOMEM + select DRM_KMS_HELPER + select DRM_MIPI_DSI + select DRM_PANEL_BRIDGE + select GENERIC_PHY_MIPI_DPHY + select MFD_SYSCON + select MULTIPLEXER + select REGMAP_MMIO + help + This enables the Northwest Logic MIPI DSI Host controller as + for example found on NXP's i.MX8 Processors. + config DRM_NXP_PTN3460 tristate "NXP PTN3460 DP/LVDS bridge" depends on OF diff --git a/drivers/gpu/drm/bridge/Makefile b/drivers/gpu/drm/bridge/Makefile index 1eb5376c5d68..98581b3128a3 100644 --- a/drivers/gpu/drm/bridge/Makefile +++ b/drivers/gpu/drm/bridge/Makefile @@ -15,6 +15,9 @@ obj-$(CONFIG_DRM_TOSHIBA_TC358767) += tc358767.o obj-$(CONFIG_DRM_I2C_ADV7511) += adv7511/ obj-$(CONFIG_DRM_TI_SN65DSI86) += ti-sn65dsi86.o obj-$(CONFIG_DRM_TI_TFP410) += ti-tfp410.o +obj-$(CONFIG_DRM_NWL_MIPI_DSI) += nwl-dsi.o obj-y += analogix/ obj-y += synopsys/ + +header-test-y += nwl-dsi.h diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c b/drivers/gpu/drm/bridge/nwl-dsi.c new file mode 100644 index 000000000000..aa11e40dead7 --- /dev/null +++ b/drivers/gpu/drm/bridge/nwl-dsi.c @@ -0,0 +1,1213 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * i.MX8 NWL MIPI DSI host driver + * + * Copyright (C) 2017 NXP + * Copyright (C) 2020 Purism SPC + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include