The phyCORE-i.MX7 development kit can be configured to support the MIPI-DSI specification for interfacing Touch Displays at the X17 connector on the Carrier Board. Access to the MIPI display serial interface can be made available through the use of the MIPI Expansion Module (PEB-AV-06) in conjunction with a modification to the default device tree. 

Requirements 

Step-by-Step Guide

The necessary driver for the PEB-AV-06 MIPI Expansion Module is disabled in the default device tree for all BSPs following PD18.2.0. In order to enable support for this device we will need to specify the use of the modified device tree pre-included with your BSP PD19.1.0 image.

See the end of this guide for details regarding the modifications made to the device tree source to enable the MIPI display. 

  • Reboot your phyCORE-i.MX7 and press any key during boot to stop in U-Boot.
  • Use the following commands to specify the modified device tree before booting into Linux: 

    Target (U-Boot)

    setenv fdt_file imx7d-phyboard-zeta-004-mipi.dtb
    saveenv
    boot
    CODE

Setting up the Display

  • First power off the development kit and remove the the power supply using the following command BEFORE connecting your camera and MIPI Expansion Module: 

    Target (Linux)

    poweroff
    CODE

    Connecting Hardware 

  • With the phyBOARD-i.MX7 flipped upside down, connect the MIPI Expansion Module to the MIPI DSI/CSI connector X17 on the underside of the Carrier Board.
  • Connect the display to the connector labeled "DISPLAY" on the MIPI Expansion Module. The display ribbon should point towards the center of the phyBOARD so that when flipped over, the display and phyBOARD are both right side up.

Orientation of Display cable to MIPI Expansion Module

Setup


 There is nothing stopping you from connecting the display in the wrong orientation. Doing so will fry the display!

  • Now flip the entire assembly over with the display off to the side.

Firing up the Display

  • Boot the phyCORE-i.MX7 into Linux from SD Card
  • During boot up you should see Tux the Penguin appear on the screen before being presented with a simple GUI.

To revert back to the original device tree:

  • Reboot your Development Kit and stop when prompted in U-Boot: 

    Target (Linux)

    reboot
    CODE
  • Enter the following to revert back to the default device tree, save the environment, and then initiate a reboot: 

    Target (U-Boot)

    env default -f -a
    saveenv
    boot
    CODE

Enabling the MIPI Display in the Device Tree

This section is for advanced users hoping to learn more about customizing the Kernel. You will likely want to skip this section if you are just working through the guides to validate your hardware.


Note: The standard BSP includes a device tree with this change made for you already so you shouldn't ever have to follow the steps below. These steps were mostly included for educational purposes.

In order to enable the MIPI display on your own you will first have to build the BSP by following the BSP Development Guide. Once done, we can modify the device tree source and then recompile just the Kernel (this will take far less time then building the entire BSP). 

  • After building the BSP, open the imx7d-phyboard-zeta-004.dts using the Vim Text Editor:   

    Host (Ubuntu)

    vim $YOCTO_DIR/build/tmp/work/imx7d_phyboard_zeta_004-poky-linux-gnueabi/linux-phytec-fsl/4.14.78+git_v4.14.78-phy2-r0/git/arch/arm/boot/dts/imx7d-phyboard-zeta-004.dts
    CODE
  • Using the arrow keys to navigate, replace the line enabling the PEB-AV-02 Parallel Display Adapter with the source file for the PEB-AV-06 MIPI Display. Note that doing this will render the PEB-AV-02 Parallel Display incompatible with the phyCORE-i.MX7. The resulting file after the change is shown below (an arrow was included to show the line that needs to be changed, don't include this arrow in the actual file).

    Vim Text Editor: imx7d-phyboard-zeta-004.dts

    /*
     * Copyright (C) 2015 PHYTEC America, LLC
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     *
     *
     * DTS for PHYTEC kit KPB-01910-004
     */
    /dts-v1/;
     
    #include "imx7d.dtsi"                   /* Dual Processor */
    #include "imx7-phycore-som.dtsi"        /* Superset - includes all SOM population options */
    #include "imx7d-pba-c-09.dtsi"          /* Carrier board */
    #include "imx7-peb-av-06.dtsi"          /* MIPI DSI and CSI adapter */                                <--------------this line was changed
    #include "imx7-peb-d-rpi.dtsi"          /* PEB-D-RPI module */
     
    #include "imx7d-pcm-061-2110111c.dtsi"  /* SOM variant */
    CODE

    The vi text editor begins in "Command Mode" and you must first hit the 'i' key in order to enter "Insert Mode". Using the arrow keys to navigate, make the necessary changes and then hit ESC to go back to "Command mode". Now enter ":wq" to write the file and quit.


    Pro Tip: Use the right click on your mouse to paste. This will only work if you are in "Insert Mode" first.

  • Once the file is saved and closed, recompile just the Kernel by using the following build-time optimization:  

    bitbake linux-phytec-fsl -f -c compile && bitbake linux-phytec-fsl
    CODE
  • The changes will be reflected in the generated binary $YOCTO_DIR/build/tmp/deploy/images/imx7d-phyboard-zeta-004/imx7d-phyboard-zeta-004.dtb which can be moved to the Boot partition of your SD Card.