* [PATCH v2 1/2] dt-bindings: display: panel-mipi-dbi-spi: Add UNIHIKER M10 display
2026-10-12 12:17 [PATCH v2 0/2] Add SPI display support for UNIHIKER M10 V1.2 Miotsuki Mizuno
@ 2026-10-12 12:17 ` Miotsuki Mizuno
2026-10-12 18:54 ` Conor Dooley
2026-10-12 12:17 ` [PATCH v2 2/2] arm64: dts: rockchip: Enable display on UNIHIKER M10 V1.2 Miotsuki Mizuno
1 sibling, 1 reply; 4+ messages in thread
From: Miotsuki Mizuno @ 2026-10-12 12:17 UTC (permalink / raw)
To: heiko, neil.armstrong
Cc: airlied, conor+dt, devicetree, dri-devel, jesszhan0024, krzk+dt,
linux-arm-kernel, linux-kernel, linux-rockchip,
maarten.lankhorst, mripard, noralf, robh, simona, tzimmermann
From: Mizuno Miotsuki <founder@crepuse.com>
The DFRobot UNIHIKER M10 V1.2 has a 240x320 SPI display with an
ILI9341-compatible command interface. Its initialization sequence can
be supplied to the existing panel-mipi-dbi driver as firmware.
Add dfrobot,unihiker-m10-display as the panel-specific compatible,
with panel-mipi-dbi-spi as the fallback.
Signed-off-by: Mizuno Miotsuki <founder@crepuse.com>
---
.../devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml b/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
index 6f0290c4e291..adef35f91670 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-mipi-dbi-spi.yaml
@@ -72,6 +72,7 @@ properties:
compatible:
items:
- enum:
+ - dfrobot,unihiker-m10-display
- saef,sftc154b
- sainsmart18
- shineworld,lh133k
--
2.56.0
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2 2/2] arm64: dts: rockchip: Enable display on UNIHIKER M10 V1.2
2026-10-12 12:17 [PATCH v2 0/2] Add SPI display support for UNIHIKER M10 V1.2 Miotsuki Mizuno
2026-10-12 12:17 ` [PATCH v2 1/2] dt-bindings: display: panel-mipi-dbi-spi: Add UNIHIKER M10 display Miotsuki Mizuno
@ 2026-10-12 12:17 ` Miotsuki Mizuno
1 sibling, 0 replies; 4+ messages in thread
From: Miotsuki Mizuno @ 2026-10-12 12:17 UTC (permalink / raw)
To: heiko, neil.armstrong
Cc: airlied, conor+dt, devicetree, dri-devel, jesszhan0024, krzk+dt,
linux-arm-kernel, linux-kernel, linux-rockchip,
maarten.lankhorst, mripard, noralf, robh, simona, tzimmermann
From: Mizuno Miotsuki <founder@crepuse.com>
Enable the onboard 240x320 SPI display using panel-mipi-dbi. Add its
D/C and reset GPIOs, display timing, and PWM1 backlight, and enable
SPI2 with a maximum transfer frequency of 50 MHz.
Assign SPI2 a 100 MHz input clock from DPLL so that the controller's
even baud-rate divider can provide 50 MHz for pixel transfers.
Describe the 43.2 x 57.6 mm active area as 43 x 58 mm in the integer
millimetre properties. The panel uses RGB565 pixel data and requires the
external
initialization file dfrobot,unihiker-m10-display.bin. No DRM or SPI
controller driver changes are needed.
Signed-off-by: Mizuno Miotsuki <founder@crepuse.com>
---
.../dts/rockchip/rk3308-unihiker-m10-v1.2.dts | 53 +++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3308-unihiker-m10-v1.2.dts b/arch/arm64/boot/dts/rockchip/rk3308-unihiker-m10-v1.2.dts
index 0c03f118378a..4dc01ea73e44 100644
--- a/arch/arm64/boot/dts/rockchip/rk3308-unihiker-m10-v1.2.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3308-unihiker-m10-v1.2.dts
@@ -22,6 +22,14 @@ chosen {
stdout-path = "serial0:1500000n8";
};
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm1 0 10000 0>;
+ brightness-levels = <0 16 32 48 64 80 96 112 128
+ 144 160 176 192 208 224 240 255>;
+ default-brightness-level = <12>;
+ };
+
keys {
compatible = "gpio-keys";
@@ -154,6 +162,13 @@ &pinctrl {
pinctrl-names = "default";
pinctrl-0 = <&rtc_32k>;
+ lcd {
+ lcd_control: lcd-control {
+ rockchip,pins = <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
+ <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
sdmmc {
sd_vcc_en: sd-vcc-en {
rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -183,6 +198,10 @@ &pwm0 {
status = "okay";
};
+&pwm1 {
+ status = "okay";
+};
+
&sdio {
#address-cells = <1>;
#size-cells = <0>;
@@ -216,6 +235,40 @@ &sdmmc {
status = "okay";
};
+&spi2 {
+ assigned-clocks = <&cru SCLK_SPI2>;
+ assigned-clock-parents = <&cru PLL_DPLL>;
+ assigned-clock-rates = <100000000>;
+ status = "okay";
+
+ display@0 {
+ compatible = "dfrobot,unihiker-m10-display", "panel-mipi-dbi-spi";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&lcd_control>;
+ dc-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
+ /* The DBI reset helper drives logical low, then high. */
+ reset-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;
+ backlight = <&backlight>;
+ format = "r5g6b5";
+ width-mm = <43>;
+ height-mm = <58>;
+
+ panel-timing {
+ clock-frequency = <0>;
+ hactive = <240>;
+ vactive = <320>;
+ hback-porch = <0>;
+ hfront-porch = <0>;
+ hsync-len = <0>;
+ vback-porch = <0>;
+ vfront-porch = <0>;
+ vsync-len = <0>;
+ };
+ };
+};
+
&u2phy {
status = "okay";
};
--
2.56.0
^ permalink raw reply [flat|nested] 4+ messages in thread