Hi Tom, On Thu, May 30, 2013 at 13:25:11, Vishwanathrao Badarkhe, Manish wrote: > Move pinmux configurations for the DA830 SoCs from board file > to the arch tree so that it can be used for all da830 based devices. > Also, avoids duplicate pinmuxing in case of NAND. > > Signed-off-by: Vishwanathrao Badarkhe, Manish <manish...@ti.com> > --- > Depends on: > http://u-boot.10912.n7.nabble.com/PATCH-da830-add-MMC-support-td155590.html > > :100644 100644 dec7bfb... bba4671... M > arch/arm/cpu/arm926ejs/davinci/Makefile > :000000 100644 0000000... d0c964a... A > arch/arm/cpu/arm926ejs/davinci/da830_pinmux.c > :100644 100644 a851f1f... beaf0d6... M > arch/arm/include/asm/arch-davinci/pinmux_defs.h > :100644 100644 bf014ae... a4e9254... M > board/davinci/da8xxevm/da830evm.c > :100644 100644 28995a0... 00e92a6... M include/configs/da830evm.h > arch/arm/cpu/arm926ejs/davinci/Makefile | 1 + > arch/arm/cpu/arm926ejs/davinci/da830_pinmux.c | 151 > +++++++++++++++++++++++ > arch/arm/include/asm/arch-davinci/pinmux_defs.h | 15 ++- > board/davinci/da8xxevm/da830evm.c | 145 ++-------------------- > include/configs/da830evm.h | 1 + > 5 files changed, 181 insertions(+), 132 deletions(-) >
Please let me know, are there any review comments on this patch? > diff --git a/arch/arm/cpu/arm926ejs/davinci/Makefile > b/arch/arm/cpu/arm926ejs/davinci/Makefile > index dec7bfb..bba4671 100644 > --- a/arch/arm/cpu/arm926ejs/davinci/Makefile > +++ b/arch/arm/cpu/arm926ejs/davinci/Makefile > @@ -33,6 +33,7 @@ COBJS-$(CONFIG_SOC_DM355) += dm355.o > COBJS-$(CONFIG_SOC_DM365) += dm365.o > COBJS-$(CONFIG_SOC_DM644X) += dm644x.o > COBJS-$(CONFIG_SOC_DM646X) += dm646x.o > +COBJS-$(CONFIG_SOC_DA830) += da830_pinmux.o > COBJS-$(CONFIG_SOC_DA850) += da850_pinmux.o > COBJS-$(CONFIG_DRIVER_TI_EMAC) += lxt972.o dp83848.o et1011c.o > ksz8873.o > > diff --git a/arch/arm/cpu/arm926ejs/davinci/da830_pinmux.c > b/arch/arm/cpu/arm926ejs/davinci/da830_pinmux.c > new file mode 100644 > index 0000000..d0c964a > --- /dev/null > +++ b/arch/arm/cpu/arm926ejs/davinci/da830_pinmux.c > @@ -0,0 +1,151 @@ > +/* > + * Pinmux configurations for the DA830 SoCs > + * > + * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. > + */ > + > +#include <common.h> > +#include <asm/arch/davinci_misc.h> > +#include <asm/arch/hardware.h> > +#include <asm/arch/pinmux_defs.h> > + > +/* SPI0 pin muxer settings */ > +const struct pinmux_config spi0_pins_base[] = { > + { pinmux(7), 1, 3 }, /* SPI0_SOMI */ > + { pinmux(7), 1, 4 }, /* SPI0_SIMO */ > + { pinmux(7), 1, 6 } /* SPI0_CLK */ > +}; > + > +const struct pinmux_config spi0_pins_scs0[] = { > + { pinmux(7), 1, 7 } /* SPI0_SCS[0] */ > +}; > + > +const struct pinmux_config spi0_pins_ena[] = { > + { pinmux(7), 1, 5 } /* SPI0_ENA */ > +}; > + > +/* NAND pin muxer settings */ > +const struct pinmux_config emifa_pins_cs0[] = { > + { pinmux(18), 1, 2 } /* EMA_CS[0] */ > +}; > + > +const struct pinmux_config emifa_pins_cs2[] = { > + { pinmux(18), 1, 3 } /* EMA_CS[2] */ > +}; > + > +const struct pinmux_config emifa_pins_cs3[] = { > + { pinmux(18), 1, 4 } /* EMA_CS[3] */ > +}; > + > +#ifdef CONFIG_USE_NAND > +const struct pinmux_config emifa_pins[] = { > + { pinmux(13), 1, 6 }, /* EMA_D[0] */ > + { pinmux(13), 1, 7 }, /* EMA_D[1] */ > + { pinmux(14), 1, 0 }, /* EMA_D[2] */ > + { pinmux(14), 1, 1 }, /* EMA_D[3] */ > + { pinmux(14), 1, 2 }, /* EMA_D[4] */ > + { pinmux(14), 1, 3 }, /* EMA_D[5] */ > + { pinmux(14), 1, 4 }, /* EMA_D[6] */ > + { pinmux(14), 1, 5 }, /* EMA_D[7] */ > + { pinmux(14), 1, 6 }, /* EMA_D[8] */ > + { pinmux(14), 1, 7 }, /* EMA_D[9] */ > + { pinmux(15), 1, 0 }, /* EMA_D[10] */ > + { pinmux(15), 1, 1 }, /* EMA_D[11] */ > + { pinmux(15), 1, 2 }, /* EMA_D[12] */ > + { pinmux(15), 1, 3 }, /* EMA_D[13] */ > + { pinmux(15), 1, 4 }, /* EMA_D[14] */ > + { pinmux(15), 1, 5 }, /* EMA_D[15] */ > + { pinmux(15), 1, 6 }, /* EMA_A[0] */ > + { pinmux(15), 1, 7 }, /* EMA_A[1] */ > + { pinmux(16), 1, 0 }, /* EMA_A[2] */ > + { pinmux(16), 1, 1 }, /* EMA_A[3] */ > + { pinmux(16), 1, 2 }, /* EMA_A[4] */ > + { pinmux(16), 1, 3 }, /* EMA_A[5] */ > + { pinmux(16), 1, 4 }, /* EMA_A[6] */ > + { pinmux(16), 1, 5 }, /* EMA_A[7] */ > + { pinmux(16), 1, 6 }, /* EMA_A[8] */ > + { pinmux(16), 1, 7 }, /* EMA_A[9] */ > + { pinmux(17), 1, 0 }, /* EMA_A[10] */ > + { pinmux(17), 1, 1 }, /* EMA_A[11] */ > + { pinmux(17), 1, 2 }, /* EMA_A[12] */ > + { pinmux(17), 1, 3 }, /* EMA_BA[1] */ > + { pinmux(17), 1, 4 }, /* EMA_BA[0] */ > + { pinmux(17), 1, 5 }, /* EMA_CLK */ > + { pinmux(17), 1, 6 }, /* EMA_SDCKE */ > + { pinmux(17), 1, 7 }, /* EMA_CAS */ > + { pinmux(18), 1, 0 }, /* EMA_CAS */ > + { pinmux(18), 1, 1 }, /* EMA_WE */ > + { pinmux(18), 1, 5 }, /* EMA_OE */ > + { pinmux(18), 1, 6 }, /* EMA_WE_DQM[1] */ > + { pinmux(18), 1, 7 }, /* EMA_WE_DQM[0] */ > + { pinmux(10), 1, 0 } /* Tristate */ > +}; > +#endif > + > +/* EMAC PHY interface pins */ > +const struct pinmux_config emac_pins_rmii[] = { > + { pinmux(10), 2, 1 }, /* RMII_TXD[0] */ > + { pinmux(10), 2, 2 }, /* RMII_TXD[1] */ > + { pinmux(10), 2, 3 }, /* RMII_TXEN */ > + { pinmux(10), 2, 4 }, /* RMII_CRS_DV */ > + { pinmux(10), 2, 5 }, /* RMII_RXD[0] */ > + { pinmux(10), 2, 6 }, /* RMII_RXD[1] */ > + { pinmux(10), 2, 7 } /* RMII_RXER */ > +}; > + > +const struct pinmux_config emac_pins_mdio[] = { > + { pinmux(11), 2, 0 }, /* MDIO_CLK */ > + { pinmux(11), 2, 1 } /* MDIO_D */ > +}; > + > +const struct pinmux_config emac_pins_rmii_clk_source[] = { > + { pinmux(9), 0, 5 } /* ref.clk from external source */ > +}; > + > +/* UART2 pin muxer settings */ > +const struct pinmux_config uart2_pins_txrx[] = { > + { pinmux(8), 2, 7 }, /* UART2_RXD */ > + { pinmux(9), 2, 0 } /* UART2_TXD */ > +}; > + > +/* I2C0 pin muxer settings */ > +const struct pinmux_config i2c0_pins[] = { > + { pinmux(8), 2, 3 }, /* I2C0_SDA */ > + { pinmux(8), 2, 4 } /* I2C0_SCL */ > +}; > + > +/* USB0_DRVVBUS pin muxer settings */ > +const struct pinmux_config usb_pins[] = { > + { pinmux(9), 1, 1 } /* USB0_DRVVBUS */ > +}; > + > +#ifdef CONFIG_DAVINCI_MMC > +/* MMC0 pin muxer settings */ > +const struct pinmux_config mmc0_pins_8bit[] = { > + { pinmux(15), 2, 7 }, /* MMCSD0_CLK */ > + { pinmux(16), 2, 0 }, /* MMCSD0_CMD */ > + { pinmux(13), 2, 6 }, /* MMCSD0_DAT_0 */ > + { pinmux(13), 2, 7 }, /* MMCSD0_DAT_1 */ > + { pinmux(14), 2, 0 }, /* MMCSD0_DAT_2 */ > + { pinmux(14), 2, 1 }, /* MMCSD0_DAT_3 */ > + { pinmux(14), 2, 2 }, /* MMCSD0_DAT_4 */ > + { pinmux(14), 2, 3 }, /* MMCSD0_DAT_5 */ > + { pinmux(14), 2, 4 }, /* MMCSD0_DAT_6 */ > + { pinmux(14), 2, 5 } /* MMCSD0_DAT_7 */ > + /* DA830 supports 8-bit mode */ > +}; > +#endif > diff --git a/arch/arm/include/asm/arch-davinci/pinmux_defs.h > b/arch/arm/include/asm/arch-davinci/pinmux_defs.h > index a851f1f..beaf0d6 100644 > --- a/arch/arm/include/asm/arch-davinci/pinmux_defs.h > +++ b/arch/arm/include/asm/arch-davinci/pinmux_defs.h > @@ -22,8 +22,14 @@ > #define __ASM_ARCH_PINMUX_DEFS_H > > #include <asm/arch/davinci_misc.h> > +#include <config.h> > > -/* SPI pin muxer settings */ > +/* SPI0 pin muxer settings */ > +extern const struct pinmux_config spi0_pins_base[3]; > +extern const struct pinmux_config spi0_pins_scs0[1]; > +extern const struct pinmux_config spi0_pins_ena[1]; > + > +/* SPI1 pin muxer settings */ > extern const struct pinmux_config spi1_pins_base[3]; > extern const struct pinmux_config spi1_pins_scs0[1]; > > @@ -35,6 +41,7 @@ extern const struct pinmux_config uart2_pins_rtscts[2]; > > /* EMAC pin muxer settings*/ > extern const struct pinmux_config emac_pins_rmii[7]; > +extern const struct pinmux_config emac_pins_rmii_clk_source[1]; > extern const struct pinmux_config emac_pins_mii[15]; > extern const struct pinmux_config emac_pins_mdio[2]; > > @@ -43,13 +50,19 @@ extern const struct pinmux_config i2c0_pins[2]; > extern const struct pinmux_config i2c1_pins[2]; > > /* EMIFA pin muxer settings */ > +extern const struct pinmux_config emifa_pins[40]; > +extern const struct pinmux_config emifa_pins_cs0[1]; > extern const struct pinmux_config emifa_pins_cs2[1]; > extern const struct pinmux_config emifa_pins_cs3[1]; > extern const struct pinmux_config emifa_pins_cs4[1]; > extern const struct pinmux_config emifa_pins_nand[12]; > extern const struct pinmux_config emifa_pins_nor[43]; > > +/* USB pin mux setting */ > +extern const struct pinmux_config usb_pins[1]; > + > /* MMC pin muxer settings */ > +extern const struct pinmux_config mmc0_pins_8bit[10]; > extern const struct pinmux_config mmc0_pins[6]; > > #endif > diff --git a/board/davinci/da8xxevm/da830evm.c > b/board/davinci/da8xxevm/da830evm.c > index bf014ae..a4e9254 100644 > --- a/board/davinci/da8xxevm/da830evm.c > +++ b/board/davinci/da8xxevm/da830evm.c > @@ -39,6 +39,7 @@ > #include <asm/arch/hardware.h> > #include <asm/arch/emif_defs.h> > #include <asm/arch/emac_defs.h> > +#include <asm/arch/pinmux_defs.h> > #include <asm/io.h> > #include <nand.h> > #include <asm/arch/nand_defs.h> > @@ -51,148 +52,30 @@ > > DECLARE_GLOBAL_DATA_PTR; > > -/* SPI0 pin muxer settings */ > -static const struct pinmux_config spi0_pins[] = { > - { pinmux(7), 1, 3 }, > - { pinmux(7), 1, 4 }, > - { pinmux(7), 1, 5 }, > - { pinmux(7), 1, 6 }, > - { pinmux(7), 1, 7 } > -}; > - > -/* EMIF-A bus pins for 8-bit NAND support on CS3 */ > -static const struct pinmux_config emifa_nand_pins[] = { > - { pinmux(13), 1, 6 }, > - { pinmux(13), 1, 7 }, > - { pinmux(14), 1, 0 }, > - { pinmux(14), 1, 1 }, > - { pinmux(14), 1, 2 }, > - { pinmux(14), 1, 3 }, > - { pinmux(14), 1, 4 }, > - { pinmux(14), 1, 5 }, > - { pinmux(15), 1, 7 }, > - { pinmux(16), 1, 0 }, > - { pinmux(18), 1, 1 }, > - { pinmux(18), 1, 4 }, > - { pinmux(18), 1, 5 }, > -}; > - > -/* EMAC PHY interface pins */ > -static const struct pinmux_config emac_pins[] = { > - { pinmux(9), 0, 5 }, > - { pinmux(10), 2, 1 }, > - { pinmux(10), 2, 2 }, > - { pinmux(10), 2, 3 }, > - { pinmux(10), 2, 4 }, > - { pinmux(10), 2, 5 }, > - { pinmux(10), 2, 6 }, > - { pinmux(10), 2, 7 }, > - { pinmux(11), 2, 0 }, > - { pinmux(11), 2, 1 }, > -}; > - > -/* UART pin muxer settings */ > -static const struct pinmux_config uart_pins[] = { > - { pinmux(8), 2, 7 }, > - { pinmux(9), 2, 0 } > -}; > - > -/* I2C pin muxer settings */ > -static const struct pinmux_config i2c_pins[] = { > - { pinmux(8), 2, 3 }, > - { pinmux(8), 2, 4 } > -}; > - > -#ifdef CONFIG_USE_NAND > -/* NAND pin muxer settings */ > -const struct pinmux_config aemif_pins[] = { > - { pinmux(13), 1, 6 }, > - { pinmux(13), 1, 7 }, > - { pinmux(14), 1, 0 }, > - { pinmux(14), 1, 1 }, > - { pinmux(14), 1, 2 }, > - { pinmux(14), 1, 3 }, > - { pinmux(14), 1, 4 }, > - { pinmux(14), 1, 5 }, > - { pinmux(14), 1, 6 }, > - { pinmux(14), 1, 7 }, > - { pinmux(15), 1, 0 }, > - { pinmux(15), 1, 1 }, > - { pinmux(15), 1, 2 }, > - { pinmux(15), 1, 3 }, > - { pinmux(15), 1, 4 }, > - { pinmux(15), 1, 5 }, > - { pinmux(15), 1, 6 }, > - { pinmux(15), 1, 7 }, > - { pinmux(16), 1, 0 }, > - { pinmux(16), 1, 1 }, > - { pinmux(16), 1, 2 }, > - { pinmux(16), 1, 3 }, > - { pinmux(16), 1, 4 }, > - { pinmux(16), 1, 5 }, > - { pinmux(16), 1, 6 }, > - { pinmux(16), 1, 7 }, > - { pinmux(17), 1, 0 }, > - { pinmux(17), 1, 1 }, > - { pinmux(17), 1, 2 }, > - { pinmux(17), 1, 3 }, > - { pinmux(17), 1, 4 }, > - { pinmux(17), 1, 5 }, > - { pinmux(17), 1, 6 }, > - { pinmux(17), 1, 7 }, > - { pinmux(18), 1, 0 }, > - { pinmux(18), 1, 1 }, > - { pinmux(18), 1, 2 }, > - { pinmux(18), 1, 3 }, > - { pinmux(18), 1, 4 }, > - { pinmux(18), 1, 5 }, > - { pinmux(18), 1, 6 }, > - { pinmux(18), 1, 7 }, > - { pinmux(10), 1, 0 } > -}; > -#endif > - > - > -/* USB0_DRVVBUS pin muxer settings */ > -static const struct pinmux_config usb_pins[] = { > - { pinmux(9), 1, 1 } > -}; > - > -#ifdef CONFIG_DAVINCI_MMC > -/* MMC0 pin muxer settings */ > -const struct pinmux_config mmc0_pins[] = { > - { pinmux(15), 2, 7 }, /* MMCSD0_CLK */ > - { pinmux(16), 2, 0 }, /* MMCSD0_CMD */ > - { pinmux(13), 2, 6 }, /* MMCSD0_DAT_0 */ > - { pinmux(13), 2, 7 }, /* MMCSD0_DAT_1 */ > - { pinmux(14), 2, 0 }, /* MMCSD0_DAT_2 */ > - { pinmux(14), 2, 1 }, /* MMCSD0_DAT_3 */ > - { pinmux(14), 2, 2 }, /* MMCSD0_DAT_4 */ > - { pinmux(14), 2, 3 }, /* MMCSD0_DAT_5 */ > - { pinmux(14), 2, 4 }, /* MMCSD0_DAT_6 */ > - { pinmux(14), 2, 5 }, /* MMCSD0_DAT_7 */ > - /* DA830 supports 8-bit mode */ > -}; > -#endif > - > static const struct pinmux_resource pinmuxes[] = { > #ifdef CONFIG_SPI_FLASH > - PINMUX_ITEM(spi0_pins), > + PINMUX_ITEM(spi0_pins_base), > + PINMUX_ITEM(spi0_pins_scs0), > + PINMUX_ITEM(spi0_pins_ena), > #endif > - PINMUX_ITEM(uart_pins), > - PINMUX_ITEM(i2c_pins), > + PINMUX_ITEM(uart2_pins_txrx), > + PINMUX_ITEM(i2c0_pins), > #ifdef CONFIG_USB_DA8XX > PINMUX_ITEM(usb_pins), > #endif > #ifdef CONFIG_USE_NAND > - PINMUX_ITEM(emifa_nand_pins), > - PINMUX_ITEM(aemif_pins), > + PINMUX_ITEM(emifa_pins), > + PINMUX_ITEM(emifa_pins_cs0), > + PINMUX_ITEM(emifa_pins_cs2), > + PINMUX_ITEM(emifa_pins_cs3), > #endif > #if defined(CONFIG_DRIVER_TI_EMAC) > - PINMUX_ITEM(emac_pins), > + PINMUX_ITEM(emac_pins_rmii), > + PINMUX_ITEM(emac_pins_mdio), > + PINMUX_ITEM(emac_pins_rmii_clk_source), > #endif > #ifdef CONFIG_DAVINCI_MMC > - PINMUX_ITEM(mmc0_pins), > + PINMUX_ITEM(mmc0_pins_8bit) > #endif > }; > > diff --git a/include/configs/da830evm.h b/include/configs/da830evm.h > index 28995a0..00e92a6 100644 > --- a/include/configs/da830evm.h > +++ b/include/configs/da830evm.h > @@ -36,6 +36,7 @@ > #define CONFIG_MACH_DAVINCI_DA830_EVM > #define CONFIG_ARM926EJS /* arm926ejs CPU core */ > #define CONFIG_SOC_DA8XX /* TI DA8xx SoC */ > +#define CONFIG_SOC_DA830 /* TI DA830 SoC */ > #define CONFIG_SYS_CLK_FREQ clk_get(DAVINCI_ARM_CLKID) > #define CONFIG_SYS_OSCIN_FREQ 24000000 > #define CONFIG_SYS_TIMERBASE DAVINCI_TIMER0_BASE > -- > 1.7.4.1 > > Regards, Manish _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot