int pinctrl_bind_pins(struct device *dev)
{
int ret;
if (dev->of_node_reused) 默认值为 False.
return 0;
dev->pins = devm_kzalloc(dev, sizeof(*(dev->pins)), GFP_KERNEL);
if (!dev->pins)
return -ENOMEM;
dev->pins->p = devm_pinctrl_get(dev);
if (IS_ERR(dev->pins->p)) {
dev_dbg(dev, "no pinctrl handle\n");
ret = PTR_ERR(dev->pins->p);
goto cleanup_alloc;
}
dev->pins->default_state = pinctrl_lookup_state(dev->pins->p,
PINCTRL_STATE_DEFAULT);
if (IS_ERR(dev->pins->default_state)) {
dev_dbg(dev, "no default pinctrl state\n");
ret = 0;
goto cleanup_get;
}
论gpio --- Linux kernel 实现欣赏
最新推荐文章于 2024-06-28 21:11:52 发布
该代码段主要描述了在Linux设备驱动中,如何绑定pinctrl到设备并获取默认状态的过程。首先检查设备的of_node_reused属性,然后分配内存存储pins信息,接着获取pinctrl句柄,如果失败则进行清理。最后查找默认的pinctrl状态,即使找不到也返回成功。

2734

被折叠的 条评论
为什么被折叠?



