| Message ID | 20191231130528.20669-3-jagan@amarulasolutions.com |
|---|---|
| State | New |
| Headers |
Return-Path: <linux-amarula+bncBD7MFH7A7EEBBMMPVXYAKGQEYZGPFLI@amarulasolutions.com> X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 59D863F077 for <linux-amarula@patchwork.amarulasolutions.com>; Tue, 31 Dec 2019 14:05:54 +0100 (CET) Received: by mail-pf1-f199.google.com with SMTP id k26sf26341436pfp.20 for <linux-amarula@patchwork.amarulasolutions.com>; Tue, 31 Dec 2019 05:05:54 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1577797553; cv=pass; d=google.com; s=arc-20160816; b=AJ0aXG76ut2JV4AKCOzZCf2gTHPQnmvk+K25jF1ITjsK1dm3GafM+OILnMbR//ABTD uCFMxNi08uAHEpWJ4JUwtLRMr2ypwEG1L2eYpuATp9xCjMRZIDOCQoJKX/sLvhydU89S Bu8wa3ZaIKnid+Z67JqPAw6ozwKqg0ZIFyE1glOdFZPdm6PLgVW8aOm4c7+wfutKw5mi hyiuQi6iwXohS5b12krxkLyHQzjz7pNgh3sznMUCb644nzsmBGhMLzS1wvln7QhDQmKn vEl4joorzCG2TA7/2HswzbZwrTcyvUjv2y0NqEm0jUNO6kEOuq5zXpS0S0fm7Wk9DH0o F7nA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=FuL+N9aog/z4T7bSIZSkCgwpkaBtJky8a9hmL8ukumo=; b=brGXQ+dc1ghFEwJ7W/CL6CNFT+ubDBnWqJnu0rm8GNdnSm4akKByUozYp2C5i4zYeu aH7VJcbZWqXnkBkQW7hjoCrbTfyj5xCQnWA6eGQYKpr8ujlivuqgNUJ+ajFzFz2Ipa6R J25ocTNX3Oic8YyA13KHIGb7h5zEXlhW8ZmJquZw5+M3fqIRyew363ufqvbObrDFsxwu yeM6h6x6R4LExDGqMaPzS0k6sxbNDPjWokxwZDfgCX2pf+vJ5MYpw5JMfoNkVwMceMRo QXbTZbrtKbPB7RU30sQOMvUk2FRwo3n9W70rD/rpNQhCTZwWQSg1dzWPB+RO+tlHV4h1 gJsA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=C1XNMIIr; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=FuL+N9aog/z4T7bSIZSkCgwpkaBtJky8a9hmL8ukumo=; b=SfHufNbK00P9iv3GUNFGO89uWFCMP7X9BWDH5ZlVraRz9M7NMEdlnY3ulJMgmLSKxJ 8vqlwmKQxJTD5Fi4t/qZyHdGWfGWtcpmrAfSyNlWuVnliLX+54LuT1MOAn/O7he3nsuF oV5VyQklNQjH0Q1u2GOxJr7F1K3BDJfv6webs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=FuL+N9aog/z4T7bSIZSkCgwpkaBtJky8a9hmL8ukumo=; b=JsMKJ/Ae7aqs/9yBssHTbqOZL5Uw0RHgkZ4xmV/EkeTE+Uwdgp9ZcdUUCPukgF3kcI eXYhtqrXCtLgxCSHr6SXoYnjffl9tJ4q/PvZUgPFmSzhERPoaozretbsV7CE+Mh5gTjX WNH+l+PzbQOVxMbRNij29028yZ5mMVmZzVhcxjmBmr+dcBpABANHwLeUTzoo1KJThWi/ zjgcryHZBEt0ZP9N1U4XLaBZ6Jrp2ufgSRC2ogPrHh/tVazS1OckXqZAMP9SDSgCq5Ir j+f/UIR5hfrrW8WiNiPVKIlmEHLQMtPFkh4gtfOoLm38mgxei3CSH8SgS6KgIuBp94e8 YfyQ== X-Gm-Message-State: APjAAAVbE7FEg3b3MnGjrs8ZBDJrk8XENPuv/eBdmJU1K1NJ3JxvZ2s+ w1ALJ2is5dR5HfW4vMrH+qrojZNs X-Google-Smtp-Source: APXvYqw1sA0RyKygzlqy8LuCW+c26ibI1UutsjJ1BxnGCxFoGoVhSlSGtf9E9clhnGR+qSktZXXcFA== X-Received: by 2002:a17:90a:22a5:: with SMTP id s34mr6230784pjc.8.1577797553192; Tue, 31 Dec 2019 05:05:53 -0800 (PST) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:90a:d988:: with SMTP id d8ls1439757pjv.5.gmail; Tue, 31 Dec 2019 05:05:52 -0800 (PST) X-Received: by 2002:a17:902:aa08:: with SMTP id be8mr73261292plb.255.1577797552697; Tue, 31 Dec 2019 05:05:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577797552; cv=none; d=google.com; s=arc-20160816; b=0NYVHvraGdYdOAHpMR6cSeQa0p0ow+JGhCy3PC+G5bEczQ3+Ibg9v59Kc4dHqgvGlT F+4vC4RnzAKgSTYunMHx1ZiBrqfYpSoAWvpkAWzT3PMfor+Zapj5NfhaxwH6XgUtGXEB m9OkFnk2JeI/nxQcq4a9p18xDkoe3gCKUC7RJya2YpSjKJnNmx9WGvcgjZvcPQMwW/5F ZvRiSIoBDKK0ilsiKtn0mXMOkHGNWWxCBaR7pzbr6kU4uSTCrhu7f1pNsWJ/eWxg1BOu NmzOFbMxHXfOJdUE+FVIPFTPolSh3f5vEL6uRt/HffPsCNxveJtpFfkaF54nn0Khf9QP JS2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=EOyi5tzl/4nxk9xqAyclAM+URcfve5OZPh7MV8YnBrQ=; b=HUFuiw6/Um1HkGQIH5ImoE8ycXNTuMm23s8q6svMJ25Vkm+0LIHEWYGxyX9MMJVUW/ vRQ5Rxo2cFPbMJvcPEBmsd2IEZFgbFdm741iVwhUsP7s5oCkNENR/VTa+ZuHqcMBnxum +I86ueIt01sWc5UqEU82JgQzhkvRVziq0o1nUqFwFFnGp3myei3Sm52eg6j11XqcA15s gNviGeimFJ0GOTdz2/kGhd5aE9hDmXcMPk1bNF9L5utqM3I5uiMVVC7rE+6ib5Hmf1ID 2qY0Ad00t+lISgN0dmjmepARQF3dvx7iSS9ULBDmqyQXc4+mwJ3o9t4FDTwrYvVB38cH rBiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=C1XNMIIr; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id t185sor48410892pfc.54.2019.12.31.05.05.52 for <linux-amarula@amarulasolutions.com> (Google Transport Security); Tue, 31 Dec 2019 05:05:52 -0800 (PST) Received-SPF: pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; X-Received: by 2002:a62:ddd0:: with SMTP id w199mr75715315pff.1.1577797552360; Tue, 31 Dec 2019 05:05:52 -0800 (PST) Received: from localhost.localdomain ([49.206.202.115]) by smtp.gmail.com with ESMTPSA id i3sm55204089pfg.94.2019.12.31.05.05.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Dec 2019 05:05:51 -0800 (PST) From: Jagan Teki <jagan@amarulasolutions.com> To: Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>, Jernej Skrabec <jernej.skrabec@siol.net>, Rob Herring <robh+dt@kernel.org> Cc: David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>, Mark Rutland <mark.rutland@arm.com>, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-sunxi <linux-sunxi@googlegroups.com>, linux-amarula@amarulasolutions.com, Jagan Teki <jagan@amarulasolutions.com> Subject: [PATCH v3 2/9] drm/sun4i: tcon: Add TCON LCD support for R40 Date: Tue, 31 Dec 2019 18:35:21 +0530 Message-Id: <20191231130528.20669-3-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20191231130528.20669-1-jagan@amarulasolutions.com> References: <20191231130528.20669-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: jagan@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=C1XNMIIr; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: <linux-amarula.amarulasolutions.com> X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: <https://groups.google.com/a/amarulasolutions.com/group/linux-amarula/post>, <mailto:linux-amarula@amarulasolutions.com> List-Help: <https://support.google.com/a/amarulasolutions.com/bin/topic.py?topic=25838>, <mailto:linux-amarula+help@amarulasolutions.com> List-Archive: <https://groups.google.com/a/amarulasolutions.com/group/linux-amarula/> List-Unsubscribe: <mailto:googlegroups-manage+476853432473+unsubscribe@googlegroups.com>, <https://groups.google.com/a/amarulasolutions.com/group/linux-amarula/subscribe> |
| Series |
drm/sun4i: Allwinner R40 MIPI-DSI support
|
|
Commit Message
Jagan Teki
Dec. 31, 2019, 1:05 p.m. UTC
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(+)
Comments
On Tue, Dec 31, 2019 at 06:35:21PM +0530, Jagan Teki wrote: > 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? Maxime
On Thu, Jan 2, 2020 at 4:24 PM Maxime Ripard <mripard@kernel.org> wrote: > > On Tue, Dec 31, 2019 at 06:35:21PM +0530, Jagan Teki wrote: > > 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]. [1] https://patchwork.freedesktop.org/patch/310210/?series=62062&rev=1
On Thu, Jan 02, 2020 at 09:10:31PM +0530, Jagan Teki wrote: > On Thu, Jan 2, 2020 at 4:24 PM Maxime Ripard <mripard@kernel.org> wrote: > > > > On Tue, Dec 31, 2019 at 06:35:21PM +0530, Jagan Teki wrote: > > > 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. 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. Maxime
On Thu, Jan 2, 2020 at 9:17 PM Maxime Ripard <mripard@kernel.org> wrote: > > On Thu, Jan 02, 2020 at 09:10:31PM +0530, Jagan Teki wrote: > > On Thu, Jan 2, 2020 at 4:24 PM Maxime Ripard <mripard@kernel.org> wrote: > > > > > > On Tue, Dec 31, 2019 at 06:35:21PM +0530, Jagan Teki wrote: > > > > 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. > > 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?
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 <mripard@kernel.org> wrote: > > > > On Thu, Jan 02, 2020 at 09:10:31PM +0530, Jagan Teki wrote: > > > On Thu, Jan 2, 2020 at 4:24 PM Maxime Ripard <mripard@kernel.org> wrote: > > > > > > > > On Tue, Dec 31, 2019 at 06:35:21PM +0530, Jagan Teki wrote: > > > > > 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. > > > 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
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, +}; + static const struct sun4i_tcon_quirks sun8i_r40_tv_quirks = { .has_channel_1 = true, .set_mux = sun8i_r40_tcon_tv_set_mux, @@ -1500,6 +1507,7 @@ const struct of_device_id sun4i_tcon_of_table[] = { { .compatible = "allwinner,sun8i-a33-tcon", .data = &sun8i_a33_quirks }, { .compatible = "allwinner,sun8i-a83t-tcon-lcd", .data = &sun8i_a83t_lcd_quirks }, { .compatible = "allwinner,sun8i-a83t-tcon-tv", .data = &sun8i_a83t_tv_quirks }, + { .compatible = "allwinner,sun8i-r40-tcon-lcd", .data = &sun8i_r40_lcd_quirks }, { .compatible = "allwinner,sun8i-r40-tcon-tv", .data = &sun8i_r40_tv_quirks }, { .compatible = "allwinner,sun8i-v3s-tcon", .data = &sun8i_v3s_quirks }, { .compatible = "allwinner,sun9i-a80-tcon-lcd", .data = &sun9i_a80_tcon_lcd_quirks },