i.MX6 에서 EMI Interface 를 설정하기 위해서 커널 3.0.35 버젼에서는 소스 코드에서 직접 설정을 합니다.

하지만 커널 3.10.17버전에서는 DTB 를 통해서 설정이 가능하게 되었습니다.


arch/arm/boot/dts/imx6qdl-xxx.dtsi 에 다음의 내용들을 시스템에 맞게 수정하시면 됩니다.


&weim {

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_weim_nor_1 &pinctrl_weim_cs0_1>;

    #address-cells = <2>;

    #size-cells = <1>;

    ranges = <0 0 0x08000000 0x08000000>;

    status = "disabled"; /* pin conflict with ecspi1, i2c3 and uart3 */


    nor@0,0 {

        compatible = "cfi-flash";

        reg = <0 0 0x02000000>;

        #address-cells = <1>;

        #size-cells = <1>;

        bank-width = <2>;

        fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000

                0x0000c000 0x1404a38e 0x00000000>;

    }; 

};



nor@0,0  부분이 EIM Interface가 연결된 장치의 설정입니다.
여기서 fsl,weim-cs-timing 부분이  CS의 타이밍을 설정하는 부분입니다.

위와 같이 설정하였다면 커널 옵션에서 다음을 활성화 합니다.

Device Drivers  ---> 
 
       Bus devices  --->

              [*] Freescale EIM DRIVER