Pour mettre à jour votre fichier .dts (comprenant le fichier am335x-bone-common.dtsi) pour une affectation pinmux, consultez la fiche technique afin de déterminer la ou les broches affectées à une fonction. Ceci est dans la section 4.3 (divisée en sous-sections par module). En cliquant sur le lien hypertexte pour obtenir une broche (vérifiez le type de votre colis, ZCE BALL ou ZCZ BALL), vous accédez à l'entrée correspondante du tableau 4-1 (Caractéristiques de la balle). Utilisez le tableau 4-1 pour déterminer le mode correct à définir pour cette broche.
Consultez ensuite le manuel TRM, Tableau 9-7 (REGISTRES CONTROL_MODULE), à la page 1363 pour la rév. K. Le tableau répertorie les registres de la fonction par défaut (mode probable 0). Les registres pin-mux commencent à l'offset 0x800 et cet offset doit être soustrait pour donner la première valeur du fichier .dts. Consultez la section 9.2.2 (Registres de contrôle de pad) pour connaître les options de la seconde valeur du fichier .dts (en plus du réglage de mode).
Par exemple, pour affecter la broche C18 du package ZCZ à SPI1 SCLK, cliquez sur le lien C18 dans le tableau 4-53 de la fiche technique (section 4.3.6.5). Cela vous amène à la ECAP0_IN_PWM0_OUT
broche dans le tableau 4-1. Vous voyez ici qu’une valeur de mode de 4 sera sélectionnée spi1_sclk
pour cette broche.
Ensuite, dans le TRM, le tableau 9-7 montre les conf_ecap0_in_pwm0_out
registres commencent à l'adresse 0x964. Nous devons soustraire 0x800, donc la première valeur du fichier .dts est 0x164.
Ensuite, nous voulons sélectionner le mode 4 ( MUXMODE=4
). Si nous voulons également activer un pull-up ( PULLTYPESEL=1
, PULLUDEN=0
), le champ de contrôle du pad est 0x14. L'entrée .dts serait alors:
&am33xx_pinmux {
spi1_pins_s0: spi1_pins_s0 {
pinctrl-single,pins = <
0x164 0x14 /* ecap0_in_pwm0_out.spi1_sclk */
>;
};
};
0x800
? De plus, il y a beaucoup d'adresses de registres qui sont plus basses que, par0x800
exempleCTRL_USB_CTRL0
. Qu'en est-il de ces valeurs pinctrl? Merci.