linux-问题集(2、spi)

在《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf》的SPI驱动部分,作者发现了一个问题:62.5.2章节的代码缺少了对SPI片选引脚的操作。文章详细介绍了如何在初始化和读写过程中正确获取和释放片选引脚,以确保驱动的正常工作。通过添加获取GPIO属性、设置GPIO为输出并验证效果的步骤,问题得到了解决。
摘要由CSDN通过智能技术生成

文章目录


前言

@和原子哥一起学习Linux

开发环境:I.MX6Ull开发板
参考内容:正点原子的驱动开发教程,并完成linux移植部分(或使用出厂版),使用自己移植的代码。

参考书籍:《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf》

发现的问题

《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf》的62.5.2的spi驱动中,缺少了对spi片选引脚的操作
1、在初始化中,获取片选脚

	int ret;
	/* 获取设备树中cs片选信号 */
	chr_dev_t.nd = of_find_node_by_path("/soc/aips-bus@02000000/spba-bus@02000000/ecspi@02010000");
	if(chr_dev_t.nd == NULL) {
		printk("ecspi3 node not find!\r\n");
		return -EINVAL;
	} 

	/* 2、 获取设备树中的gpio属性 */
	chr_dev_t.cs_gpio = of_get_named_gpio(chr_dev_t.nd, "cs-gpio", 0);
	if(chr_dev_t.cs_gpio < 0) {
		printk("can't get cs-gpio");
		return -EINVAL;
	}

	/* 3、设置GPIO为输出,并且输出高电平 */
	ret = gpio_direction_output(chr_dev_t.cs_gpio, 1);
	if(ret < 0) {
		printk("can't set gpio!\r\n");
	}

2、在读取和写入时获取和释放片选

gpio_set_value(dev->cs_gpio, 0);
。。。
gpio_set_value(dev->cs_gpio, 1);

效果验证:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值