[U-Boot] [PATCH] Davinci: add a pin multiplexer configuration API
Kim Phillips
kim.phillips at freescale.com
Fri Oct 30 00:23:04 CET 2009
On Thu, 29 Oct 2009 15:38:18 +0000
Nick Thompson <nick.thompson at gefanuc.com> wrote:
> +int davinci_configure_pin_mux(const struct pinmux_config *pins, int n_pins)
> +{
> + int i;
> +
> + for (i = 0; i < n_pins; i++) {
> + int value = pins[i].value;
> + int field = pins[i].field;
> +
> + if (field < PIN_MUX_NUM_FIELDS &&
> + (value & ~PIN_MUX_FIELD_MASK) == 0) {
the second line should not be indented as though it is the code
subblock; it should fall directly underneath the column where 'field
<..' starts, like this:
if (field < PIN_MUX_NUM_FIELDS &&
(value & ~PIN_MUX_FIELD_MASK) == 0) {
> + int offset = field * PIN_MUX_FIELD_SIZE;
> + unsigned int mux = pins[i].mux;
> + unsigned int mask = PIN_MUX_FIELD_MASK << offset;
also please just declare everything at the top of the function - same
for value and field declarations above.
> + value <<= offset;
> + writel(value | (readl(mux) & (~mask)), mux);
I guess arm doesn't have setbits32 and friends, huh.
Kim
More information about the U-Boot
mailing list