2017-04-27 2 views
0

J'essaie de comprendre le pilote de contrôleur de broche im.X à partir de Linux Kernel. http://lxr.free-electrons.com/source/drivers/pinctrl/pinctrl-imx.c?v=3.10#L513Freecale pilote de contrôle de broches imx, comment les groupes sont calculés?

I vider les valeurs de info-> ngroups = 38 et info-> nfunctions = 2, mais n'a pas réussi à comprendre comment la valeur de info-> NGROUPS été calculée à 38, ce sont les fichiers DTS respectés?

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

Répondre

1

C'est parce que le fichier DTS que vous faites référence est un .dtsi. Ce n'est pas une vraie carte DTS et elle est (doit être) incluse par un autre fichier DTS, par exemple imx6q-sbc6x.dts. Dans ce fichier DTS, d'autres fonctions avec d'autres broches sont définies et c'est pourquoi vous pouvez avoir, par exemple, nfunctions = 2 et ngroups = 38.

Si vous trouvez le fichier DTS correct pour votre carte, ces numéros doivent "s'aligner" avec ce que vous voyez dans votre image.

+0

Merci pour la réponse, ce que vous avez dit me semble logique. imx6q-nitrogen6x.dts est le fichier de la carte réelle qui comprend imx6q.dtsi et imx6qdl-nitrogen6x.dtsi mais ne peut toujours pas comprendre comment il compte à 38 ici et seulement 2 fonctions? – Milan

+0

Eh bien les 2 fonctions sont les 2 enfants du noeud 'iomuxc @ 020e0000', à savoir' ipu2' de [imx6q.dtsi] (http://lxr.free-electrons.com/source/arch/arm/boot/dts /imx6q.dtsi? v = 4,1) et 'imx6q-nitrogen6x' de [imx6qdl-nitrogen6x.dtsi] (http://lxr.free-electrons.com/source/arch/arm/boot/dts/imx6qdl-nitrogen6x. dtsi? v = 4,1). Les 38 groupes sont alors tous les enfants "groupe" de ces 2 nœuds, comme par exemple 'ipu2grp-1' ou' enetgrp'. – Longfield