Files
bfe-core1106-sdk/kernel/rv1106-enablement/dts/rv1106-warden.dts
T
BFE EngineeringandClaude Opus 4.8 749f73568a kernel: RTC + tsadc ported (open-source, from vendor source); npu/rga plans
RTC: ported the vendor rockchip,rv1106-rtc driver (rtc-rockchip.c) to 6.18 — one
API delta (rtc_register_device -> devm_rtc_register_device). Verified on
warden-c8a3: /dev/rtc0 registers and reads.

tsadc thermal: ported the rv1106 data + rk_tsadcv9_initialize + the TSADCV9/VOGRF
macros + code table from the vendor; adapted .chn_id[SENSOR_CPU] -> .chn_offset
for 6.18. Verified: thermal_zone0 "soc-thermal" reads 39.8 C.

i2s-tdm: rv1126 fallback compatible added (DAI builds; sound card needs the acodec
port next). saradc still -22 (clk-rv1106 SARADC divider — deferred).

Includes the NPU + RGA open-source port plans (research): rknpu kernel driver is a
small port (RV1106 config already in the vendor driver; 4 dead-code headers need
compat stubs) but no open userspace exists for this NPU gen; RGA = port the vendor
char-dev rga3 driver (WardenOS's librga uses /dev/rga, not V4L2), + a cma pool +
hrtimer_setup. All ports are open source (vendor C source / mainline siblings).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wB8KB3MMQztRDXCMCkPrf
2026-08-24 22:48:39 -06:00

162 lines
3.0 KiB
Devicetree

// 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";
};
/* --- sweep: USB OTG (eth0 gadget / host) via the ported inno-usb2 phy --- */
&u2phy {
status = "okay";
};
&u2phy_otg {
status = "okay";
};
&usbdrd {
status = "okay";
};
&usbdrd_dwc3 {
status = "okay";
dr_mode = "otg";
};
/* --- sweep: RTC + thermal (tsadc) + I2S audio DAI --- */
&rtc {
status = "okay";
};
&tsadc {
status = "okay";
};
&i2s0_8ch {
status = "okay";
};