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 <[email protected]> --- .../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
