tegra: Add enum to select from available funcmux configs
authorSimon Glass <sjg@chromium.org>
Wed, 11 Jan 2012 12:42:23 +0000 (12:42 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sun, 12 Feb 2012 09:11:22 +0000 (10:11 +0100)
We want to give a name to each available funcmux config. For now we just
use the pin group names (even through it is verbose) since there seems
to be nothing better.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
arch/arm/cpu/armv7/tegra2/board.c
arch/arm/cpu/armv7/tegra2/funcmux.c
arch/arm/include/asm/arch-tegra2/funcmux.h

index 404d34c230a6b57816d07e247a295d333b2d108b..8e28d08247dfb82b8e3987f73b0420cdbc2340b7 100644 (file)
@@ -120,7 +120,7 @@ static void setup_uarts(int uart_ids)
                if (uart_ids & (1 << i)) {
                        enum periph_id id = id_for_uart[i];
 
-                       funcmux_select(id, 0);
+                       funcmux_select(id, FUNCMUX_DEFAULT);
                        clock_ll_start_uart(id);
                }
        }
index d3496c535a34e23751293cdddfc6c588e3718cd4..662ce928c48dc9de2b53cd05e3105c857dda6ca5 100644 (file)
 /* Tegra2 high-level function multiplexing */
 #include <common.h>
 #include <asm/arch/clock.h>
+#include <asm/arch/funcmux.h>
 #include <asm/arch/pinmux.h>
 
 int funcmux_select(enum periph_id id, int config)
 {
-       int bad_config = config != 0;
+       int bad_config = config != FUNCMUX_DEFAULT;
 
        switch (id) {
        case PERIPH_ID_UART1:
-               if (config == 0) {
+               if (config == FUNCMUX_UART1_IRRX_IRTX) {
                        pinmux_set_func(PINGRP_IRRX, PMUX_FUNC_UARTA);
                        pinmux_set_func(PINGRP_IRTX, PMUX_FUNC_UARTA);
                        pinmux_tristate_disable(PINGRP_IRRX);
@@ -52,14 +53,14 @@ int funcmux_select(enum periph_id id, int config)
                break;
 
        case PERIPH_ID_UART2:
-               if (config == 0) {
+               if (config == FUNCMUX_UART2_IRDA) {
                        pinmux_set_func(PINGRP_UAD, PMUX_FUNC_IRDA);
                        pinmux_tristate_disable(PINGRP_UAD);
                }
                break;
 
        case PERIPH_ID_UART4:
-               if (config == 0) {
+               if (config == FUNCMUX_UART4_GMC) {
                        pinmux_set_func(PINGRP_GMC, PMUX_FUNC_UARTD);
                        pinmux_tristate_disable(PINGRP_GMC);
                }
index d4f9cfbd0654f913c2e4bdf405d98ef5fc10e08f..791f3011c1f4b7248611036141bc2caa3a3a90cb 100644 (file)
 #ifndef __FUNCMUX_H
 #define __FUNCMUX_H
 
+/* Configs supported by the func mux */
+enum {
+       FUNCMUX_DEFAULT = 0,    /* default config */
+
+       /* UART configs */
+       FUNCMUX_UART1_IRRX_IRTX = 0,
+       FUNCMUX_UART2_IRDA = 0,
+       FUNCMUX_UART4_GMC = 0,
+};
+
 /**
  * Select a config for a particular peripheral.
  *
@@ -36,7 +46,7 @@
  * so that they operate in normal mode.
  *
  * @param id           Peripheral id
- * @param config       Configuration to use (generally 0)
+ * @param config       Configuration to use (FUNCMUX_...), 0 for default
  * @return 0 if ok, -1 on error (e.g. incorrect id or config)
  */
 int funcmux_select(enum periph_id id, int config);