Skip to content

Commit 3ac6eaa

Browse files
authored
Merge pull request #1111 from kernelkit/rpi-4-dsi-display
Raspberry Pi 4 DSI display
2 parents a7d91b4 + e6bd55c commit 3ac6eaa

File tree

39 files changed

+543
-192
lines changed

39 files changed

+543
-192
lines changed

board/aarch64/README.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,48 @@ Board Specific Documentation
77
- [Marvell CN9130-CRB](cn9130-crb/)
88
- [Microchip SparX-5i PCB135 (eMMC)](sparx5-pcb135/)
99
- [NanoPi R2S](r2s/)
10+
- [Raspberry Pi 4 b](#raspberry-pi-4-b)
11+
12+
# Raspberry Pi 4 b
13+
14+
## Support level
15+
Full support for base board but not any extension board on the
16+
GPIOs.
17+
18+
### Touch screen
19+
The [Raspberry Pi touch display v1][RPI-TOUCH] is supported, including
20+
touch functionality. There are multiple touchscreens on the market for
21+
Raspberry Pi, but only the official (first version with 800x480
22+
resolution) is currently supported. Infix supplies all drivers
23+
required to utilize the hardware, but you need to add the actual
24+
graphical application in a container.
25+
26+
There are some important considerations you need to know about when
27+
using Infix for graphical applications. The container needs access to
28+
/dev/dri/ to be able to access the graphics card, and it also needs
29+
access to /run/udev to be able to find the input devices.
30+
31+
Example of running Doom in Infix:
32+
33+
```cli
34+
admin@example:/> configure
35+
admin@example:/config/> edit container doom
36+
admin@example:/config/container/doom/> set image docker://mattiaswal/alpine-doom:latest
37+
admin@example:/config/container/doom/> set privileged
38+
admin@example:/config/container/doom/> edit mount udev
39+
admin@example:/config/container/doom/mount/udev/> set type bind
40+
admin@example:/config/container/doom/mount/udev/> set target /run/udev/
41+
admin@example:/config/container/doom/mount/udev/> set source /run/udev/
42+
admin@example:/config/container/doom/mount/udev/> end
43+
admin@example:/config/container/doom/mount/xorg.conf/> set content U2VjdGlvbiAiU2VydmVyTGF5b3V0IgogICAgSWRlbnRpZmllciAiRGVmYXVsdExheW91dCIKICAgIFNjcmVlbiAwICJTY3JlZW4wIiAwIDAKRW5kU2VjdGlvbgpTZWN0aW9uICJEZXZpY2UiCiAgICBJZGVudGlmaWVyICJpTVggTENEIgogICAgRHJpdmVyICJtb2Rlc2V0dGluZyIKICAgIEJ1c0lEICJwbGF0Zm9ybTozMmZjNjAwMC5kaXNwbGF5LWNvbnRyb2xsZXIiCiAgICBPcHRpb24gImttc2RldiIgIi9kZXYvZHJpL2NhcmQxIgpFbmRTZWN0aW9uCgpTZWN0aW9uICJTY3JlZW4iCiAgICBJZGVudGlmaWVyICJTY3JlZW4wIgogICAgRGV2aWNlICJpTVggTENEIgogICAgRGVmYXVsdERlcHRoIDI0CkVuZFNlY3Rpb24KCg==
44+
admin@example:/config/container/doom/mount/xorg.conf/> set target /etc/X11/xorg.conf
45+
admin@example:/config/container/doom/mount/xorg.conf/> end
46+
admin@example:/config/container/doom/> edit volume var
47+
admin@example:/config/container/doom/volume/var/> set target /var
48+
admin@example:/config/container/doom/volume/var/> leave
49+
admin@example:/>
50+
51+
```
52+
53+
54+
[RPI-TOUCH]: https://www.raspberrypi.com/products/raspberry-pi-touch-display/

board/common/post-image.sh

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,3 @@ if [ "$BR2_TARGET_ROOTFS_SQUASHFS" = "y" ]; then
110110
# Quick intro for beginners, with links to more information
111111
cp "$BR2_EXTERNAL_INFIX_PATH/board/common/README.txt" "$BINARIES_DIR/"
112112
fi
113-
114-
boards=$(${BR2_EXTERNAL_INFIX_PATH}/board/common/selected-boards.sh ${BR2_EXTERNAL_INFIX_PATH} ${O})
115-
for board in $boards; do
116-
[ ! -f "${BR2_EXTERNAL_INFIX_PATH}/src/board/${board}/post-image.sh" ] && continue
117-
RELEASE=$(ver)
118-
export INFIX_ID RELEASE
119-
${BR2_EXTERNAL_INFIX_PATH}/src/board/${board}/post-image.sh
120-
done

board/common/selected-boards.sh

Lines changed: 0 additions & 61 deletions
This file was deleted.

doc/ChangeLog.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ All notable changes to the project are documented in this file.
1111
- Upgrade Linux kernel to 6.12.42 (LTS)
1212
- Raspberry Pi 4 is now a part of the aarch64 image, as well as a SDcard
1313
image for initial deployments.
14-
14+
- Add support for [Raspberry Pi touch display][RPI-TOUCH] on Raspberry Pi 4
1515

1616
### Fixes
1717
- containers: prune dangling images to reclaim disk space (#1098)
1818

19+
[RPI-TOUCH]: https://www.raspberrypi.com/products/raspberry-pi-touch-display/
20+
1921
[v25.06.0][] - 2025-07-01
2022
-------------------------
2123

package/board/raspberry-pi-4/Config.in

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,5 @@ config BR2_PACKAGE_RASPBERRY_PI_4
55
select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI
66
select BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_WIFI
77

8-
select BR2_PACKAGE_RPI_FIRMWARE
9-
select BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4
10-
select BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X
11-
select SDCARD_AUX
12-
select BR2_TARGET_UBOOT_NEEDS_UBOOT_TOOLS
138
help
14-
Raspberry pi 4
9+
Raspberry Pi 4
Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,61 @@
11
define RASPBERRY_PI_4_LINUX_CONFIG_FIXUPS
2+
$(call KCONFIG_ENABLE_OPT,CONFIG_SOUND)
23
$(call KCONFIG_ENABLE_OPT,CONFIG_SND)
34
$(call KCONFIG_ENABLE_OPT,CONFIG_SND_SOC)
4-
$(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_BCM2835)
5-
$(call KCONFIG_ENABLE_OPT,CONFIG_CLK_RASPBERRYPI)
6-
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM)
7-
$(call KCONFIG_SET_OPT,CONFIG_DRM_V3D,m)
8-
$(call KCONFIG_SET_OPT,CONFIG_DRM_VC4,m)
9-
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_VC4_HDMI_CEC)
10-
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_LOAD_EDID_FIRMWARE)
11-
12-
$(call KCONFIG_ENABLE_OPT,CONFIG_FB)
13-
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_EMULATION)
14-
15-
5+
$(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_MOUSE)
6+
$(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_KEYBOARD)
167
$(call KCONFIG_ENABLE_OPT,CONFIG_INPUT_TOUCHSCREEN)
17-
$(call KCONFIG_SET_OPT,CONFIG_TOUCHSCREEN_EDT_FT5X06,m)
18-
$(call KCONFIG_SET_OPT,CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN,m)
8+
$(call KCONFIG_SET_OPT,CONFIG_INPUT_MOUSEDEV,m)
9+
$(call KCONFIG_SET_OPT,CONFIG_HID_GENERIC,m)
1910

