pinctrl-names = "default"在驱动代码中怎么调用的
时间: 2024-03-06 16:50:48 浏览: 127
在驱动代码中,可以通过以下方式调用 "pinctrl-names = "default"" 配置:
1. 首先在设备树绑定驱动时,需要在 `struct of_device_id` 结构体中指定该驱动支持的设备树节点的 compatible 属性,例如:
```
static const struct of_device_id my_driver_dt_ids[] = {
{ .compatible = "my,device-name" },
{ /* sentinel */ },
};
MODULE_DEVICE_TABLE(of, my_driver_dt_ids);
```
2. 在驱动的 probe 函数中,可以使用 `devm_pinctrl_get()` 函数来获取设备的 pin control 配置,例如:
```
static int my_driver_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct pinctrl *pinctrl;
int ret;
pinctrl = devm_pinctrl_get(dev);
if (IS_ERR(pinctrl)) {
dev_err(dev, "Failed to get pinctrl\n");
return PTR_ERR(pinctrl);
}
ret = pinctrl_select_state(pinctrl, "default");
if (ret < 0) {
dev_err(dev, "Failed to select default pinctrl state\n");
return ret;
}
/* ... */
}
```
在上述代码中,`devm_pinctrl_get()` 函数用来获取设备的 pin control 句柄,`pinctrl_select_state()` 函数用来选择 pin control 配置。在 `pinctrl_select_state()` 函数中传入 "default" 参数即可选择 "pinctrl-names = "default"" 配置。
阅读全文