加载中…
个人资料
从入门到放弃
从入门到放弃
  • 博客等级:
  • 博客积分:0
  • 博客访问:493,900
  • 关注人气:57
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

IMX6Q之SPI驱动调试

(2017-03-17 14:46:43)
标签:

imx6q

spi

分类: Linux
认真读此讨论,你能获得很多信息。
https://community.nxp.com/thread/317999

1. 需要设置设备树

2. 需要make menuconfig里面开启SPIDEV选项

3. 我用的3.14.28不需要在程序里改了,直接改设备树即可。

4. 从上面链接的讨论里,可以看到多个设备可以共用一个SPI,但使用不同的片选脚

5. 引脚寄存器定义可以在官网提供的PIN MUX工具获得,我用的是:Pins_Tool_for_i.MX_Processors_v2_x64_offline_b161010.exe

6. 测试使用linux/Document/spi下面的spidev_test.c测试程序,将MISO和MOSI短接即可;

7. 按照下面的方法编辑DTS,已经验证可用。


未整理,下面是摘录的一下DTS配置:

&ecspi2 {

 

  fsl,spi-num-chipselects = <</span>2>;

  cs-gpios = <</span>0>,<&gpio3 31 0>;

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_ecspi2_1>;

  status = "okay";

   spidev@0x00 {

   compatible = "spidev";

   spi-max-frequency = <</span>20000000>;

   reg = <</span>0>;

   };

   spidev@0x01 {

   compatible = "spidev";

   spi-max-frequency = <</span>20000000>;

   reg = <</span>1>;

   };

};

 

&iomuxc {

...

...

   ecspi2 {

   pinctrl_ecspi2_1: ecspi2grp-1 {

   fsl,pins = <</span>

   MX6SL_PAD_ECSPI2_MISO__ECSPI2_MISO 0x100b1

   MX6SL_PAD_ECSPI2_MOSI__ECSPI2_MOSI 0x100b1

   MX6SL_PAD_ECSPI2_SCLK__ECSPI2_SCLK 0x100b1

   MX6SL_PAD_ECSPI2_SS0__ECSPI2_SS0 0x100b1

   MX6SL_PAD_KEY_ROW3__GPIO3_IO31 0x100b1

   >;

   };

   };


Thanks for your response.

I managed to enable 2 chip selects on one SPI bus.

But when I add another SPI bus, then it won't show up in my /dev.

 

&ecspi1 {

  fsl,spi-num-chipselects = <2>;

  cs-gpios = <&gpio4 9 0>, <&gpio5 9 0>;

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_ecspi1_2>;

  status = "okay";

        chip1: spidev@0 {

               compatible = "spidev";

               spi-max-frequency = <20000000>;

               reg = <0>;

        };

 

 

        chip2: spidev@1 {

               compatible = "spidev";

               spi-max-frequency = <20000000>;

               reg = <1>;

        };

};

 

&ecspi3 {

  fsl,spi-num-chipselects = <1>;

  cs-gpios = <&gpio4 24 0>;

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_ecspi3_1>;

  status = "okay";

 

        chip3: spidev@0 {

               compatible = "spidev";

               spi-max-frequency = <20000000>;

               reg = <0>;

        };

};

 

 

All I see in my /dev are from ecspi1.


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有