Hello Christian, Christian Riesch wrote: > This patch replaces the pinmuxing functions from > arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c by those of > arch/arm/cpu/arm926ejs/davinci/pinmux.c > > Signed-off-by: Christian Riesch <[email protected]> > Cc: Heiko Schocher <[email protected]> > Cc: Sandeep Paulraj <[email protected]> > --- > arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c | 34 > +++++++++-------------- > 1 files changed, 13 insertions(+), 21 deletions(-) > > diff --git a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > index c7ec70f..8dd897b 100644 > --- a/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > +++ b/arch/arm/cpu/arm926ejs/davinci/da850_lowlevel.c > @@ -30,6 +30,7 @@ > #include <asm/arch/ddr2_defs.h> > #include <asm/arch/emif_defs.h> > #include <asm/arch/pll_defs.h> > +#include <asm/arch/davinci_misc.h> > > void da850_waitloop(unsigned long loopcnt) > { > @@ -248,6 +249,16 @@ void board_gpio_init(void) > return; > } > > +/* UART pin muxer settings */ > +static const struct pinmux_config uart_pins[] = { > +#if CONFIG_SYS_NS16550_COM1 == DAVINCI_UART2_BASE > + { pinmux(0), 4, 6 }, > + { pinmux(0), 4, 7 }, > + { pinmux(4), 2, 4 }, > + { pinmux(4), 2, 5 } > +#endif > +}; > + > int arch_cpu_init(void) > { > /* Unlock kick registers */ > @@ -257,27 +268,8 @@ int arch_cpu_init(void) > dv_maskbits(&davinci_syscfg_regs->suspsrc, > CONFIG_SYS_DA850_SYSCFG_SUSPSRC); > > - /* Setup Pinmux */ > - da850_pinmux_ctl(0, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX0); > - da850_pinmux_ctl(1, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX1); > - da850_pinmux_ctl(2, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX2); > - da850_pinmux_ctl(3, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX3); > - da850_pinmux_ctl(4, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX4); > - da850_pinmux_ctl(5, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX5); > - da850_pinmux_ctl(6, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX6); > - da850_pinmux_ctl(7, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX7); > - da850_pinmux_ctl(8, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX8); > - da850_pinmux_ctl(9, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX9); > - da850_pinmux_ctl(10, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX10); > - da850_pinmux_ctl(11, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX11); > - da850_pinmux_ctl(12, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX12); > - da850_pinmux_ctl(13, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX13); > - da850_pinmux_ctl(14, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX14); > - da850_pinmux_ctl(15, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX15); > - da850_pinmux_ctl(16, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX16); > - da850_pinmux_ctl(17, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX17); > - da850_pinmux_ctl(18, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX18); > - da850_pinmux_ctl(19, 0xFFFFFFFF, CONFIG_SYS_DA850_PINMUX19); > + /* setup serial port */ > + davinci_configure_pin_mux(uart_pins, ARRAY_SIZE(uart_pins));
Why only the uart pins? We could use here something like "board_pins" and initialize here all pins for the board? I reworked this for the enbw_cmc board too, and removed also the CONFIG_SYS_DA850_PINMUX* defines complete ... but I am not really happy with it. Why? We have for example on the am1808 19 * 8 = 152 pins to setup up If using the CONFIG_SYS_DA850_PINMUX* defines we have 19 register- writes and have setup them all (And you must think about all your pins, if we use such a struct, not defined pins are in default state ... which is good or bad ...) With using davinci_configure_pin_mux() we have 152 * (read, write and some logic operations) ... and I have to code a "static const struct pinmux_config board_pins" with 152 lines in the code ... What do others think? bye, Heiko -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

