[英]Device tree and GPIO
我正在尝试在内核驱动程序中连接GPIO控制器,但不确定我是否做对了所有事情。
这是我的设备树代码:
gpio_screen1:gpio1@20 {
compatible = "nxp,pca9535";
gpio-controller;
#gpio-cells = <2>;
reg = <0x20>;
// pinctrl-names = "default";
// pinctrl-0 = <&pinctrl_pca9505>;
};
screen: screen@0x02000 {
compatible = "myscreen,myscreen";
#address-cells = <1>;
#size-cells = <0>;
reg = < 0x04000 0xF00 >;
interrupts = <1 2>;
reset-gpios = <&gpio_screen1 15 0>;
sleep-gpios = <&gpio_screen1 14 0>;
clk_sel1-gpios = <&gpio_screen1 10 0>;
lane_sel-gpios = <&gpio_screen1 9 0>;
};
这是我注册GPIO的驱动程序代码
gpio = of_get_named_gpio(pdev->dev.of_node, "reset-gpios", 0);
if (!gpio_is_valid(gpio)) {
dev_err(&pdev->dev, "failed to parse reset gpio\n");
return gpio;
}
dev->reset = gpio;
这种初始化正确吗?
我一直在寻找该GPIO控制器的文档,但是它并不是很有帮助。
我没有在驱动程序方面看到gpio初始化有什么问题。 这很简单。 下一步是请求初始化的gpio:
ret = devm_gpio_request_one(&pdev->dev, dev->reset, GPIOF_OUT_INIT_HIGH, "gpio-reset");
if (ret) {
dev_err(&pdev->dev, "failed to request gpio %d: %d\n", dev->reset, ret);
return -EINVAL;
}
据我了解,关于此处的devicetree部分,您是基于gpio-pcf857x.txt或类似的东西完成的。 您不对这些gpios使用中断吗?
还有一个主要问题,行得通吗? ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.