打印

OK335xS,SPI总线连接多个SPI设备时的片选设置问题

[复制链接]
399|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
考哥|  楼主 | 2018-9-1 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ps: 技术支持区无人回答,有没有哪位大大支持一下!



我使用的是OK335xS开发板,操作系统是安卓4.2。



我的需求是:需要通过SPI总线扩展3个SPI从设备。



待解决的问题是:开发板只引出了SPI1_CS0这个片选脚,如何配置将其他GPIO配置为另外两个设备的片选脚?



我的解决思路是:

a. spi_master使用TI提供的控制器驱动:spi-omap2-mcspi.c

b. spi_driver利用linux中的spidev.c进行修改,通过ioctrl扩展自己的接口;Android APP 通过 jni 直接访问 spi_driver 接口,完成与spi_device从设备的交互。

c. 修改board-am335xevm.c,注册生成spi_device从设备及设备文件节点



我现在已完成的工作是:

(1) 在board-am335xevm.c中,定义的board_info为:

static struct spi_board_info am335x_spi1_slave_info_s[] = {

        {

                .modalias      = "spidev",

                .max_speed_hz  = 48000000,//48Mbps

                .bus_num       = 2,

                .chip_select   = 0,

                .mode = SPI_MODE_1,

        },

        {

                .modalias      = "spidev",

                .max_speed_hz  = 48000000,//48Mbps

                .bus_num       = 2,

                .chip_select   = 1,

                .mode = SPI_MODE_1,      

},

        {

                .modalias      = "spidev",

                .max_speed_hz  = 48000000,//48Mbps

                .bus_num       = 2,

                .chip_select   = 2,

                .mode = SPI_MODE_1,

         },

};



(2) 相关pin_mux定义已改为:

static struct pinmux_config spi1_pin_mux_s[] = {

        {"mii1_col.spi1_sclk", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL| AM33XX_INPUT_EN},

        {"mii1_crs.spi1_d0", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL| AM33XX_PULL_UP | AM33XX_INPUT_EN},

        {"mii1_rxerr.spi1_d1", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL| AM33XX_INPUT_EN},

// MY_nCS0  准备用作从设备1的片选

        {"rmii1_refclk.spi1_cs0", OMAP_MUX_MODE2 | AM33XX_PULL_ENBL| AM33XX_PULL_UP | AM33XX_INPUT_EN},

// MY_nCS1  准备用作从设备2的片选

        {"gpmc_wpn.gpio0_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT | AM33XX_PIN_OUTPUT_PULLUP},

// MY_nCS2  准备用作从设备3的片选

        {"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT | AM33XX_PIN_OUTPUT_PULLUP},

        {NULL, 0},

};



请问:要如何才能将 gpio0_31 和 gpio1_31 设置为 McSPI 控制器驱动 能自动识别的片选脚?

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

461

主题

477

帖子

0

粉丝