From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 27 Sep 2024 12:44:25 +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 1su8SV-003N8Q-39 for lore@lore.pengutronix.de; Fri, 27 Sep 2024 12:44:25 +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 1su8S8-0006WG-Qy for lore@pengutronix.de; Fri, 27 Sep 2024 12:44:24 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Cc: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:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=m2rC1cwE0+PA1eP+STyRbt00EIaC3+kR3EkvkKPGCLQ=; b=lhUkNmBaUtrNQMOXtaGpacRFMF 7Er2uwgyeNmUIb11J+qpqFaZ66mHEoOixDgHw/WeD+8hg4t0MdXBv4rzUwhXfMGCBt1aC9OcD1KW5 uSViaj/KxDGHsblkqBJP3VsWP7sMyy3DGS86GDV+iOgqKAJINQaTj4eVKSkCmJIYBpcvzp8VYMXrv OA8XR3/iwoWYjRFUkcjTQy2QLEt+6aiTzDgWKXfDw10nb6pyNT2ZyZtzRXpSO4c2MxVPw1n6fANy4 ec/z/a5/R8ZUHiOE8c39HRcvqWrXOBi/7/ID+9drtJifnkIoKWZSJ+wkvm0uf5mfbwtcf/YQC+j96 c9QqKTww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1su8QW-0000000AqxZ-0hjc; Fri, 27 Sep 2024 10:42:20 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1su8Ox-0000000AqVz-1f8o for barebox@bombadil.infradead.org; Fri, 27 Sep 2024 10:40:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Cc:To:In-Reply-To:References: Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=m2rC1cwE0+PA1eP+STyRbt00EIaC3+kR3EkvkKPGCLQ=; b=eZn/g63zrAhoOLOuCXQHRvHdq2 eYhATuZMSlc7AscnEMbp7u/b+L8yL8HDuK774KxCvPF0xEKgvsM+gJauJ5gD6QWxG5Zm5jHQ0Pa0b cZ1B+HTCsiDn59TT30HAND9h+FMInHlTqYd8jD7quPMvutSXGwXBIQzCzgvjC+76AOoWqbgb4KE3F bGthMkTQw0I8Nb4HHMTqB0+ibbV6NhtfdxxL5HcmGd94hrsMr7cdxl+CJgTfLG/QaXNs54tlDLaOr 2qKfunaVt2YwSj973d6ZwZaXLejMeKr9CX4qIDKFjgR7lAhBC3gVVLIauJYkWXDdLUX3+NPL+7UQV cOzoR9Tg==; Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by desiato.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1su8Os-00000002Kcp-1Vrx for barebox@lists.infradead.org; Fri, 27 Sep 2024 10:40:42 +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 1su8Or-00043g-TW; Fri, 27 Sep 2024 12:40:37 +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 1su8Or-001u4K-GX; Fri, 27 Sep 2024 12:40:37 +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 1su8Lv-000PJg-1Y; Fri, 27 Sep 2024 12:37:35 +0200 From: Sascha Hauer Date: Fri, 27 Sep 2024 12:37:48 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240927-vop2-v2-15-dc8dcfc651d5@pengutronix.de> References: <20240927-vop2-v2-0-dc8dcfc651d5@pengutronix.de> In-Reply-To: <20240927-vop2-v2-0-dc8dcfc651d5@pengutronix.de> To: "open list:BAREBOX" X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1727433454; l=114903; i=s.hauer@pengutronix.de; s=20230412; h=from:subject:message-id; bh=iKHtixQKIafwhFLzMzIL1RM9De+2c/X0GYl9+5dMNgY=; b=S8pNDz/mu7GPi9QNaL6E9vLAWn+zyqIg+q9a+ML6dWkb5U26dqDKACe6K6hJU8dt6KWP7RDHe TPUlwznnCJdA6LokDfXtR65Ba6Tzv7nshjRgAtIcqh8JmpJVj5fAgdn 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: , Cc: Ahmad Fatoum 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 v2 15/15] 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. Tested-by: Ahmad Fatoum # rk3566 HDMI 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 | 365 +++++ drivers/video/rockchip/rockchip_drm_drv.h | 66 + drivers/video/rockchip/rockchip_drm_vop.h | 424 ++++++ drivers/video/rockchip/rockchip_drm_vop2.c | 2041 ++++++++++++++++++++++++++++ drivers/video/rockchip/rockchip_drm_vop2.h | 541 ++++++++ drivers/video/rockchip/rockchip_vop2_reg.c | 280 ++++ 10 files changed, 3739 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..b91c6fc398 --- /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 + select DRIVER_VIDEO_EDID + select 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..f334443759 --- /dev/null +++ b/drivers/video/rockchip/dw_hdmi-rockchip.c @@ -0,0 +1,365 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd + */ + +#include +#include +#include +#include +#include +#include +#include