20-
# RPI
2111
$(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BCM)
2212
$(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BCM2835)
2313
$(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_BRCMSTB)
24-
$(call KCONFIG_ENABLE_OPT,CONFIG_BCM2835_MBOX)
14+
$(call KCONFIG_SET_OPT,CONFIG_BCM2835_MBOX,y)
2515
$(call KCONFIG_ENABLE_OPT,CONFIG_BCM2835_WDT)
16+
$(call KCONFIG_ENABLE_OPT,CONFIG_DMA_BCM2835)
2617
$(call KCONFIG_ENABLE_OPT,CONFIG_RASPBERRYPI_FIRMWARE)
2718
$(call KCONFIG_ENABLE_OPT,CONFIG_PINCTRL_BCM2835)
2819
$(call KCONFIG_ENABLE_OPT,CONFIG_GPIO_BCM2835)
2920
$(call KCONFIG_SET_OPT,CONFIG_BRCMFMAC,m)
3021
$(call KCONFIG_ENABLE_OPT,CONFIG_BRCMFMAC_SDIO)
31-
$(call KCONFIG_ENABLE_OPT,CONFIG_I2C_BCM2835)
22+
$(call KCONFIG_SET_OPT,CONFIG_I2C_BCM2835,m)
23+
$(call KCONFIG_SET_OPT,CONFIG_BCM2711_THERMAL,m)
3224
$(call KCONFIG_ENABLE_OPT,CONFIG_MMC_BCM2835)
3325
$(call KCONFIG_ENABLE_OPT,CONFIG_MMC_SDHCI_IPROC)
34-
$(call KCONFIG_ENABLE_OPT,CONFIG_BCM2711_THERMAL)
3526
$(call KCONFIG_ENABLE_OPT,CONFIG_RASPBERRYPI_POWER)
3627
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250)
3728
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_CONSOLE)
3829
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_BCM2835AUX)
3930
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_EXTENDED)
4031
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_SHARE_IRQ)
4132
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_VENDOR_BROADCOM)
42-
$(call KCONFIG_ENABLE_OPT,CONFIG_BCMGENET)
43-
endef
33+
$(call KCONFIG_SET_OPT,CONFIG_BCMGENET,m)
34+
$(call KCONFIG_SET_OPT,CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY,m)
35+
$(call KCONFIG_ENABLE_OPT,CONFIG_COMMON_CLK_BCM2835)
36+
$(call KCONFIG_ENABLE_OPT,CONFIG_CLK_RASPBERRYPI)
37+
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM)
38+
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_KMS_HELPER)
39+
$(call KCONFIG_SET_OPT,CONFIG_DRM_V3D,m)
40+
$(call KCONFIG_SET_OPT,CONFIG_DRM_VC4,m)
41+
$(call KCONFIG_SET_OPT,CONFIG_STAGING,y)
42+
$(call KCONFIG_SET_OPT,CONFIG_SND_BCM2835,m)
43+
44+
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_VC4_HDMI_CEC)
45+
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_LOAD_EDID_FIRMWARE)
46+
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_PANEL_BRIDGE)
47+
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_BRIDGE)
48+
$(call KCONFIG_SET_OPT,CONFIG_DRM_TOSHIBA_TC358762,m)
49+
$(call KCONFIG_SET_OPT,CONFIG_DRM_PANEL_SIMPLE,m)
50+
51+
$(call KCONFIG_ENABLE_OPT,CONFIG_FB)
52+
$(call KCONFIG_ENABLE_OPT,CONFIG_FRAMEBUFFER_CONSOLE)
53+
$(call KCONFIG_ENABLE_OPT,CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY)
54+
$(call KCONFIG_ENABLE_OPT,CONFIG_DRM_FBDEV_EMULATION)
4455

