From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 26 Sep 2024 15:41:46 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1stokb-0031KH-0T for lore@lore.pengutronix.de; Thu, 26 Sep 2024 15:41:46 +0200 Received: from bombadil.infradead.org ([2607:7c80:54:3::133]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1stokV-00081e-2G for lore@pengutronix.de; Thu, 26 Sep 2024 15:41:46 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:To:In-Reply-To:References: Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=tsu2//UhpYdpwzfAUfATiFT8VNeT3utxt0xzZHxP908=; b=A6DsYYpnH2WMymYoJJHC/YMcyT naKezP5PFkQbM6i0y4e1nLkPbcvXpTOrJjS9bzOzMq2LGjZkoAQT+oFY50AGogT02Dk6B5St1igzm JPEmDPYVsBNpXTpN4OKYXAJiasweHSivIjJ1b7Db8QXyf2ZROIVferimY0HGH8udg4ttG8IrbCkht mmQpA9fR08bTWwPCNCLveRyDj8kkwtp+Z/8In9RUAUrVEn7l/dP43kv+ACP/gUtE39EVyYsykVlrK DtpE5RC/73OA+rDYDa5nJGY3K53fNqUgW4VTsoCpt7SHmLX2rpKFo1kyWMxq0U/wp1/jXh6OXc4cL S7eS9SnA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1stojY-00000008TyX-2FNZ; Thu, 26 Sep 2024 13:40:40 +0000 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1stojR-00000008TwB-2HTE for barebox@lists.infradead.org; Thu, 26 Sep 2024 13:40:38 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1stojQ-000789-BW; Thu, 26 Sep 2024 15:40:32 +0200 Received: from [2a0a:edc0:0:1101:1d::28] (helo=dude02.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1stojP-001hMI-UR; Thu, 26 Sep 2024 15:40:31 +0200 Received: from localhost ([::1] helo=dude02.red.stw.pengutronix.de) by dude02.red.stw.pengutronix.de with esmtp (Exim 4.96) (envelope-from ) id 1stoKl-00GZyn-1o; Thu, 26 Sep 2024 15:15:03 +0200 From: Sascha Hauer Date: Thu, 26 Sep 2024 15:15:11 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240926-vop2-v1-13-fe0581f2020b@pengutronix.de> References: <20240926-vop2-v1-0-fe0581f2020b@pengutronix.de> In-Reply-To: <20240926-vop2-v1-0-fe0581f2020b@pengutronix.de> To: "open list:BAREBOX" X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1727356503; l=164897; i=s.hauer@pengutronix.de; s=20230412; h=from:subject:message-id; bh=WGt+MmpTRelSY7J8zovpM4gi1T7Ah5JP3gDCY9bnsC0=; b=bG+lQOYVEsGzjzPgLH6iCYPyYS1O5/B9QvkxxZ3BQB6HRGcv5lyl6NmgeC2h1j90sI7a/rN2w 59IwCDOVRKIBtuCDMSwtbiX9CQALV+IbyRmitxvwi1v2j2ilF+YJ30a X-Developer-Key: i=s.hauer@pengutronix.de; a=ed25519; pk=4kuc9ocmECiBJKWxYgqyhtZOHj5AWi7+d0n/UjhkwTg= X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:3::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-4.0 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: [PATCH 13/13] video: Rockchip: Add VOP2 driver X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.whiteo.stw.pengutronix.de) This adds support for the Rockchip VOP2 video core found on the Rockchip SoCs RK3566, RK3568 and RK3588. The code is based on the Linux driver and has been heavily stripped down for barebox. Support for the cluster windows has been removed, also support for YUV modes has been dropped. Signed-off-by: Sascha Hauer --- drivers/video/Kconfig | 1 + drivers/video/Makefile | 1 + drivers/video/rockchip/Kconfig | 18 + drivers/video/rockchip/Makefile | 2 + drivers/video/rockchip/dw_hdmi-rockchip.c | 372 +++++ drivers/video/rockchip/rockchip_drm_drv.h | 66 + drivers/video/rockchip/rockchip_drm_vop.h | 424 ++++++ drivers/video/rockchip/rockchip_drm_vop2.c | 2042 ++++++++++++++++++++++++++++ drivers/video/rockchip/rockchip_drm_vop2.h | 541 ++++++++ drivers/video/rockchip/rockchip_vop2_reg.c | 280 ++++ drivers/video/rockchip/rockchip_vop_reg.c | 1290 ++++++++++++++++++ 11 files changed, 5037 insertions(+) diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 588f0cfde5..b23ddfdb1e 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -94,6 +94,7 @@ config DRIVER_VIDEO_BCM283X help Add support for the BCM283X/VideoCore frame buffer device. +source "drivers/video/rockchip/Kconfig" source "drivers/video/imx-ipu-v3/Kconfig" source "drivers/video/bochs/Kconfig" diff --git a/drivers/video/Makefile b/drivers/video/Makefile index fd1da2a864..6aa5d50e5d 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -33,3 +33,4 @@ obj-$(CONFIG_DRIVER_VIDEO_FB_SSD1307) += ssd1307fb.o obj-$(CONFIG_BACKLIGHT_RAVE_SP) += rave-sp-backlight.o obj-$(CONFIG_DRIVER_VIDEO_DW_HDMI) += dw-hdmi.o obj-$(CONFIG_DRIVER_VIDEO_BOCHS) += bochs/ +obj-$(CONFIG_DRIVER_VIDEO_ROCKCHIP) += rockchip/ diff --git a/drivers/video/rockchip/Kconfig b/drivers/video/rockchip/Kconfig new file mode 100644 index 0000000000..dbfd852454 --- /dev/null +++ b/drivers/video/rockchip/Kconfig @@ -0,0 +1,18 @@ +config DRIVER_VIDEO_ROCKCHIP + bool "Rockchip framebuffer drivers" + +if DRIVER_VIDEO_ROCKCHIP + +config DRIVER_VIDEO_ROCKCHIP_VOP2 + bool "Rockchip vop2 framebuffer driver" + select VIDEO_VPL + select OFTREE + +config DRIVER_VIDEO_ROCKCHIP_HDMI + bool "Rockchip HDMI driver" + select VIDEO_VPL + select OFTREE + depends on DRIVER_VIDEO_EDID + depends on DRIVER_VIDEO_DW_HDMI + +endif diff --git a/drivers/video/rockchip/Makefile b/drivers/video/rockchip/Makefile new file mode 100644 index 0000000000..278ce1302d --- /dev/null +++ b/drivers/video/rockchip/Makefile @@ -0,0 +1,2 @@ +obj-$(CONFIG_DRIVER_VIDEO_ROCKCHIP_VOP2) += rockchip_drm_vop2.o rockchip_vop2_reg.o +obj-$(CONFIG_DRIVER_VIDEO_ROCKCHIP_HDMI) += dw_hdmi-rockchip.o diff --git a/drivers/video/rockchip/dw_hdmi-rockchip.c b/drivers/video/rockchip/dw_hdmi-rockchip.c new file mode 100644 index 0000000000..9514c940f8 --- /dev/null +++ b/drivers/video/rockchip/dw_hdmi-rockchip.c @@ -0,0 +1,372 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd + */ + +#include +#include +#include +#include +#include +#include +#include