On 9/28/26 18:22, Maxime Ripard wrote:
Most MIPI-DSI panel drivers follow an identical pattern: acquire
regulators and GPIOs, perform a reset pulse with specific timing,
send a vendor-supplied sequence of DSI commands, then enable the
display. The only truly panel-specific part is the init sequence
and power-on/off timing.
The panel-mipi-dsi-bpf driver replaces per-panel kernel modules
with a single generic driver whose panel-specific behavior is
provided by BPF programs loaded from userspace at runtime,
following the HID-BPF model. This enables new panel support
without kernel patches.
Panel DT nodes use a two-entry compatible with the panel-specific
string first and "panel-mipi-dsi-bpf" as fallback. The generic
driver matches on the fallback, while the first compatible is used
to identify which BPF program to load.
Six normalized optional regulator supplies cover ~95% of existing
MIPI-DSI panels: vcc (IC core), iovcc (I/O interface), avdd/avee
(positive/negative analog), and elvdd/elvss (OLED EL driver).
Signed-off-by: Maxime Ripard <[email protected]>
---
.../bindings/display/panel/panel-mipi-dsi-bpf.yaml | 184 +++++++++++++++++++++
1 file changed, 184 insertions(+)
diff --git
a/Documentation/devicetree/bindings/display/panel/panel-mipi-dsi-bpf.yaml
b/Documentation/devicetree/bindings/display/panel/panel-mipi-dsi-bpf.yaml
new file mode 100644
index 000000000000..9a20a21cf70e
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/panel-mipi-dsi-bpf.yaml
@@ -0,0 +1,184 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/panel-mipi-dsi-bpf.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic MIPI-DSI panel with BPF init sequences
+
+maintainers:
+ - Maxime Ripard <[email protected]>
+
+description: |
+ A generic MIPI-DSI panel driver where the panel-specific power sequencing
+ and DSI init commands are provided by BPF programs.
+
+ Panel DT nodes use a fallback compatible so the generic driver matches on
+ "panel-mipi-dsi-bpf" while the first compatible identifies the specific
+ panel for BPF program matching.
+
+allOf:
+ - $ref: panel-common.yaml#
+
+properties:
+ compatible:
+ items:
+ - description: Panel-specific compatible string
+ - const: panel-mipi-dsi-bpf
I don't see how this can be a valid hardware description, bfp is a software
implementation and has nothing to do in the bindings.
Neil