On Thu, Aug 25, 2011 at 08:12:10AM -0700, David Brown wrote: > On Thu, Aug 25, 2011 at 12:12:59PM +0200, Linus Walleij wrote: > > > mach-msm: > > ---------------- > > > > Hard to tell how this works and what's available, support > > seems to be incomplete. Currently it seems to be wired > > to do either a dedicated function (like some UART pin) > > or GPIO, like each pin can be used for two specific > > things, and not phone-exchange type. > > There are some pins on MSMs that can be connected to different hw > blocks, we just haven't gotten the support into the kernel yet. > > There are some things where two devices share pins, and you have to > choose one or the other. > > I believe there are also configurations where something such as the SD > controller can either be configured in 8-bit data mode, or in 4-bit > data mode, and those 4 pins connected to something else. > > Much of the current pin configuration in our product kernel seems to > be about current and pull up/down configuration. > > I've added Rohit Vaswani, and Greg Bean to this thread who should have > a bit better understanding of this.
The MSM pinmux system allows every pin to be independently controlled in the following ways: - function selection: Every pin can be in GPIO mode, or connected to a specific piece of hardware. The number of choices varies by pin - some pins have only two choices, some have eight. When a pin is not in GPIO mode, it loses some configurability - for instance, its direction can no longer be set, as that's predetermined by the function selection. Pins can belong to many groups which overlap in all kinds of interesting ways - a pin may be part of this four-bit bus, or that eight-bit bus, or might stand alone for two settings... - drive strength: Each pin can be set to have a different drive strength between 2MA and 16MA, in 2MA steps. - pull settings: Each pin can be configured with a variety of pull settings: up, down, keeper, no pull. Additionally, there are complexities involving delivering interrupts from GPIOs: - 'direct-connect' or 'summary' interrupts: pins which are being used as interrupt inputs can be 'summarized' through a single interrupt (requiring an additional pile of register reads to figure out which gpio triggered the interrupt) or as a 'direct-connect' interrupt. There are very few direct-connect lines available, so most gpio interrupts are summarized. - processor interrupt assignment: Each pin can be assigned to deliver interrupts to a different processor on the board. This pin might be assigned to the MSM, that pin might go to the DSP, the next might go to the modem, and so on... -- Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev