Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated display configuration instructions for Bookworm changes #3110

Merged
merged 2 commits into from
Sep 14, 2023

Conversation

nathan-contino
Copy link
Collaborator

Updates the display configuration instructions to use the new vc4-kms-dpi-generic overlay instead of the deprecated dpi_timings configuration.

Requested pixel-freq clarification has been updated in the legacy documentation. But that documentation still refers to hdmi_timings, a configuration that's even more outdated than dpi_timings. Should we replace this doc with the current dpi_timings doc?

Closes #2989

@lurch
Copy link
Contributor

lurch commented Sep 13, 2023


This whitepaper assumes that the Raspberry Pi is running the Raspberry Pi OS (Linux), and is fully up to date with the latest firmware and kernels.
This whitepaper assumes that the Raspberry Pi runs Raspberry Pi OS (Linux) and is fully up to date with the latest firmware and kernels.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is going to cause merge conflicts with @jehlers42 #3087 PR.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TY for the heads-up. Reversed this, which should simplify the git shenanigans later.

@@ -335,162 +335,115 @@ h|*27* h|*26* h|*25* h|*24* h|*23* h|*22* h|*21* h|*20* h|*19* h|*18* h|*17* h|*

=== Disable Other GPIO Peripherals

Note that all other peripheral overlays that use conflicting GPIO pins must be disabled. In config.txt, take care to comment out or invert any dtparams that enable I2C or SPI:
Note that all other peripheral overlays that use conflicting GPIO pins must be disabled. In `config.txt`, take care to comment out or invert any dtparams that enable I2C or SPI:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't start a sentence with "Note" unless you're going to make a NOTE: block.

hsync/vsync/oe phases:
0: DPI_PHASE_POSEDGE
1: DPI_PHASE_NEGEDGE
`display_auto_detect=1`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only applies to DSI displays, so might not be useful in the DPI docs?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might be misunderstanding, but I think DSI refers to a connector standard (cable on the Pi, as opposed to plugging in a microHDMI cable) and DPI (display pixel interface) refers to the communication standard, which in Bookworm now includes both HDMI and DSI. I think. I'm not sure it makes sense to split the two apart any more given that change.

Copy link
Contributor

@lurch lurch Sep 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DSI = Display Serial Interface
DPI = Display Parallel Interface

So different signalling mechanisms, not just different types of connector.

And to clarify slightly, DSI is only available via the FFC connector on the Pi, and DPI is only available via the GPIO pins on the Pi, and these are both different to HDMI. 🥴 😆

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait! DPI = Display Pixel Interface surely?

https://www.itwissen.info/en/display-pixel-interface-DSI-DPI-128674.html#gsc.tab=0 (amongst other references?)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just asked @6by9 and he confidently said "Display Parallel Interface".
https:/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/raspberry-pi/display-parallel-interface.adoc
https://pinout.xyz/pinout/dpi

I guess it's just an unfortunate coincidence that "DPI" has two different expansions, depending on context 😂 🙃

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll take it back - it is the MIPI spec that it's following, and MIPI do appear to have called it Display Pixel Interface.
As normal for MIPI the actual specs are hidden behind the membership login, so I can't actually have a look at the spec :-(

I'll try to find confirmation of exactly which spec we're following as I vaguely recall it being a Nokia one (which probably became the MIPI one).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the VC4 peripherals spec

DPI Display
It supports MIPI DPI type 4 and Nokia ViSSI signal types

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And just to make it murkier still, the actual title of the spec is

MIPI Alliance Standard for Display Pixel Interface (DPI-2)

Whilst the spec is at V2, I wouldn't say that the 2 on the end of DPI- refers to the version, in the same way as we implement CSI-2 v1.01 for cameras.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hate displays. I just want to make that really clear. 🤦‍♂️


=== Controlling Timings and Resolutions
Replace the `1` with a `0` to disable auto detect.
When you connect the official Raspberry Pi display with auto detect enabled, KMS determines the display model automatically and configures the appropriate display settings.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"the official Raspberry Pi display" is also a DSI device.


If you set up a custom DPI mode, then in config.txt use:
To use any display other than the official Raspberry Pi display, you must specify a `dtoverlay` entry in `config.txt`. The panel manufacturer should configure timings for your display in Linux kernel code and provide an overlay to enable those settings. See the https:/raspberrypi/linux/blob/rpi-5.10.y/arch/arm/boot/dts/overlays/vc4-kms-kippah-7inch-overlay.dts[Adafruit Kippah display entry] for an example. The following example demonstrates how to set a `dtoverlay` entry for the Kippah display in your xref:config_txt.adoc#what-is-config-txt[`/boot/firmware/config.txt`] file:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nitpick, but could we link to the rpi-6.1.y branch here? See also #3076


A Linux Device Tree overlay is used to switch the GPIO pins into the correct mode (alt function 2). As previously mentioned, the GPU is responsible for driving the DPI display. Hence there is no Linux driver; the overlay simply sets the GPIO alt functions correctly.
Paramater display tree definitions support the following options:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Paramater -> Parameter

@aallan aallan merged commit fd9efd1 into bookworm Sep 14, 2023
1 check passed
@aallan aallan deleted the bookwormdisplayconfiguration branch September 14, 2023 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bookworm 🐛 Issue with Bookworm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Clarification of pixel_freq in DPI docs Mother-issue: Removal of support for "Legacy graphics"
4 participants