pinctrl与gpio子系统耦合出问题,芯片是v3s。
现在设备树中内容如下:
在PIO内加入:
my_btn_pins:my_btn_pins_{
pins = "PB0";
function = "gpio_in";
};
在根节点内加入:
myBtn{
compatible = "my_led_pb0";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&my_btn_pins>;
mybtn-gpios = <&pio 1 0 GPIO_ACTIVE_HIGH>;
};
我的platform里的probe通过以下代码获取引脚:
gDesc = gpiod_get(&pdev->dev, "mybtn", GPIOD_IN);
gpiod_get_value(gDesc);
出现错误:
错误是重复申请同一个引脚。这是pinctrl与gpio起冲突了?
如果在上面的基础上去掉pinctrl-names pinctrl-0的话,没有错误。但是逻辑就不对了。因为这是个输入引脚,需要内部上拉才能使用。要是去掉mybtn-gpios的话,驱动里就没有操作该gpio的接口了,还是不行。
求助诸位大神提点一二。