56+
$(call KCONFIG_SET_OPT,CONFIG_TOUCHSCREEN_EDT_FT5X06,m)
57+
58+
$(call KCONFIG_ENABLE_OPT,CONFIG_BACKLIGHT_CLASS_DEVICE)
59+
endef
4560
$(eval $(ix-board))
4661
$(eval $(generic-package))

patches/linux/6.12.42/0001-FIX-net-dsa-mv88e6xxx-Fix-timeout-on-waiting-for-PPU.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From 40a8201087967980260b7424bbbde69fea24a773 Mon Sep 17 00:00:00 2001
22
From: Tobias Waldekranz <[email protected]>
33
Date: Tue, 12 Mar 2024 10:27:24 +0100
4-
Subject: [PATCH 01/28] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for
4+
Subject: [PATCH 01/30] [FIX] net: dsa: mv88e6xxx: Fix timeout on waiting for
55
PPU on 6393X
66
Organization: Wires
77

@@ -13,7 +13,7 @@ register 0, bit 15). Therefore, increase the timeout threshold to 1s.
1313
1 file changed, 1 insertion(+), 1 deletion(-)
1414

1515
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
16-
index 211c219dd52d..d64c3eef4447 100644
16+
index 211c219dd52db..d64c3eef4447a 100644
1717
--- a/drivers/net/dsa/mv88e6xxx/chip.c
1818
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
1919
@@ -86,7 +86,7 @@ int mv88e6xxx_write(struct mv88e6xxx_chip *chip, int addr, int reg, u16 val)

patches/linux/6.12.42/0002-net-dsa-mv88e6xxx-Improve-indirect-register-access-p.patch

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From a6289c5551cdfc4aa715e6ba66c9030e9dbbe9e1 Mon Sep 17 00:00:00 2001
22
From: Tobias Waldekranz <[email protected]>
33
Date: Wed, 27 Mar 2024 15:52:43 +0100
4-
Subject: [PATCH 02/28] net: dsa: mv88e6xxx: Improve indirect register access
4+
Subject: [PATCH 02/30] net: dsa: mv88e6xxx: Improve indirect register access
55
perf on 6393
66
Organization: Wires
77

@@ -22,7 +22,7 @@ other accesses use the regular indirect interface.
2222
5 files changed, 119 insertions(+)
2323

2424
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
25-
index d64c3eef4447..47138492885e 100644
25+
index d64c3eef4447a..47138492885e6 100644
2626
--- a/drivers/net/dsa/mv88e6xxx/chip.c
2727
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
2828
@@ -6539,6 +6539,13 @@ static int mv88e6xxx_detect(struct mv88e6xxx_chip *chip)
@@ -40,7 +40,7 @@ index d64c3eef4447..47138492885e 100644
4040
chip->info->prod_num, chip->info->name, rev);
4141

