MIPI DSI Use Kernel configuration Add the following configuration in arch/arm/configs/fireprime_defconfig: CONFIG_LCD_MIPI=y CONFIG_MIPI_DSI=y CONFIG_RK32_MIPI_DSI=y Driver configuration Add a new dts file Add a new dts file in the path "arch/arm/boot/dts/", such as lcd-xxx- mipi.dtsi Include the dts file and close the tve enable Include the dts file you add in first step in path "arch/arm/boot/dts/rk3128-fireprime.dts". If there have included other display's DTS files, please make them as annotation .If you want to use mipi lcd, you need to close tve enable: &tve { status = "disabled"; test_mode = <0>; }; Add backlight configuration Add backlight configuration in lcd-xxx-mipi.dtsi, for example: backlight { compatible = "pwm-backlight"; pwms = <&pwm0 0 25000>; rockchip,pwm_id= <1>; /* | dark(255-221) | light scale(220-0) | , scale_div=255*/ brightness-levels = ; default-brightness-level = <180>; enable-gpios = <&gpio1 GPIO_A7 GPIO_ACTIVE_HIGH>; }; Pwms: the attribute of PWM. The Firelfy-RK3288 use pwm1. 25000 is the frequency of PWM. brightness-level: array for back light, the max value is 255. The configuration of dark and light area. default-brightness-level: default brightness, the range of this value is 0~255. enable-gpios: the enable pin of back light. See the documentations in the follow path for more information: Documentation/devicetree/bindings/video/backlight/pwm-backlight.txt Configure information of MIPI Add the configure information of MIPI in lcd-xxx-mipi.dtsi, for example: disp_mipi_init: mipi_dsi_init{ compatible = "rockchip,mipi_dsi_init"; rockchip,screen_init = <1>; rockchip,dsi_lane = <4>; rockchip,dsi_hs_clk = <500>; rockchip,mipi_dsi_num = <1>; }; rockchip,screen_init: the value of 0 means without special instruction while initial. The value of 1 means need the special instruction to initial the LCD display. rockchip,dsi_lane: the number of lane. rockchip,dsi_hs_clk: the value of hsclk. rockchip,mipi_dsi_num:the number of DSI interface, single channel is 1, dual channel is 2.(fireprime MIPI only supports single channel screen). See the documentation of the follow path for more information:Documen tation/devicetree/bindings/video/rockchip_mipidsi_lcd.txt LCD pins configuration Add the LCD pins configuration in lcd-xxx-mipi.dtsi, for example: disp_mipi_power_ctr: mipi_power_ctr { compatible = "rockchip,mipi_power_ctr"; mipi_lcd_rst:mipi_lcd_rst{ compatible = "rockchip,lcd_rst"; rockchip,gpios = <&gpio2 GPIO_B0 GPIO_ACTIVE_LOW>; rockchip,delay = <10>; }; /* mipi_lcd_en:mipi_lcd_en { compatible = "rockchip,lcd_en"; rockchip,gpios = <&gpio0 GPIO_C1 GPIO_ACTIVE_HIGH>; rockchip,delay = <10>; };*/ }; There are power enable pin "mipi_lcd_en", chip select pin "mipi_lcd_cs", reset pin "mipi_lcd_rst". You can modify those configuration according to the LCD. The configuration of initial instructions Add the configuration of initial instructions in lcd-xxx-mipi.dtsi, for example: disp_mipi_init_cmds: screen-on-cmds { rockchip,cmd_debug = <0>; compatible = "rockchip,screen-on-cmds"; rockchip,on-cmds1 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = <0>; rockchip,cmd = <0x05 0x29>; rockchip,cmd_delay = <0>; }; rockchip,on-cmds2 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = <0>; rockchip,cmd = <0x05 0x11>; rockchip,cmd_delay = <200>; }; }; It will need the special instructions to initial the When the value of "rockchip,screen_init" is set to 1. rockchip,cmd_debug: Set this value to 1 and you will get the debug information from the debug serial. rockchip,on-cmdsXX: the information of each instruction. rockchip,cmd_type:the mode for data transfer. PDT mode or HSDT mode. rockchip,dsi_id:The DSI interface for instructions transfer. If this value is set to 0 means using the DSI0(it’s the left side of the display while dual lane MIPI display ) for instruction transfer.If this value is set to1 means using the DSI1(it’s the right side of the display while dual lane MIPI display ) for instruction transfer. This value is set to 2 means using both the DSI0 and DSI1 for instruction transfer. rockchip,cmd:the sequence of the instructions. The first Byte is the DSI data type, the second Byte is the RGE. The rest are the instructions. rockchip,cmd_delay:the delay after sending instructions. The unit is ms. The configuration of display sequence Add the configuration of display sequence in lcd-xxx-mipi.dtsi, for example: disp_timings: display-timings { native-mode = <&timing0>; compatible = "rockchip,display-timings"; timing0: timing0 { screen-type = ; lvds-format = ; out-face = ; color-mode = ; clock-frequency = <67000000>; hactive = <768>; vactive = <1024>; hsync-len = <64>; hback-porch = <56>; hfront-porch = <60>; vsync-len = <14>; vback-porch = <30>; vfront-porch = <36>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <1>; swap-rb = <0>; swap-rg = <0>; swap-gb = <0>; }; }; Configure the time sequence in disp_timings node. screen-type: Display type. fireprime MIPI only supports single channel screen,so the display type is SCREEN_MIPI. lvds-format: Independent options. out-face: color configuration, it can be OUT-P888(24 bits), OUT_P666(18 bits)or OUT_P565(16 bits) clock-frequency: clock of the LCD, measure by Hz. As to other timing’s attribute, you can take a look at this picture. Dsihost configuration Using single MIPI, enable the dsihost0, for example: &dsihost0 { status = "okay"; };