From: Alex Bee <knaerzche@gmail.com>
To: "Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Conor Dooley" <conor+dt@kernel.org>
Cc: David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org,
Alex Bee <knaerzche@gmail.com>
Subject: [PATCH v3 02/29] drm/rockchip: vop: Add output selection registers for RK312x
Date: Tue, 19 Dec 2023 18:00:32 +0100 [thread overview]
Message-ID: <20231219170100.188800-3-knaerzche@gmail.com> (raw)
In-Reply-To: <20231219170100.188800-1-knaerzche@gmail.com>
In contrast to RK3036, RK312x SoCs have multiple output channels such as
RGB (i.e. LVDS TTL), LVDS, DSI and HDMI.
In order to support that, this splits output from RK3036 and defines an
separate one for RK3126 with the registers required to enable the
appropriate output and setup the correct polarity.
Signed-off-by: Alex Bee <knaerzche@gmail.com>
---
changes in v2:
- rephrase commit message
changes in v3:
- none
drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 13 ++++++++++++-
drivers/gpu/drm/rockchip/rockchip_vop_reg.h | 3 +++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
index c51ca82320cb..b9ee02061d5b 100644
--- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
+++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
@@ -227,11 +227,22 @@ static const struct vop_win_data rk3126_vop_win_data[] = {
.type = DRM_PLANE_TYPE_CURSOR },
};
+static const struct vop_output rk3126_output = {
+ .pin_pol = VOP_REG(RK3036_DSP_CTRL0, 0xf, 4),
+ .hdmi_pin_pol = VOP_REG(RK3126_INT_SCALER, 0x7, 4),
+ .hdmi_en = VOP_REG(RK3036_AXI_BUS_CTRL, 0x1, 22),
+ .hdmi_dclk_pol = VOP_REG(RK3036_AXI_BUS_CTRL, 0x1, 23),
+ .rgb_en = VOP_REG(RK3036_AXI_BUS_CTRL, 0x1, 24),
+ .rgb_dclk_pol = VOP_REG(RK3036_AXI_BUS_CTRL, 0x1, 25),
+ .mipi_en = VOP_REG(RK3036_AXI_BUS_CTRL, 0x1, 28),
+ .mipi_dclk_pol = VOP_REG(RK3036_AXI_BUS_CTRL, 0x1, 29),
+};
+
static const struct vop_data rk3126_vop = {
.intr = &rk3036_intr,
.common = &rk3036_common,
.modeset = &rk3036_modeset,
- .output = &rk3036_output,
+ .output = &rk3126_output,
.win = rk3126_vop_win_data,
.win_size = ARRAY_SIZE(rk3126_vop_win_data),
.max_output = { 1920, 1080 },
diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
index 406e981c75bd..fbf1bcc68625 100644
--- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
+++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.h
@@ -872,6 +872,9 @@
/* rk3036 register definition end */
/* rk3126 register definition */
+#define RK3126_INT_SCALER 0x0c
+
+/* win1 register */
#define RK3126_WIN1_MST 0x4c
#define RK3126_WIN1_DSP_INFO 0x50
#define RK3126_WIN1_DSP_ST 0x54
--
2.43.0
next prev parent reply other threads:[~2023-12-19 17:01 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-19 17:00 [PATCH v3 00/29] Add HDMI support for RK3128 Alex Bee
2023-12-19 17:00 ` [PATCH v3 01/29] dt-bindings: display: rockchip,inno-hdmi: Document RK3128 compatible Alex Bee
2023-12-19 17:00 ` Alex Bee [this message]
2023-12-19 17:00 ` [PATCH v3 03/29] drm/rockchip: inno_hdmi: Fix video timing Alex Bee
2023-12-19 17:00 ` [PATCH v3 04/29] drm/rockchip: inno_hdmi: Remove useless mode_fixup Alex Bee
2023-12-19 17:00 ` [PATCH v3 05/29] drm/rockchip: inno_hdmi: Remove useless copy of drm_display_mode Alex Bee
2023-12-19 17:00 ` [PATCH v3 06/29] drm/rockchip: inno_hdmi: Switch encoder hooks to atomic Alex Bee
2023-12-19 17:00 ` [PATCH v3 07/29] drm/rockchip: inno_hdmi: Get rid of mode_set Alex Bee
2023-12-19 17:00 ` [PATCH v3 08/29] drm/rockchip: inno_hdmi: no need to store vic Alex Bee
2023-12-19 17:00 ` [PATCH v3 09/29] drm/rockchip: inno_hdmi: Remove unneeded has audio flag Alex Bee
2023-12-19 17:00 ` [PATCH v3 10/29] drm/rockchip: inno_hdmi: Remove useless input format Alex Bee
2023-12-19 17:00 ` [PATCH v3 11/29] drm/rockchip: inno_hdmi: Remove YUV-based csc coefficents Alex Bee
2023-12-19 17:00 ` [PATCH v3 12/29] drm/rockchip: inno_hdmi: Remove tmds rate from structure Alex Bee
2023-12-19 17:00 ` [PATCH v3 13/29] drm/rockchip: inno_hdmi: Drop HDMI Vendor Infoframe support Alex Bee
2023-12-19 17:00 ` [PATCH v3 14/29] drm/rockchip: inno_hdmi: Move infoframe disable to separate function Alex Bee
2023-12-19 17:00 ` [PATCH v3 15/29] drm/rockchip: inno_hdmi: Switch to infoframe type Alex Bee
2023-12-19 17:00 ` [PATCH v3 16/29] drm/rockchip: inno_hdmi: Remove unused drm device pointer Alex Bee
2023-12-19 17:00 ` [PATCH v3 17/29] drm/rockchip: inno_hdmi: Drop irq struct member Alex Bee
2023-12-19 17:00 ` [PATCH v3 18/29] drm/rockchip: inno_hdmi: Remove useless include Alex Bee
2023-12-19 17:00 ` [PATCH v3 19/29] drm/rockchip: inno_hdmi: Subclass connector state Alex Bee
2023-12-19 17:00 ` [PATCH v3 20/29] drm/rockchip: inno_hdmi: Correctly setup HDMI quantization range Alex Bee
2023-12-19 17:00 ` [PATCH v3 21/29] drm/rockchip: inno_hdmi: Don't power up the phy after resetting Alex Bee
2023-12-19 17:00 ` [PATCH v3 22/29] drm/rockchip: inno_hdmi: Split power mode setting Alex Bee
2023-12-19 17:00 ` [PATCH v3 23/29] drm/rockchip: inno_hdmi: Add variant support Alex Bee
2023-12-19 17:00 ` [PATCH v3 24/29] drm/rockchip: inno_hdmi: Add RK3128 support Alex Bee
2023-12-19 17:00 ` [PATCH v3 25/29] drm/rockchip: inno_hdmi: Add basic mode validation Alex Bee
2023-12-19 17:00 ` [PATCH v3 26/29] drm/rockchip: inno_hdmi: Drop custom fill_modes hook Alex Bee
2023-12-19 17:00 ` [PATCH v3 27/29] ARM: dts: rockchip: Add display subsystem for RK3128 Alex Bee
2023-12-19 17:00 ` [PATCH v3 28/29] ARM: dts: rockchip: Add HDMI node " Alex Bee
2023-12-19 17:00 ` [PATCH v3 29/29] ARM: dts: rockchip: Enable HDMI output for XPI-3128 Alex Bee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231219170100.188800-3-knaerzche@gmail.com \
--to=knaerzche@gmail.com \
--cc=airlied@gmail.com \
--cc=conor+dt@kernel.org \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=robh+dt@kernel.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox