imx6ull spi驱动使能

1、首先修改dts,找到linux/arch/arm/boot/dtsimx6ull-14x14-evk.dts这里使能spi1在野火的dts里添加:

&ecspi1 {
    fsl,spi-num-chipselects = <1>;
    cs-gpios = <&gpio4 26 0>; //"cs-gpios 使用的会变成硬件自动使能,cs-gpios需要手动使能"
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_csi_ecspi1 &pinctrl_csi_ecspi1_cs0>;
    status = "okay";

    spidev0: spi@0 {
        compatible = "spidev";
        reg = <0>;
        spi-max-frequency = <60000000>;
    };
};

2、需要失能csi,因为csi和spi1共用同一种总线。然后pinctrl_csi_ecspi1,pinctrl_csi_ecspi1_cs0放入iomux

        pinctrl_csi_ecspi1: csi_ecspi1_grp {
            fsl,pins = <
                MX6UL_PAD_CSI_DATA04__ECSPI1_SCLK         0x0b0b0        /* P8:28 */
                MX6UL_PAD_CSI_DATA06__ECSPI1_MOSI         0x0b0b0        /* P8:24 */
                MX6UL_PAD_CSI_DATA07__ECSPI1_MISO         0x0b0b0        /* P8:26 */
            >;
        };
        pinctrl_csi_ecspi1_cs0: csi_ecspi1_cs0_grp {
            fsl,pins = <
                MX6UL_PAD_CSI_DATA05__GPIO4_IO26        0x0b0b0        /* P8:30 */
            >;
        };

3、make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-  进行编译新的设备树

4、下面就是驱动的编写,参考原子的代码与内核自带的代码,更改原子的驱动,不需要手动使能CS

脚,一个spi_message里包含两个spi_transfer就可以连续使能CS脚,如下图:

imx6ull spi驱动使能_第1张图片

 

 

参考链接:http://bbs.elecfans.com/jishu_1911971_1_1.html

 

你可能感兴趣的:(嵌入式)