关于linux 系统驱动leds-gpio的疑惑

鲍羊羊 2019-10-29 10:05:31
各位大神好:
我刚接触linux系统,对于基于设备树的驱动有几点疑惑,请各位帮忙解答下.我这几天在看linux的leds-gpio.c的那个驱动文件.但是相比于platform平台总线驱动,我对这个基于设备树的leds-gpio.c驱动以下几点不明白:
1.leds-gpio.c需要填写file_operations么?我没有找到填写file_operations地方.
2.应用程序层怎么通过 read,write函数与这个LED驱动交互?
不用echo 0 > /sys/bus/platform/devices/leds-gpio/leds/green/brightness
echo 0 > /sys/bus/platform/devices/leds-gpio/leds/red/brightness
echo 1 > /sys/bus/platform/devices/leds-gpio/leds/green/brightness
echo 1 > /sys/bus/platform/devices/leds-gpio/leds/red/brightness 这些方法.
3.为什么有的外设的访问是用设备节点例如/dev/ttySX,而有的外设则需要访问/sys/class/leds/user-ledX ,有什么区别?
...全文
505 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TOLA-- 2021-04-12
  • 打赏
  • 举报
回复
我想问一下,如果用leds-gpio.c这个驱动的话,为什么设备树里没有用到pinctrl子系统,那么所选的GPIO是在什么地方配置复用功能和电气属性的
glen30 2020-11-26
  • 打赏
  • 举报
回复 2
为什么有的外设的访问是用设备节点例如/dev/ttySX,而有的外设则需要访问/sys/class/leds/user-ledX

在驱动程序里面注册了/dev目录下的文件,实现了file_operations里面的接口,就可以使用/dev目录下的设备节点文件,一般驱动都是这样操作的
比较特殊的是网络驱动,块设备驱动在/dev目录下是有设备节点的
还有一类特别简单的,没有实现file_operations里面的接口,而是直接用sys接口,在sys文件系统下注册了,直接通过sys文件系统就可以访问,这样其实更简单好用
glen30 2020-11-26
  • 打赏
  • 举报
回复
leds-gpio.c里面没有file_operations,是因为gpio驱动没有使用文件系统接口,即没有在/dev目录下创建文件,而是使用sys接口,所以可以使用echo 1 > /sys/bus/platform/devices/leds-gpio/leds/green/brightness来访问。
应用程序层怎么通过 read,write函数与这个LED驱动交互:在/dev目录下注册文件,添加file_operations,实现读写接口,应用程序就可以调用read、write接口函数了
jzen 2020-11-26
  • 打赏
  • 举报
回复
我也想问,有答案了吗
鲍羊羊 2019-10-31
  • 打赏
  • 举报
回复

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