mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 09:12:39 +00:00
2e715fb4fc
Add support for BCM2712 (Raspberry Pi 5).
3bb5880ab3
Patches were generated from the diff between linux kernel branch linux-6.1.y
and rpi-6.1.y from raspberry pi kernel source:
- git format-patch linux-6.1.y...rpi-6.1.y
Build system: x86_64
Build-tested: bcm2708, bcm2709, bcm2710, bcm2711
Run-tested: bcm2710/RPi3B, bcm2711/RPi4B
Signed-off-by: Marty Jones <mj8263788@gmail.com>
[Remove applied and reverted patches, squash patches and config commits]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
38 lines
1.6 KiB
Diff
38 lines
1.6 KiB
Diff
From 480c8e9f48f8a96c457eb3dc0079a73598fb7477 Mon Sep 17 00:00:00 2001
|
|
From: Nick Hollinghurst <nick.hollinghurst@raspberrypi.org>
|
|
Date: Wed, 1 Dec 2021 19:43:08 +0000
|
|
Subject: [PATCH] drm/panel/raspberrypi-touchscreen: Insert more delays.
|
|
|
|
This avoids failures in cases where the panel is enabled
|
|
or re-probed very soon after being disabled or probed.
|
|
These can occur because the Atmel device can mis-behave
|
|
over I2C for a few ms after any write to the POWERON register.
|
|
---
|
|
drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c | 8 ++++++++
|
|
1 file changed, 8 insertions(+)
|
|
|
|
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
|
|
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
|
|
@@ -299,6 +299,13 @@ static int rpi_touchscreen_prepare(struc
|
|
struct rpi_touchscreen *ts = panel_to_ts(panel);
|
|
int i, data;
|
|
|
|
+ /*
|
|
+ * Power up the Toshiba bridge. The Atmel device can misbehave
|
|
+ * over I2C for a few ms after writes to REG_POWERON (including the
|
|
+ * write in rpi_touchscreen_disable()), so sleep before and after.
|
|
+ * Also to ensure that the bridge has been off for at least 100ms.
|
|
+ */
|
|
+ msleep(100);
|
|
rpi_touchscreen_i2c_write(ts, REG_POWERON, 1);
|
|
usleep_range(20000, 25000);
|
|
/* Wait for nPWRDWN to go low to indicate poweron is done. */
|
|
@@ -431,6 +438,7 @@ static int rpi_touchscreen_probe(struct
|
|
|
|
/* Turn off at boot, so we can cleanly sequence powering on. */
|
|
rpi_touchscreen_i2c_write(ts, REG_POWERON, 0);
|
|
+ usleep_range(20000, 25000);
|
|
|
|
/* Look up the DSI host. It needs to probe before we do. */
|
|
endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
|