我先 echo 443 > /sys/class/gpio/export 之后再# echo 444 > /sys/class/gpio/export, 现在就有了;
這個操作聽起來不合理. 我覺得你還是reset一下再重新測一次吧…
我先 echo 443 > /sys/class/gpio/export 之后再# echo 444 > /sys/class/gpio/export, 现在就有了;
這個操作聽起來不合理. 我覺得你還是reset一下再重新測一次吧…
基本上現在有幾件事情要先確認
你前面的狀況到底在討論你的driver還是在討論sysfs?
核心讨论问题是:如果驱动中可以使用寄存器的方式,那么为何我的代码不工作,是那里错了吗; 如果驱动必须用设备树的方式,那么怎么把我的驱动和设备树绑定在一起,实现功能。其余的都是次要问题
我建議一下請你可不可以把你完整的dts貼上來? 我知道分享整份檔案有點麻煩, 但你這種截圖分享的方法說實話我真的不知道你在改哪個檔案
另外
你討論的核心問題說實話不是太重要 你現在想討論你的code是不是有問題, 我說實話這不是我關心的
請你就用最簡單的方法, 比方說devmem tool去改你想改的那個register. 在這個狀況下你到底能不能看到這根PP.04 pin的gpio出現你要的值
如果連devmem這種公用tool跑出來的結果都不是你要的, 那根本不用討論你的code.
GPIO不需要一定跟device tree綁定在一起… 但是你的pinmux spreadsheet有些內容可能會影響… 比方說你上面截圖寫INT PD, 代表你設定成internal pull down.
tegra234-p3701-0000-plugin-manager.txt (4.1 KB)
我找不到在那里添加自定义节点比较合适,于是我就找了个比较干净的文件在其内部添加,其余的dts和dtsi都保持不变;
基于你的建议2 问个问题,比如下载下来的pinmux spreadsheet中pp4默认是input模式,但我实际的板子需要out功能,那我需要在pinmux spreadsheet中更改吗? 还是说不需要更改直接在设备树中添加一个pp4_out的节点即可?
现在PP.04 pin 用 devmem這種公用tool 可以实现0/1输出了。我也不想研究为何以前就不行了。
最后就是即使用tool 可以实现0/1输出,那么驱动中应该是用api去控制把,这些api那里有?
Hi,
我直接講明白一點, 我們不會幫你的driver去debug.
但是我可以給你API範例然後請你參考範例.
kernel/kernel-5.10/drivers/gpio/gpiolib-sysfs.c
但是這個範例本身就是gpio sysfs的driver. 所以請你先回答我們,到底你的gpio sysfs在這根pin上能不能正常運作?
不然我給你這driver code也沒有用
這根pin上能正常運作
你那個pinctrl_gpio_led1是pinmux設定, 這東西只能寫在mb1 bct dtsi裡面, 跟kernel dts是不同的東西. 這寫在kernel dts會沒有用
gpio_for_led 那的是給你的kernel driver用的, 這東西只能寫在kernel dts.
mb1 bct dtsi 具体的名称是什么?
kernel dts 具体的名称是什么?
那比如我就使用pp4, 给在那些文件中加入什么内容,
跪求明示啊,给个demo。
你把我说模糊了,那意思这里加都是无效的内容?
你说的mb1 bct dtsi其实就是pinmux电子表个生成的dtsi文件把,所以29行应该是 <&soc_gpio23_pp4>;即可;32行到40行的内容删除。
修改完之后 那我应该使 用分割线上面的形式还是下面的形式?
就是该不该有 pinctrl-name 和 pinctrl-0 属性
hello , i am waiting online , give me a response
那我现在是 写在 kernel dts. 里了吗?
我理解的kernal dts 应该是 tegra234-p3701-0005-p3737-0000.dts 文件 及其 include 近来的所有dts和dtsi文件,应该都是你所说的 kernal dts 把
Pinmux spreadsheet 建出來的檔案應該要放在Linux_for_Tegra/bootloader/t186ref/BCT底下
至於到底是要哪個檔案可以從你的flash log看出來. 這些檔案最後都是dtsi結尾, 你不用做build dtb的動作
你現在改的應該是kernel dts沒錯, 這最後會被build成kernel放進Linux_for_Tegra/kernel/dtb