Bug 2486355
| Summary: | official 7" touch display not working on raspberry 3b+ | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | redhat |
| Component: | bcm283x-firmware | Assignee: | Peter Robinson <pbrobinson> |
| Status: | NEW --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 44 | CC: | pbrobinson, pwhalen |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | aarch64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | --- | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | --- | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
When booting a fresh Fedora IoT 44 (written with arm-image-installer) on a raspberry pi 3 b+, the 7" touchscreen (connected via DSI) does not work. When adding either `display_auto_detect=1` or `dtoverlay=vc4-kms-dsi-7inch` (or both) to the `config.txt`, the screen will go dark and I end up with a simpleframebuffer device at `/dev/dri/card0`. When I ommit those settings, I end up with a vc4-drm device at `/dev/dri/card1`, but it just fades from black to white and stays dim. The screen (and pi) works flawelessly with current raspios. Please let me know if you need any more info / logs. Reproducible: Always Steps to Reproduce: Boot Fedora IoT 44 on Raspberry Pi 3 B+ Actual Results: Screen does not work Expected Results: Well ... Additional Information: ``` $ sudo dmesg | grep -E 'vc4|dsi|tc358|ft5|panel' [ 28.541636] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops [vc4]) [ 28.555528] rc rc0: vc4-hdmi as /devices/platform/soc/3f902000.hdmi/rc/rc0 [ 28.562568] input: vc4-hdmi as /devices/platform/soc/3f902000.hdmi/rc/rc0/input0 [ 28.582320] input: vc4-hdmi HDMI Jack as /devices/platform/soc/3f902000.hdmi/sound/card1/input1 [ 28.614352] vc4-drm soc:gpu: bound 3f902000.hdmi (ops vc4_hdmi_ops [vc4]) [ 28.621719] vc4-drm soc:gpu: bound 3f806000.vec (ops vc4_vec_ops [vc4]) [ 28.628437] vc4-drm soc:gpu: bound 3f004000.txp (ops vc4_txp_ops [vc4]) [ 28.635085] vc4-drm soc:gpu: bound 3f206000.pixelvalve (ops vc4_crtc_ops [vc4]) [ 28.642445] vc4-drm soc:gpu: bound 3f207000.pixelvalve (ops vc4_crtc_ops [vc4]) [ 28.649832] vc4-drm soc:gpu: bound 3f807000.pixelvalve (ops vc4_crtc_ops [vc4]) [ 28.658523] vc4-drm soc:gpu: bound 3fc00000.v3d (ops vc4_v3d_ops [vc4]) [ 28.674829] [drm] Initialized vc4 0.0.0 for soc:gpu on minor 1 [ 28.727218] vc4-drm soc:gpu: [drm] fb0: vc4drmfb frame buffer device $ sudo cat /sys/kernel/debug/device_component/soc:gpu aggregate_device name status ----------------------------------------------------------------------- soc:gpu bound device name status ----------------------------------------------------------------------- 3f400000.hvs bound 3f902000.hdmi bound 3f806000.vec bound 3f004000.txp bound 3f206000.pixelvalve bound 3f207000.pixelvalve bound 3f807000.pixelvalve bound 3fc00000.v3d bound ``` Somehow DSI does not get bound. Diff of device tree (`dtc -s -I fs -O dts /proc/device-tree`) in fedora vs. raspios: ``` $ diff -u /tmp/fedora-focus.txt /tmp/rpios-focus.txt --- /tmp/fedora-focus.txt 2026-06-01 02:46:12.735447646 +0200 +++ /tmp/rpios-focus.txt 2026-06-01 02:46:12.727447646 +0200 @@ -1,27 +1,38 @@ -117: dsi0 = "/soc/dsi@7e209000"; -118: dsi1 = "/soc/dsi@7e700000"; -139: i2c0 = "/soc/i2c0mux/i2c@0"; -144: i2c0if = "/soc/i2c@7e205000"; -146: i2c1 = "/soc/i2c@7e804000"; -150: i2c2 = "/soc/i2c@7e805000"; -151: i2c_arm = "/soc/i2c@7e804000"; -152: i2c_csi_dsi = "/soc/i2c0mux/i2c@1"; -153: i2c_csi_dsi0 = "/soc/i2c0mux/i2c@0"; -155: i2c_vc = "/soc/i2c0mux/i2c@0"; -252: i2c = "/soc/i2c@7e804000"; -253: i2c0 = "/soc/i2c0mux/i2c@0"; -254: i2c1 = "/soc/i2c@7e804000"; -255: i2c10 = "/soc/i2c0mux/i2c@1"; -256: i2c2 = "/soc/i2c@7e805000"; -628: dsi@7e209000 { -633: clock-output-names = "dsi0_byte", "dsi0_ddr2", "dsi0_ddr"; -635: compatible = "brcm,bcm2835-dsi0"; -643: dsi@7e700000 { -648: clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; -650: compatible = "brcm,bcm2835-dsi1"; -1158: pinctrl-names = "i2c0", "i2c_csi_dsi"; -1161: i2c@0 { -1168: i2c@1 { -1176: i2c@7e205000 { -1188: i2c@7e804000 { -1202: i2c@7e805000 { +30: reg_bridge@1 { +101: i2c@7e804000 { +756: pinctrl-names = "i2c0", "i2c_csi_dsi"; +766: i2c@0 { +773: i2c@1 { +782: compatible = "raspberrypi,7inch-touchscreen-panel-regulator"; +789: touchscreen-inverted-y; +791: touchscreen-size-x = <0x320>; +792: compatible = "edt,edt-ft5506"; +793: touchscreen-inverted-x; +797: touchscreen-size-y = <0x1e0>; +802: i2c@7e205000 { +957: dsi@7e209000 { +960: clock-output-names = "dsi0_byte", "dsi0_ddr2", "dsi0_ddr"; +966: compatible = "brcm,bcm2835-dsi0"; +972: i2c@7e805000 { +1148: dsi@7e700000 { +1151: clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr"; +1157: compatible = "brcm,bcm2835-dsi1"; +1170: bridge@0 { +1172: compatible = "toshiba,tc358762"; +1292: i2c1 = "/soc/i2c@7e804000"; +1307: i2c2 = "/soc/i2c@7e805000"; +1312: i2c0 = "/soc/i2c0mux/i2c@0"; +1321: i2c = "/soc/i2c@7e804000"; +1322: i2c10 = "/soc/i2c0mux/i2c@1"; +1325: panel_disp@1 { +1328: compatible = "raspberrypi,7inch-dsi", "simple-panel"; +1468: i2c_csi_dsi = "/soc/i2c0mux/i2c@1"; +1474: dsi1 = "/soc/dsi@7e700000"; +1476: i2c1 = "/soc/i2c@7e804000"; +1491: i2c_csi_dsi0 = "/soc/i2c0mux/i2c@0"; +1514: i2c0if = "/soc/i2c@7e205000"; +1522: i2c_vc = "/soc/i2c0mux/i2c@0"; +1538: i2c_arm = "/soc/i2c@7e804000"; +1548: i2c2 = "/soc/i2c@7e805000"; +1558: dsi0 = "/soc/dsi@7e209000"; +1565: i2c0 = "/soc/i2c0mux/i2c@0"; ```