On Mon, Sep 11, 2023 at 01:49:39PM +0200, Krzysztof Kozlowski wrote:
> If the other panel has exactly the same case, then yes, you can do like
> this. But it depends on the bindings - to which ones do you refer as
> your tmeplate?
Documentation/devicetree/bindings/display/panel/leadtek,ltk035c5444
Fascontek manufactures LCD panels such as the FS035VG158.
Signed-off-by: John Watts
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml
b/Documentation/devicetree/bindings/vendor
This display is extremely similar to the LTK035C5444T, but still has
some minor variations in panel initialization.
Signed-off-by: John Watts
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 223 ++
1 file changed, 223 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel
The panel needs us to wait 120ms between exiting and entering sleep.
Guarantee that by always waiting 150ms before entering sleep mode.
Signed-off-by: John Watts
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/panel
SPI drivers needs their own list of compatible device IDs in order
for automatic module loading to work. Add those for this driver.
Signed-off-by: John Watts
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/drivers/gpu/drm/panel
Hello again,
On Mon, Sep 11, 2023 at 11:41:12AM +0200, Krzysztof Kozlowski wrote:
> > +maintainers:
> > + - John Watts
> > +
> > +allOf:
> > + - $ref: panel-common.yaml#
> > + - $ref: /schemas/spi/spi-peripheral-props.yaml#
> > +
> > +properti
in the documentation itself.
Thanks for your time,
John.
John Watts (8):
drm/panel: nv3052c: Document known register names
drm/panel: nv3052c: Add SPI device IDs
drm/panel: nv3052c: Sleep for 150ms after reset
drm/panel: nv3052c: Wait before entering sleep mode
drm/panel: nv3052c: Allow
The current code waits after resets for 5 to 20 milliseconds.
This is appropriate when resetting a sleeping panel, but an awake panel
requires at least 120ms of waiting.
Sleep for 150ms so the panel always completes it reset properly.
Signed-off-by: John Watts
---
drivers/gpu/drm/panel/panel
Many of these registers have a known name in the public datasheet.
Document them as comments for reference.
Signed-off-by: John Watts
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 261 +-
1 file changed, 132 insertions(+), 129 deletions(-)
diff --git a/drivers/gpu/drm
This is a small 3.5" 640x480 IPS LCD panel.
Signed-off-by: John Watts
---
.../display/panel/fascontek,fs035vg158.yaml | 60 +++
1 file changed, 60 insertions(+)
create mode 100644
Documentation/devicetree/bindings/display/panel/fascontek,fs035vg158.yaml
diff --g
Panel initialization registers are per-display and not tied to the
controller itself. Different panels will specify their own registers.
Attach the sequences to the panel info struct so future panels
can specify their own sequences.
Signed-off-by: John Watts
---
.../gpu/drm/panel/panel
On Tue, Sep 12, 2023 at 08:55:31AM +0200, Krzysztof Kozlowski wrote:
> On 11/09/2023 18:47, John Watts wrote:
> > On Mon, Sep 11, 2023 at 01:49:39PM +0200, Krzysztof Kozlowski wrote:
> >> If the other panel has exactly the same case, then yes, you can do like
> >>
On Wed, Sep 13, 2023 at 02:34:38PM -0700, Jessica Zhang wrote:
> Hi John,
>
> Having a separate panel_regs_len field seems a bit unnecessary to me.
>
> Looks like it's only being called in the panel prepare() and I don't seen
> any reason why we shouldn't just call the ARRAY_SIZE() macro there.
uired by spi-controller
- port is listed in panel-common
- power-supply is listed in panel-common
I'm guessing that the required section just lists the minimal
properties needed for this specific device tree yaml?
There's nothing implied by allOf?
> Best regards,
> Krzysztof
>
John Watts.
On Wed, Sep 13, 2023 at 02:43:43PM -0700, Jessica Zhang wrote:
> Hi John,
>
> Just curious, what do you mean by these registers being mostly unknown?
>
> I do see them specified in the online specs -- some even seem to map to
> existing MIPI_DCS_* enums (ex. 0x01 to MIPI_DCS_SOFT_RESET, and 0x04
This display is extremely similar to the LTK035C5444T, but still has
some minor variations in panel initialization.
Signed-off-by: John Watts
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 223 ++
1 file changed, 223 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel
Many of these registers have a known name in the public datasheet.
Document them as comments for reference.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 261 +-
1 file changed, 132 insertions(+), 129 deletions(-)
diff
On Mon, Sep 18, 2023 at 11:34:51PM +0200, Paul Cercueil wrote:
> The driver is guaranteed to always reset the panel in sleep-in mode -
> as long as the panel was off when the driver started.
>
> What I'd suggest if you really need to support a case where the panel
> was enabled by the bootloader,
The current code waits after resets for 5 to 20 milliseconds.
This is appropriate when resetting a sleeping panel, but an awake panel
requires at least 120ms of waiting.
Sleep for 150ms so the panel always completes it reset properly.
Signed-off-by: John Watts
---
drivers/gpu/drm/panel/panel
Fascontek manufactures LCD panels such as the FS035VG158.
Signed-off-by: John Watts
Acked-by: Krzysztof Kozlowski
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml
b
The panel needs us to wait 120ms between exiting and entering sleep.
Guarantee that by always waiting 150ms before entering sleep mode.
Signed-off-by: John Watts
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/panel
On Mon, Sep 18, 2023 at 01:19:03PM -0700, Jessica Zhang wrote:
> Hi John,
>
> Just wondering, is there some context to this change? I.e., was this made to
> fix a specific issue?
>
> This seems like a pretty significant increase in wait time so, if it's not a
> fix, I'm not sure if this would be
Panel initialization registers are per-display and not tied to the
controller itself. Different panels will specify their own registers.
Attach the sequences to the panel info struct so future panels
can specify their own sequences.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
SPI drivers needs their own list of compatible device IDs in order
for automatic module loading to work. Add those for this driver.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 7 +++
1 file changed, 7 insertions(+)
diff --git
Remove common properties listed in common yaml files.
Add required properties needed to describe the panel.
Signed-off-by: John Watts
---
.../bindings/display/panel/leadtek,ltk035c5444t.yaml | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git
a/Documentation
Hello there,
This RFC introduces support for the FS035VG158 LCD panel, cleaning up
the nv3052c driver on the way and documentating existing panel code.
John.
v1 -> v2:
- Fixed a variable declaration style error
- Cleaned up device tree yaml
John Watts (9):
drm/panel: nv3052c: Document kn
On Mon, Sep 18, 2023 at 11:01:15PM +0200, Paul Cercueil wrote:
> The datasheet does say a 5ms sleep time is necesary after a reset. I
> assume the 120ms delay you quote is when a *software* reset is
> performed in Sleep-out mode. The code here does a hard-reset.
>
> Cheers,
> -Paul
Hello Paul,
S
This is a small 3.5" 640x480 IPS LCD panel.
Signed-off-by: John Watts
---
.../display/panel/fascontek,fs035vg158.yaml | 56 +++
1 file changed, 56 insertions(+)
create mode 100644
Documentation/devicetree/bindings/display/panel/fascontek,fs035vg158.yaml
diff --g
Remove common properties listed in common yaml files.
Add required properties needed to describe the panel.
Signed-off-by: John Watts
Reviewed-by: Rob Herring
---
.../bindings/display/panel/leadtek,ltk035c5444t.yaml | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git
e yaml
John Watts (7):
drm/panel: nv3052c: Document known register names
drm/panel: nv3052c: Add SPI device IDs
drm/panel: nv3052c: Allow specifying registers per panel
drm/panel: nv3052c: Add Fascontek FS035VG158 LCD display
dt-bindings: display: panel: Clean up leadtek,ltk035c5444t prop
Many of these registers have a known name in the public datasheet.
Document them as comments for reference.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 261 +-
1 file changed, 132 insertions(+), 129 deletions(-)
diff
SPI drivers needs their own list of compatible device IDs in order
for automatic module loading to work. Add those for this driver.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 7 +++
1 file changed, 7 insertions(+)
diff --git
This display is extremely similar to the LTK035C5444T, but still has
some minor variations in panel initialization.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 223 ++
1 file changed, 223 insertions(+)
diff --git a
Panel initialization registers are per-display and not tied to the
controller itself. Different panels will specify their own registers.
Attach the sequences to the panel info struct so future panels
can specify their own sequences.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
This is a small 3.5" 640x480 IPS LCD panel.
Signed-off-by: John Watts
Reviewed-by: Rob Herring
---
.../display/panel/fascontek,fs035vg158.yaml | 56 +++
1 file changed, 56 insertions(+)
create mode 100644
Documentation/devicetree/bindings/display/panel/fascontek,fs035
Fascontek manufactures LCD panels such as the FS035VG158.
Signed-off-by: John Watts
Acked-by: Krzysztof Kozlowski
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml
b
On Mon, Sep 25, 2023 at 11:43:26AM +0200, Paul Cercueil wrote:
> From what I can see, you have a panel with a NV3052C chip, so the
> existing initialization sequence should already work.
It has some differences that I don't know if are important.
> The NV3052C datasheet does not give any settings
On Mon, Sep 25, 2023 at 11:12:29AM +0200, Paul Cercueil wrote:
> Hi John,
>
> Just to be sure, your fascontek panel won't work with the
> initialization sequence of the leadtek panel?
Yes, it does work.
> Did you try with the existing display modes? If you can afford the 24
> MHz clock (and if i
On Mon, Sep 25, 2023 at 12:34:55PM +0200, Paul Cercueil wrote:
> Unless you can explain what they do and why they are needed, I'd say
> they are not important :)
>
> ...
>
> Again, doesn't mean that you have to use these.
>
> From what I can see, all you need to support your Fascontek panel with
Many of these registers have a known name in the public datasheet.
Document them as comments for reference.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 261 +-
1 file changed, 132 insertions(+), 129 deletions(-)
diff
This display is extremely similar to the LTK035C5444T, but still has
some minor variations in panel initialization.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
.../gpu/drm/panel/panel-newvision-nv3052c.c | 223 ++
1 file changed, 223 insertions(+)
diff --git a
This is a small 3.5" 640x480 IPS LCD panel.
Signed-off-by: John Watts
Reviewed-by: Rob Herring
---
.../display/panel/fascontek,fs035vg158.yaml | 56 +++
1 file changed, 56 insertions(+)
create mode 100644
Documentation/devicetree/bindings/display/panel/fascontek,fs035
Fascontek manufactures LCD panels such as the FS035VG158.
Signed-off-by: John Watts
Acked-by: Krzysztof Kozlowski
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml
b
wise what needs to be done to get it merged.
John.
v3 -> v4:
- Mark panel_regs_len as unsigned
v2 -> v3:
- Dropped patches that add extra sleep time
v1 -> v2:
- Fixed a variable declaration style error
- Cleaned up device tree yaml
John Watts (7):
drm/panel: nv3052c: Document kn
SPI drivers needs their own list of compatible device IDs in order
for automatic module loading to work. Add those for this driver.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 7 +++
1 file changed, 7 insertions(+)
diff --git
Remove common properties listed in common yaml files.
Add required properties needed to describe the panel.
Signed-off-by: John Watts
Reviewed-by: Rob Herring
---
.../bindings/display/panel/leadtek,ltk035c5444t.yaml | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git
Panel initialization registers are per-display and not tied to the
controller itself. Different panels will specify their own registers.
Attach the sequences to the panel info struct so future panels
can specify their own sequences.
Signed-off-by: John Watts
---
.../gpu/drm/panel/panel
,
> +};
> +
> static const struct spi_device_id nv3052c_ids[] = {
> { "ltk035c5444t", },
> { "fs035vg158", },
> + { "wl_355608_a8", },
> { /* sentinel */ }
> };
> MODULE_DEVICE_TABLE(spi, nv3052c_ids);
> @@ -702,6 +925,7 @@ MODULE_DEVICE_TABLE(spi, nv3052c_ids);
> static const struct of_device_id nv3052c_of_match[] = {
> { .compatible = "leadtek,ltk035c5444t", .data =
> <k035c5444t_panel_info },
> { .compatible = "fascontek,fs035vg158", .data = &fs035vg158_panel_info
> },
> + { .compatible = "wl_355608_a8", .data = &wl_355608_a8_panel_info },
> { /* sentinel */ }
> };
> MODULE_DEVICE_TABLE(of, nv3052c_of_match);
> @@ -719,4 +943,5 @@ module_spi_driver(nv3052c_driver);
>
> MODULE_AUTHOR("Paul Cercueil ");
> MODULE_AUTHOR("Christophe Branchereau ");
> +MODULE_AUTHOR("Ryan Walklin MODULE_LICENSE("GPL v2");
> --
> 2.45.1
>
This all looks good to me, though I understand you may need to change the
compatible. Please CC me if this happens so I can re-review.
Reviewed-by: John Watts
John.
Hello there,
A while ago I added support for the FS035VG158 panel to the kernel, with its
use case being on a Allwinner T113 board.
While troubleshooting some other issue (I will be posting about that this
weekend) I found that I need to tell the panel controller to use a bit depth of
18-bit in o
Hi Jani,
On Fri, Jun 28, 2024 at 10:45:48AM +0300, Jani Nikula wrote:
> Might be helpful to actually point at the source code or commits or
> something.
The source code is here: drivers/gpu/drm/panel/panel-newvision-nv3052c.c
It's just a standard MIPI DBI panel. It reports using an RGB888 bus for
Hello,
On the T113 (and most likely the D1) sometimes the RGB LCD output has strange
artifacts such as:
- A blue tint
- A mostly opaque green tint
- A red tint
- A pink tint
The actual tint seems to differ between boards or chips, and has some
probability of showing up that can range from 50% to
On Sat, Jun 29, 2024 at 01:49:53AM +0200, Jakob L wrote:
> Hi John,
>
> good find! This seems to fix it on my DSI implementation. Every of the
> recent boots resulted in a pink tint (usually it was green for me, or blue)
> Booted 10 times - no tint.
>
> So this patch is good, but probably has to
Hi,
On Sat, Jun 29, 2024 at 12:14:39PM +1000, Kirby Nankivell wrote:
> Tested this on a MangoPI-MQ-R with a RGB lcd and can confirm that this fix
> removes the green tint I experienced.
>
> Disabling the mixer1 in DTS entirely also works.
>
> I suspect on the basis that the Mixer/TCON-TOP topolo
This display is extremely similar to the LTK035C5444T, but still has
some minor variations in panel initialization.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
Reviewed-by: Linus Walleij
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 223
1 file
Panel initialization registers are per-display and not tied to the
controller itself. Different panels will specify their own registers.
Attach the sequences to the panel info struct so future panels
can specify their own sequences.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
Remove common properties listed in common yaml files.
Add required properties needed to describe the panel.
Signed-off-by: John Watts
Reviewed-by: Rob Herring
---
.../devicetree/bindings/display/panel/leadtek,ltk035c5444t.yaml | 8 ++--
1 file changed, 2 insertions(+), 6 deletions
This is a small 3.5" 640x480 IPS LCD panel.
Signed-off-by: John Watts
Reviewed-by: Rob Herring
---
.../display/panel/fascontek,fs035vg158.yaml| 56 ++
1 file changed, 56 insertions(+)
diff --git
a/Documentation/devicetree/bindings/display/panel/fasc
Many of these registers have a known name in the public datasheet.
Document them as comments for reference.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
Reviewed-by: Linus Walleij
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 261
1 file changed, 132
Fascontek manufactures LCD panels such as the FS035VG158.
Signed-off-by: John Watts
Acked-by: Krzysztof Kozlowski
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml
b
SPI drivers needs their own list of compatible device IDs in order
for automatic module loading to work. Add those for this driver.
Signed-off-by: John Watts
Reviewed-by: Jessica Zhang
Reviewed-by: Linus Walleij
---
drivers/gpu/drm/panel/panel-newvision-nv3052c.c | 7 +++
1 file changed
-By trailers
v3 -> v4:
- Mark panel_regs_len as unsigned
v2 -> v3:
- Dropped patches that add extra sleep time
v1 -> v2:
- Fixed a variable declaration style error
- Cleaned up device tree yaml
---
John Watts (7):
drm/panel: nv3052c: Document known register names
drm/panel:
and DE1 mean mixer0 and mixer1
might be good to reduce confusion.
What do you think? :)
> Thanks,
> Parthiban
Thanks for your input!
John Watts
cause timing issues.
If my thoughts are correct, this would break use of mixer0 and mixer1 at the
same time.
> Also DE_PORT_SELECT_REG mentions only about TV and LCD muxing, but missing
> HDMI,
> DSI and so.
>
> Otherwise, if I get DE1 working in A133, I will try to add quirk to set DE0
> and
> DE1 port mapping in that case to respective connector.
>
> Thanks,
> Parthiban
Thanks,
John Watts.
ht a bit more about how to solve this properly- setting two
mixers to the same output is something people probably won't do in
practice, so the only way you could really arrive at this bugged state
is by setting it as the default state. This patch may be the correct
solution after all.
John Watts
O
On the D1 and T113 the TCON TOP cannot handle setting both DEs to a
single output, even if the outputs are disabled. As a workaround assign
DE1 to TVE0 by default.
A full fix for this would include logic that makes sure both DEs never
share the same output.
Signed-off-by: John Watts
is better.
Bit 5 is value 3 of TCON_TOP_PORT_DE1_MSK. The R40 datasheet explains the
values of both masks as follows:
00: TCON_LCD0
01: TCON_LCD1
10: TCON_TV0
11: TCON_TV1
So this sets DE1's input to DE0.
>
> Cheers,
> Andre
Thanks,
John Watts
7;t seem to
figure out what SCLK/HCLK gating does and I don't think the kernel
touches these registers which are gated by default.
> Thanks,
> Parthiban
John Watts
67 matches
Mail list logo