struct-dev-debug

最近调试pinctrl时需要打印全部的state

可以通过struct dev查看 pinctrl client的相关信息,因为pinctrl client是通过设备树配置的,通过probe会构造struct dev

在设备树中,pinctrl client 设备节点会包含 pinctrl-namespinctrl-0 等属性,用于描述引脚配置

可以使用 dev_dbg()dev_info() 等宏来打印这个 struct device *dev 的调试信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct pinctrl_state *state;
struct pinctrl_desc *desc;
struct device *dev;
struct pinctrl *p;

dev = pctldev->dev;
desc = pctldev->desc;
p = pctldev->p;

printk(KERN_ERR"[%s][%d]Device name: %s\n", __func__, __LINE__, dev_name(dev));
printk(KERN_ERR"[%s][%d]Device type: %s\n", __func__, __LINE__, dev->type ? dev->type->name : "unknown");
printk(KERN_ERR"[%s][%d]Device driver: %s\n", __func__, __LINE__, dev->driver ? dev->driver->name : "unknown");
printk(KERN_ERR"[%s][%d]desc->name %s\n", __func__, __LINE__, desc->name);
list_for_each_entry(state, &p->states, node) {
printk(KERN_ERR"[%s][%d] state->name %s\n", __func__, __LINE__, state->name);
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 yengii@qq.com