gpio驱动添加属性文件,用于改变或查看gpio的电平

ssize_t para_show(struct device *dev, struct device_attribute *attr, char *buf)
{
	int value;
	//不能通过dev成员of_node访问dev对应gpio节点的编号,只能在dev的结构体中添加gpio成员
	value = gpio_get_value(dev->gpio);
	printk(KERN_EMERG "%d\n",value);
        
    return 1;
}

ssize_t para_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
	if(buf[0] == '0'){
		//不能通过dev成员of_node访问dev对应gpio节点的编号,只能在dev的结构体中添加gpio成员
		gpio_set_value(dev->gpio, 0);
	}else if(buf[0] == '1'){
		gpio_set_value(dev->gpio, 1);
	}else{

	}

    return 1;
}

static DEVICE_ATTR(para, 0664, para_show, para_store);

还有在probe函数中添加

device_create_file(gpio_kuka[num].device, &dev_attr_para);

最后生成para属性文件,可以用echo和cat命令操作

echo 0 > /sys/class/gpio_3_D6/gpio_3_D6/para
echo 1 > /sys/class/gpio_3_D6/gpio_3_D6/para

cat /sys/class/gpio_3_D6/gpio_3_D6/para
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值