mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] Add SPI display support for UNIHIKER M10 V1.2
@ 2026-10-10 23:28 Miotsuki Mizuno
  2026-10-10 23:28 ` [PATCH 1/2] dt-bindings: display: panel-mipi-dbi-spi: Add UNIHIKER M10 display Miotsuki Mizuno
  2026-10-10 23:29 ` [PATCH 2/2] arm64: dts: rockchip: Enable display on UNIHIKER M10 V1.2 Miotsuki Mizuno
  0 siblings, 2 replies; 3+ messages in thread
From: Miotsuki Mizuno @ 2026-10-10 23:28 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

Describe the onboard 240x320 RGB565 display with panel-mipi-dbi.
The series adds the panel compatible and enables SPI2, GPIO reset/D-C
and the PWM1 backlight. It uses the existing DRM and SPI drivers.

This series is based on the separate board I2C2 preparation commit.
The prerequisite board patch was submitted separately:
https://lore.kernel.org/r/20261010232831.26908-1-founder@crepuse.com
It does not depend on the pending NS2009 driver or binding.

The 132-byte initialization firmware is available from:
https://github.com/mio-tsuki/panel-mipi-dbi-firmware/releases/tag/v1.0.0
Required filename: dfrobot,unihiker-m10-display.bin
SHA256: 50412ae6d29c5bbfb7fac585528a761fb249d7944011a1b19c5e0f80a0418e5f
The test kernel embeds it with CONFIG_EXTRA_FIRMWARE. Public release
does not imply linux-firmware acceptance.

The nominal active area is 43.2 x 57.6 mm, represented as 43 x 58 mm.
The published V1.3 schematic is not used as evidence for V1.2 supply
connections; optional power/io supply properties are omitted.

SPI2 input is assigned 100 MHz. Active transfer register readback
showed BAUDR=2, corresponding to 50 MHz. No oscilloscope measurement
is claimed. GPIO_ACTIVE_HIGH reset matches the existing DRM helper
and leaves the physical reset pin HIGH after initialization.

Built against Rockchip v7.4-armsoc/dts64, commit
ae965b9856f033145e292b0c29082a26bcc45efd. Target DTS/schema, binding
examples and strict checkpatch checks passed. 
The exact display DTS booted through normal U-Boot three times in this
retest with the original test kernel, without pstore instrumentation,
clk_ignore_unused or regulator_ignore_unused. Physical corner patterns
were confirmed; full and partial updates and five DRM disable/enable
cycles completed. The exact display/touch combination also booted and
its physical output was confirmed.

Earlier boots reset during early userspace; one partial USB log recorded
an instruction abort. This was not reproduced in the latest retest.
The resets may have resulted from accidental contact with a loose
jumper wire during reboot. The cause has not been established, and no
software fix is claimed.
Exact-DTS cold boot and deep suspend/resume have not been tested.

Mizuno Miotsuki (2):
  dt-bindings: display: panel-mipi-dbi-spi: Add UNIHIKER M10 display
  arm64: dts: rockchip: Enable display on UNIHIKER M10 V1.2

 .../display/panel/panel-mipi-dbi-spi.yaml     |  1 +
 .../dts/rockchip/rk3308-unihiker-m10-v1.2.dts | 53 +++++++++++++++++++
 2 files changed, 54 insertions(+)


base-commit: f4f7ecd2e0e8debcbab4789717cc79d570d665e3
-- 
2.56.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] dt-bindings: display: panel-mipi-dbi-spi: Add UNIHIKER M10 display
  2026-10-10 23:28 [PATCH 0/2] Add SPI display support for UNIHIKER M10 V1.2 Miotsuki Mizuno
@ 2026-10-10 23:28 ` Miotsuki Mizuno
  2026-10-10 23:29 ` [PATCH 2/2] arm64: dts: rockchip: Enable display on UNIHIKER M10 V1.2 Miotsuki Mizuno
  1 sibling, 0 replies; 3+ messages in thread
From: Miotsuki Mizuno @ 2026-10-10 23:28 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

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

base-commit: f4f7ecd2e0e8debcbab4789717cc79d570d665e3
-- 
2.56.0


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 2/2] arm64: dts: rockchip: Enable display on UNIHIKER M10 V1.2
  2026-10-10 23:28 [PATCH 0/2] Add SPI display support for UNIHIKER M10 V1.2 Miotsuki Mizuno
  2026-10-10 23:28 ` [PATCH 1/2] dt-bindings: display: panel-mipi-dbi-spi: Add UNIHIKER M10 display Miotsuki Mizuno
@ 2026-10-10 23:29 ` Miotsuki Mizuno
  1 sibling, 0 replies; 3+ messages in thread
From: Miotsuki Mizuno @ 2026-10-10 23:29 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

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] 3+ messages in thread

end of thread, other threads:[~2026-10-10 23:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-10 23:28 [PATCH 0/2] Add SPI display support for UNIHIKER M10 V1.2 Miotsuki Mizuno
2026-10-10 23:28 ` [PATCH 1/2] dt-bindings: display: panel-mipi-dbi-spi: Add UNIHIKER M10 display Miotsuki Mizuno
2026-10-10 23:29 ` [PATCH 2/2] arm64: dts: rockchip: Enable display on UNIHIKER M10 V1.2 Miotsuki Mizuno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®