summaryrefslogtreecommitdiff
path: root/board/davinci/da8xxevm/da830evm.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/davinci/da8xxevm/da830evm.c')
-rw-r--r--board/davinci/da8xxevm/da830evm.c155
1 files changed, 43 insertions, 112 deletions
diff --git a/board/davinci/da8xxevm/da830evm.c b/board/davinci/da8xxevm/da830evm.c
index c45c94b..a4e9254 100644
--- a/board/davinci/da8xxevm/da830evm.c
+++ b/board/davinci/da8xxevm/da830evm.c
@@ -39,135 +39,43 @@
#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>
#include <asm/arch/davinci_misc.h>
-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 }
-};
+#ifdef CONFIG_DAVINCI_MMC
+#include <mmc.h>
+#include <asm/arch/sdmmc_defs.h>
#endif
-
-/* USB0_DRVVBUS pin muxer settings */
-static const struct pinmux_config usb_pins[] = {
- { pinmux(9), 1, 1 }
-};
+DECLARE_GLOBAL_DATA_PTR;
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_8bit)
#endif
};
@@ -177,8 +85,31 @@ static const struct lpsc_resource lpsc[] = {
{ DAVINCI_LPSC_EMAC }, /* image download */
{ DAVINCI_LPSC_UART2 }, /* console */
{ DAVINCI_LPSC_GPIO },
+#ifdef CONFIG_DAVINCI_MMC
+ { DAVINCI_LPSC_MMC_SD },
+#endif
+
+};
+
+#ifdef CONFIG_DAVINCI_MMC
+static struct davinci_mmc mmc_sd0 = {
+ .reg_base = (struct davinci_mmc_regs *)DAVINCI_MMC_SD0_BASE,
+ .host_caps = MMC_MODE_8BIT,
+ .voltages = MMC_VDD_32_33 | MMC_VDD_33_34,
+ .version = MMC_CTLR_VERSION_2,
};
+int board_mmc_init(bd_t *bis)
+{
+ mmc_sd0.input_clk = clk_get(DAVINCI_MMCSD_CLKID);
+
+ printf("%x\n", mmc_sd0.input_clk);
+
+ /* Add slot-0 to mmc subsystem */
+ return davinci_mmc_init(bis, &mmc_sd0);
+}
+#endif
+
int board_init(void)
{
#ifndef CONFIG_USE_IRQ