diff options
Diffstat (limited to 'board/davinci/common/misc.c')
| -rw-r--r-- | board/davinci/common/misc.c | 31 | 
1 files changed, 31 insertions, 0 deletions
| diff --git a/board/davinci/common/misc.c b/board/davinci/common/misc.c index 9fab76fa5..25ca32650 100644 --- a/board/davinci/common/misc.c +++ b/board/davinci/common/misc.c @@ -155,3 +155,34 @@ int davinci_configure_pin_mux(const struct pinmux_config *pins,  	return 0;  } + +/* + * Configure multiple pinmux resources. + * + * Takes an pinmux_resource array of pinmux_config and pin counts: + * + * const struct pinmux_resource pinmuxes[] = { + *	PINMUX_ITEM(uart_pins), + *	PINMUX_ITEM(i2c_pins), + * }; + * + * The number of items in the array must be passed (ARRAY_SIZE can provide + * this value conveniently). + * + * Each item entry is configured in the defined order. If configuration + * of any item fails, -1 is returned and none of the following items are + * configured. On success, 0 is returned. + */ +int davinci_configure_pin_mux_items(const struct pinmux_resource *item, +				    const int n_items) +{ +	int i; + +	for (i = 0; i < n_items; i++) { +		if (davinci_configure_pin_mux(item[i].pins, +					      item[i].n_pins) != 0) +			return -1; +	} + +	return 0; +} |