On 01/22/11 01:06, Tom Warren wrote:
> Signed-off-by: Tom Warren <twar...@nvidia.com>
> ---

[ snip ]

> +/*
> + * Routine: pin_mux_uart
> + * Description: setup the pin muxes/tristate values for a UART
> + */
> +static void pin_mux_uart(void)
> +{
> +     pinmux_tri_ctlr *const pmt = (pinmux_tri_ctlr *)NV_PA_APB_MISC_BASE;
> +     u32 reg;
> +
> +#if CONFIG_TEGRA2_ENABLE_UARTA
> +             reg = readl(&pmt->pmt_ctl_c);
> +             reg &= 0xFFF0FFFF;      /* IRRX_/IRTX_SEL [19:16] = 00 UARTA */
> +             writel(reg, &pmt->pmt_ctl_c);
> +
> +             reg = readl(&pmt->pmt_tri_a);
> +             reg &= ~Z_IRRX;         /* Z_IRRX = normal (0) */
> +             reg &= ~Z_IRTX;         /* Z_IRTX = normal (0) */
> +             writel(reg, &pmt->pmt_tri_a);
> +#endif       /* CONFIG_TEGRA2_ENABLE_UARTA */
> +#if CONFIG_TEGRA2_ENABLE_UARTD
> +             reg = readl(&pmt->pmt_ctl_b);
> +             reg &= 0xFFFFFFF3;      /* GMC_SEL [3:2] = 00, UARTD */
> +             writel(reg, &pmt->pmt_ctl_b);
> +
> +             reg = readl(&pmt->pmt_tri_a);
> +             reg &= ~Z_GMC;          /* Z_GMC = normal (0) */
> +             writel(reg, &pmt->pmt_tri_a);
> +#endif       /* CONFIG_TEGRA2_ENABLE_UARTD */

As I've already pointed out (1) this covers only one possibility of UART pin
muxing options. I agree that it makes sense when this is a part of the
board-specific code. However, forcing specific pins configuration in the generic
driver seems problematic to me, even if most Tegra2 boards use the same
configuration.
As a side note, I'd prefer to have all the pin multiplexing defined in one place
in board file rather than scattered among different drivers.

(1) http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/92887/focus=93233


-- 
Sincerely yours,
Mike.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to