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

Improve Pi 5 I2C bus timing #5802

Merged
merged 2 commits into from
Dec 20, 2023
Merged

Conversation

pelwell
Copy link
Contributor

@pelwell pelwell commented Dec 19, 2023

It has been observed that the Pi 5 I2C buses don't reach the expected speeds. That is down to the absence of accurate bus timings, with the defaults being pessimistic. Add a way of configuring bus-speed specific timings via Device Tree, and a set of tuned values that should give accurate 100kHz, 400kHz and 1MHz speeds.

See: #5792

The i2c-designware driver supports reading precise timing values from
ACPI, but the Device Tree support relies on a combination of standard
rise and fall times and hard-coded minimum timings. The result of this
is that it is difficult to get optimum timings, particularly given that
the values are bus speed-specific and only one set can be stored in
DT at a time.

Add support for initialisation from DT that is similar to that for
ACPI.

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
@pelwell pelwell merged commit 660d569 into raspberrypi:rpi-6.1.y Dec 20, 2023
11 of 12 checks passed
popcornmix added a commit to raspberrypi/firmware that referenced this pull request Dec 21, 2023
kernel: ARM: dts: bcm2712-rpi-5-b: Allow RTC to be disabled
See: raspberrypi/linux#5803

kernel: Improve Pi 5 I2C bus timing
See: raspberrypi/linux#5802

kernel: input: edt-ft5x06: Correct prefix length in snprintf
See: raspberrypi/linux#5798

kernel: Allow IMX477 and IMX296 to be always on, to simplify multi-camera sync
See: raspberrypi/linux#5774
popcornmix added a commit to raspberrypi/rpi-firmware that referenced this pull request Dec 21, 2023
kernel: ARM: dts: bcm2712-rpi-5-b: Allow RTC to be disabled
See: raspberrypi/linux#5803

kernel: Improve Pi 5 I2C bus timing
See: raspberrypi/linux#5802

kernel: input: edt-ft5x06: Correct prefix length in snprintf
See: raspberrypi/linux#5798

kernel: Allow IMX477 and IMX296 to be always on, to simplify multi-camera sync
See: raspberrypi/linux#5774
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant