pwdn-gpios = <&gpio1 23 1>;驱动里sc3336->pwdn_gpio = devm_gpiod_get(dev, "pwdn", GPIOD_ASIS);读的pwdn是这个引脚吗?
luckfox pico plus开发板 驱动pwdn-gpio疑问
sc3336->pwdn_gpio = devm_gpiod_get(dev, "pwdn", GPIOD_ASIS);读的是设备树中的pwdn-gpios = <&gpio1 23 1>;引脚?
把 sc3336 整个节点先关闭了,用sysfs先去测试能不能正常拉高拉低,如果可以就说明没有被其他驱动占用;
或者执行
查看gpio的占用情况后使用
查看引脚复用情况,确定都没问题就根据源码排查问题了。
还有我建议调试驱动还是得先确保设备在硬件上连接没有问题,防止错过什么通信导致哪个关键的检测失败,同时还有一个潜在的风险就是gpio1_PC7 是 3.3V 而默认是1.8V输出有烧坏摄像头的风险
或者执行
Code: Select all
mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/gpio
Code: Select all
iomux 1 23 #预期返回0
还有我建议调试驱动还是得先确保设备在硬件上连接没有问题,防止错过什么通信导致哪个关键的检测失败,同时还有一个潜在的风险就是gpio1_PC7 是 3.3V 而默认是1.8V输出有烧坏摄像头的风险
log如下,可以使用命令让Crocodile wrote: ↑2024-09-09 8:54 把 sc3336 整个节点先关闭了,用sysfs先去测试能不能正常拉高拉低,如果可以就说明没有被其他驱动占用;
或者执行查看gpio的占用情况后使用Code: Select all
mount -t debugfs none /sys/kernel/debug cat /sys/kernel/debug/gpio
查看引脚复用情况,确定都没问题就根据源码排查问题了。Code: Select all
iomux 1 23 #预期返回0
还有我建议调试驱动还是得先确保设备在硬件上连接没有问题,防止错过什么通信导致哪个关键的检测失败,同时还有一个潜在的风险就是gpio1_PC7 是 3.3V 而默认是1.8V输出有烧坏摄像头的风险
[root@luckfox root]# mount -t debugfs none /sys/kernel/debug
[root@luckfox root]# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-31, parent: platform/ff380000.gpio, gpio0:
gpiochip1: GPIOs 32-63, parent: platform/ff530000.gpio, gpio1:
gpio-33 ( |pa-ctl ) out lo
gpio-55 ( |pwdn ) in lo ACTIVE LOW
gpiochip2: GPIOs 96-127, parent: platform/ff550000.gpio, gpio3:
gpio-118 ( |work ) out lo
gpiochip3: GPIOs 128-151, parent: platform/ff560000.gpio, gpio4:
[root@luckfox root]# iomux 1 23
mux get (GPIO1-23) = 0
应该如何使用sysfs去拉高gpio1_c7_d0,
这个是我参考文档输入的命令,但是报错了
echo 55 > /sys/class/gpio/export
sh: write error: Device or resource busy
显示了gpio-55 ( |pwdn ) in lo ACTIVE LOW就是被驱动占用了
iomux 是查看复用功能的不是查看电平的
原因需要您自己去找了,我并不知道您做了哪些调整,也有可能有些调整您没有注意到;驱动经过验证是没有问题的,您自己想要对其做调整和实验需要确保您对驱动已经有了足够的了解,我只能根据想象给予推测能提供的帮助有限。