嵌入式爱好者

查看: 28708|回复: 2

[Linux] OK_MX6X_C_V1.1 spi 模式设置遇到问题

[复制链接]

2

主题

4

帖子

26

积分

i.MX6UL通行证i.MX6Q通行证XX18通行证

扫一扫,手机访问本帖
发表于 2017-4-22 14:54:43 | 显示全部楼层 |阅读模式
本帖最后由 ele1000 于 2017-4-22 15:08 编辑

测试时自发自收可以正常工作。,模式0 和 模式1可以正常工作,
spi设置成模式3,时钟空闲时没有变成高电平。



回复

使用道具 举报

153

主题

3910

帖子

4207

积分

AM5718通行证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证TCU通行证FCU1401通行证FCU1301通行证FCU11xx通行证

发表于 2017-4-26 14:00:37 | 显示全部楼层
您好;您说的这个问题我们这边仔细测试了下,可以通过修改驱动来解决,方法如下  :修改/drivers/spi/spi_imx.c
185行左右,带+的就是另外增加的
#define SPI_IMX2_3_CONFIG_SCLKPOL(cs)        (1 << ((cs) +  4))
#define SPI_IMX2_3_CONFIG_SBBCTRL(cs)        (1 << ((cs) +  8))
#define SPI_IMX2_3_CONFIG_SSBPOL(cs)        (1 << ((cs) + 12))
+#define SPI_IMX2_3_CONFIG_SCLKCTL(cs)  (1 << ((cs) + 20))  
#define SPI_IMX2_3_INT                0x10
275行左右,-号是去掉的,+号是增加的
static int __maybe_unused spi_imx2_3_config(struct spi_imx_data *spi_imx, cfg |= SPI_IMX2_3_CONFIG_SBBCTRL(config->cs);
        if (config->mode & SPI_CPHA)
                cfg |= SPI_IMX2_3_CONFIG_SCLKPHA(config->cs);
        if (config->mode & SPI_CPOL)
-                cfg |= SPI_IMX2_3_CONFIG_SCLKPOL(config->cs);
+                cfg |= SPI_IMX2_3_CONFIG_SCLKPOL(config->cs) | SPI_IMX2_3_CONFIG_SCLKCTL(config->cs);
        if (config->mode & SPI_CS_HIGH) cfg |= SPI_IMX2_3_CONFIG_SSBPOL(config->cs);
有问题可以直接给我们发邮件或者拨打技术支持电话。
技术支持电话:0312-3119192
技术支持邮箱:Linux@forlinx.com
点评回复 支持 反对

使用道具 举报

2

主题

4

帖子

26

积分

i.MX6UL通行证i.MX6Q通行证XX18通行证

 楼主| 发表于 2017-5-9 12:24:38 | 显示全部楼层
谢谢熊猫大哥 飞凌-unix
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 10:32

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表