Thread (19 messages) 19 messages, 2 authors, 2020-01-04

Re: [PATCH v3 2/9] drm/sun4i: tcon: Add TCON LCD support for R40

From: Maxime Ripard <mripard@kernel.org>
Date: 2020-01-04 14:20:19
Also in: dri-devel, linux-arm-kernel, lkml

Hi,

On Thu, Jan 02, 2020 at 10:04:40PM +0530, Jagan Teki wrote:
On Thu, Jan 2, 2020 at 9:17 PM Maxime Ripard [off-list ref] wrote:
quoted
On Thu, Jan 02, 2020 at 09:10:31PM +0530, Jagan Teki wrote:
quoted
On Thu, Jan 2, 2020 at 4:24 PM Maxime Ripard [off-list ref] wrote:
quoted
On Tue, Dec 31, 2019 at 06:35:21PM +0530, Jagan Teki wrote:
quoted
TCON LCD0, LCD1 in allwinner R40, are used for managing
LCD interfaces like RGB, LVDS and DSI.

Like TCON TV0, TV1 these LCD0, LCD1 are also managed via
tcon top.

Add support for it, in tcon driver.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
Changes for v3:
- none

 drivers/gpu/drm/sun4i/sun4i_tcon.c | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index fad72799b8df..69611d38c844 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -1470,6 +1470,13 @@ static const struct sun4i_tcon_quirks sun8i_a83t_tv_quirks = {
      .has_channel_1          = true,
 };

+static const struct sun4i_tcon_quirks sun8i_r40_lcd_quirks = {
+     .supports_lvds          = true,
+     .has_channel_0          = true,
+     /* TODO Need to support TCON output muxing via GPIO pins */
+     .set_mux                = sun8i_r40_tcon_tv_set_mux,
What is this muking about? And why is it a TODO?
Muxing similar like how TCON TOP handle TV0, TV1 I have reused the
same so-that it would configure de port selection via
sun8i_tcon_top_de_config

TCON output muxing have gpio with GPIOD and GPIOH bits, which select
which of LCD or TV TCON outputs to the LCD function pins. I have
marked these has TODO for further support as mentioned by Chen-Yu in
v1[1].
It should be in the commit log.
Make sense.
quoted
What's the plan to support that when needed? And that means that the
LCD and TV outputs are mutually exclusive? We should at the very least
check that both aren't enabled at the same time.
Yes, LCD or TV within the outselect seems to be mutually exclusive.
Like LCD0 or TV0 can output to GPIOD incase of TV0_OUTSEL and LCD1 or
TV1 can output to GPIOH incase of TV1_OUTSEL. I think checking them
before configuring TCON_TOP_PORT_SEL_REG would make sense, let me know
if you have any suggestions?
Making sure in atomic_check that TV and LCD are not used at the same
time, and then in encoders mode_set / enable mux the pins to our
encoders would be my first guess.

Maxime

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help