// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * WardenOS 86-Panel board DT for the self-built Linux 6.18 forward-port. * * Includes the full vendor rv1106.dtsi (SoC nodes + pinctrl + gpio + dmac), then * enables only what our wall-HMI needs — no camera/ISP/CSI. Grows one driver * batch at a time toward full parity with the 5.10 kernel (DRIVER-PARITY.md). */ /dts-v1/; #include "rv1106.dtsi" / { model = "WardenOS 86-Panel (RV1106)"; compatible = "rockchip,rv1106-warden", "rockchip,rv1106"; chosen { stdout-path = "serial2:115200n8"; bootargs = "earlycon=uart8250,mmio32,0xff4c0000 console=ttyS2,115200n8 earlyprintk rootwait"; }; memory@0 { device_type = "memory"; reg = <0x00000000 0x10000000>; /* 256 MiB */ }; }; /* --- console --- */ &uart2 { status = "okay"; }; /* --- eMMC rootfs (M3) --- */ &emmc { bus-width = <8>; cap-mmc-highspeed; mmc-hs200-1_8v; non-removable; status = "okay"; }; /* --- batch 1: mainline peripherals (wire DT + config) --- */ &uart1 { status = "okay"; }; &uart4 { status = "okay"; }; &i2c3 { status = "okay"; }; &saradc { status = "okay"; }; &wdt { status = "okay"; }; /* --- M4: display (VOP + RGB → 720x720 panel + PWM backlight) --- */ &display_subsystem { status = "okay"; }; &vop { status = "okay"; /* mainline rockchip_drm_vop requests named "ahb" + "dclk" resets that the * vendor node omits; without them vop_bind fails "failed to get ahb reset". */ resets = <&cru SRST_H_VOP>, <&cru SRST_D_VOP>; reset-names = "ahb", "dclk"; }; /* mainline wires vop_out straight to the panel (no separate rgb node) */ &vop_out_rgb { remote-endpoint = <&panel_in_vop>; }; &pwm1 { status = "okay"; pinctrl-names = "active"; pinctrl-0 = <&pwm1m2_pins>; }; / { backlight: backlight { compatible = "pwm-backlight"; pwms = <&pwm1 0 100000 50000>; brightness-levels = <0 32 64 96 128 160 192 224 255>; default-brightness-level = <8>; status = "okay"; }; panel: panel { compatible = "panel-dpi"; backlight = <&backlight>; width-mm = <85>; height-mm = <85>; panel-timing { clock-frequency = <30000000>; hactive = <720>; vactive = <720>; hback-porch = <44>; hfront-porch = <46>; vback-porch = <18>; vfront-porch = <16>; hsync-len = <2>; vsync-len = <2>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <0>; }; port { panel_in_vop: endpoint { remote-endpoint = <&vop_out_rgb>; }; }; }; }; /* the vendor rgb bridge node has no 6.18 driver and its dangling endpoint * corrupts the vop->panel of_graph; disable it so the graph is clean. */ &rgb { status = "disabled"; };