4242
diff --git a/drivers/net/dsa/mv88e6xxx/global1.h b/drivers/net/dsa/mv88e6xxx/global1.h
43-
index 3dbb7a1b8fe1..5ea956aadecc 100644
43+
index 3dbb7a1b8fe11..5ea956aadecc9 100644
4444
--- a/drivers/net/dsa/mv88e6xxx/global1.h
4545
+++ b/drivers/net/dsa/mv88e6xxx/global1.h
4646
@@ -218,6 +218,9 @@
@@ -54,7 +54,7 @@ index 3dbb7a1b8fe1..5ea956aadecc 100644
5454
#define MV88E6XXX_G1_CTL2 0x1c
5555
#define MV88E6185_G1_CTL2_CASCADE_PORT_MASK 0xf000
5656
diff --git a/drivers/net/dsa/mv88e6xxx/global2.h b/drivers/net/dsa/mv88e6xxx/global2.h
57-
index 82f9b410de0b..3663645621c9 100644
57+
index 82f9b410de0b8..3663645621c9d 100644
5858
--- a/drivers/net/dsa/mv88e6xxx/global2.h
5959
+++ b/drivers/net/dsa/mv88e6xxx/global2.h
6060
@@ -143,6 +143,9 @@
@@ -68,7 +68,7 @@ index 82f9b410de0b..3663645621c9 100644
6868
#define MV88E6XXX_G2_EEPROM_CMD 0x14
6969
#define MV88E6XXX_G2_EEPROM_CMD_BUSY 0x8000
7070
diff --git a/drivers/net/dsa/mv88e6xxx/smi.c b/drivers/net/dsa/mv88e6xxx/smi.c
71-
index a990271b7482..f54bb0e79030 100644
71+
index a990271b74823..f54bb0e79030c 100644
7272
--- a/drivers/net/dsa/mv88e6xxx/smi.c
7373
+++ b/drivers/net/dsa/mv88e6xxx/smi.c
7474
@@ -8,6 +8,8 @@
@@ -169,7 +169,7 @@ index a990271b7482..f54bb0e79030 100644
169169
chip->smi_ops = &mv88e6xxx_smi_indirect_ops;
170170
else
171171
diff --git a/drivers/net/dsa/mv88e6xxx/smi.h b/drivers/net/dsa/mv88e6xxx/smi.h
172-
index c6c71d5757f5..788cf68b7b33 100644
172+
index c6c71d5757f5d..788cf68b7b334 100644
173173
--- a/drivers/net/dsa/mv88e6xxx/smi.h
174174
+++ b/drivers/net/dsa/mv88e6xxx/smi.h
175175
@@ -31,6 +31,36 @@

patches/linux/6.12.42/0003-net-dsa-mv88e6xxx-Honor-ports-being-managed-via-in-b.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From 91a77f0ff1202cd1f7bca0a62b7c1d07209feb7d Mon Sep 17 00:00:00 2001
22
From: Tobias Waldekranz <[email protected]>
33
Date: Mon, 22 Apr 2024 23:18:01 +0200
4-
Subject: [PATCH 03/28] net: dsa: mv88e6xxx: Honor ports being managed via
4+
Subject: [PATCH 03/30] net: dsa: mv88e6xxx: Honor ports being managed via
55
in-band-status
66
Organization: Wires
77

@@ -18,7 +18,7 @@ when in-band-status is being used.
1818
1 file changed, 6 insertions(+)
1919

2020
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
21-
index 47138492885e..b96bc12dc6a8 100644
21+
index 47138492885e6..b96bc12dc6a86 100644
2222
--- a/drivers/net/dsa/mv88e6xxx/chip.c
2323
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
2424
@@ -964,6 +964,9 @@ static void mv88e6xxx_mac_link_down(struct phylink_config *config,

patches/linux/6.12.42/0004-net-dsa-mv88e6xxx-Limit-rsvd2cpu-policy-to-user-port.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From 562c9080217c439d2ce92307ad675ee3e0572d44 Mon Sep 17 00:00:00 2001
22
From: Tobias Waldekranz <[email protected]>
33
Date: Wed, 24 Apr 2024 22:41:04 +0200
4-
Subject: [PATCH 04/28] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user
4+
Subject: [PATCH 04/30] net: dsa: mv88e6xxx: Limit rsvd2cpu policy to user
55
ports on 6393X
66
Organization: Wires
77

@@ -34,7 +34,7 @@ forwarded like any other.
3434
1 file changed, 25 insertions(+), 6 deletions(-)
3535

3636
diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c
37-
index 04053fdc6489..f25fb3214acb 100644
37+
index 04053fdc6489a..f25fb3214acb9 100644
3838
--- a/drivers/net/dsa/mv88e6xxx/port.c
3939
+++ b/drivers/net/dsa/mv88e6xxx/port.c
4040
@@ -1432,6 +1432,23 @@ static int mv88e6393x_port_policy_write_all(struct mv88e6xxx_chip *chip,

0 commit comments

Comments
 (0)