freescale imx pin control driver,如何计算组数?

freescale imx pin control driver, how groups are calculated?

我正在尝试从 Linux 内核中理解 im.X 引脚控制器驱动程序。 http://lxr.free-electrons.com/source/drivers/pinctrl/pinctrl-imx.c?v=3.10#L513

我转储了 info->ngroups = 38 和 info->nfunctions = 2 的值,但未能理解 info->ngroups 的值是如何计算到 38 的,这是受人尊敬的 DTS 文件?

http://lxr.free-electrons.com/source/arch/arm/boot/dts/imx6q.dtsi?v=4.1#L104

那是因为您引用的 DTS 文件是 .dtsi。它不是真正的板 DTS,它(必须)包含在另一个 DTS 文件中,例如 imx6q-sbc6x.dts。在此 DTS 文件中,定义了具有更多引脚的其他功能,这就是为什么您可以拥有例如 nfunctions = 2ngroups = 38.

的原因

如果您为您的主板找到正确的 DTS 文件,这些数字应该 "align" 与您在转储中看到的相同。