Mainline:Broadcom Kona/Pin control (PADCTRL): Difference between revisions

Created page with "The pin controller in the BCM21664/BCM23550 appears to be ''somewhat'' similar to BCM28155, judging by the mainline driver. * BCM21664 has '''155''' pins; each pin can also have '''6''' functions. * BCM28155 has '''268''' pins; each pin can also have '''4''' functions. The downstream pinmux driver is located at <code>arch/arm/plat-kona/pinmux.c</code>, with per-platform settings defined in <code>arch/arm/mach-{codename}/{codename}_pinmux.c</code>. These files also cont..."
 
No edit summary
Line 4: Line 4:
* BCM28155 has '''268''' pins; each pin can also have '''4''' functions.
* BCM28155 has '''268''' pins; each pin can also have '''4''' functions.


The downstream pinmux driver is located at <code>arch/arm/plat-kona/pinmux.c</code>, with per-platform settings defined in <code>arch/arm/mach-{codename}/{codename}_pinmux.c</code>. These files also contain the init function <code>pinmux_chip_init()</code>, which on Java and Hawaii does two things: * unlocks the pinmux * allocates the memory for the pinmux driver to use
The downstream pinmux driver is located at <code>arch/arm/plat-kona/pinmux.c</code>, with per-platform settings defined in <code>arch/arm/mach-{codename}/{codename}_pinmux.c</code>. These files also contain the init function <code>pinmux_chip_init()</code>, which on Java and Hawaii does two things:
 
* unlocks the pinmux
* allocates the memory for the pinmux driver to use


The pin controller/pinmux API, as well as a general explaination of how a pin controller works, can be found in the kernel documentation here: https://www.kernel.org/doc/html/latest/driver-api/pin-control.html (ah, if every component had a piece of docs like this...)
The pin controller/pinmux API, as well as a general explaination of how a pin controller works, can be found in the kernel documentation here: https://www.kernel.org/doc/html/latest/driver-api/pin-control.html (ah, if every component had a piece of docs like this...)