-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Conversation
|
|
||
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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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` |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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. 🥴 😆
There was a problem hiding this comment.
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?)
There was a problem hiding this comment.
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://github.com/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 😂 🙃
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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://github.com/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: |
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Paramater -> Parameter
Updates the display configuration instructions to use the new
vc4-kms-dpi-generic
overlay instead of the deprecateddpi_timings
configuration.Requested
pixel-freq
clarification has been updated in the legacy documentation. But that documentation still refers tohdmi_timings
, a configuration that's even more outdated thandpi_timings
. Should we replace this doc with the currentdpi_timings
doc?Closes #2989