Home | History | Annotate | Download | only in mach-davinci
      1 // SPDX-License-Identifier: GPL-2.0+
      2 /*
      3  * Pinmux configurations for the DA850 SoCs
      4  *
      5  * Copyright (C) 2011 OMICRON electronics GmbH
      6  */
      7 
      8 #include <common.h>
      9 #include <asm/arch/davinci_misc.h>
     10 #include <asm/arch/hardware.h>
     11 #include <asm/arch/pinmux_defs.h>
     12 
     13 /* SPI pin muxer settings */
     14 const struct pinmux_config spi0_pins_base[] = {
     15 	{ pinmux(3), 1, 0 }, /* SPI0_CLK */
     16 	{ pinmux(3), 1, 2 }, /* SPI0_SOMI */
     17 	{ pinmux(3), 1, 3 }, /* SPI0_SIMO */
     18 };
     19 
     20 const struct pinmux_config spi0_pins_scs0[] = {
     21 	{ pinmux(4), 1, 1 }, /* SPI0_SCS[0] */
     22 };
     23 
     24 const struct pinmux_config spi1_pins_base[] = {
     25 	{ pinmux(5), 1, 2 }, /* SPI1_CLK */
     26 	{ pinmux(5), 1, 4 }, /* SPI1_SOMI */
     27 	{ pinmux(5), 1, 5 }, /* SPI1_SIMO */
     28 };
     29 
     30 const struct pinmux_config spi1_pins_scs0[] = {
     31 	{ pinmux(5), 1, 1 }, /* SPI1_SCS[0] */
     32 };
     33 
     34 /* UART pin muxer settings */
     35 const struct pinmux_config uart0_pins_txrx[] = {
     36 	{ pinmux(3), 2, 4 }, /* UART0_RXD */
     37 	{ pinmux(3), 2, 5 }, /* UART0_TXD */
     38 };
     39 
     40 const struct pinmux_config uart0_pins_rtscts[] = {
     41 	{ pinmux(3), 2, 6 },
     42 	{ pinmux(3), 2, 7 },
     43 };
     44 
     45 const struct pinmux_config uart1_pins_txrx[] = {
     46 	{ pinmux(4), 2, 6 }, /* UART1_RXD */
     47 	{ pinmux(4), 2, 7 }, /* UART1_TXD */
     48 };
     49 
     50 const struct pinmux_config uart2_pins_txrx[] = {
     51 	{ pinmux(4), 2, 4 }, /* UART2_RXD */
     52 	{ pinmux(4), 2, 5 }, /* UART2_TXD */
     53 };
     54 
     55 const struct pinmux_config uart2_pins_rtscts[] = {
     56 	{ pinmux(0), 4, 6 }, /* UART2_RTS */
     57 	{ pinmux(0), 4, 7 }, /* UART2_CTS */
     58 };
     59 
     60 /* EMAC pin muxer settings*/
     61 const struct pinmux_config emac_pins_rmii[] = {
     62 	{ pinmux(14), 8, 2 }, /* RMII_TXD[1] */
     63 	{ pinmux(14), 8, 3 }, /* RMII_TXD[0] */
     64 	{ pinmux(14), 8, 4 }, /* RMII_TXEN */
     65 	{ pinmux(14), 8, 5 }, /* RMII_RXD[1] */
     66 	{ pinmux(14), 8, 6 }, /* RMII_RXD[0] */
     67 	{ pinmux(14), 8, 7 }, /* RMII_RXER */
     68 	{ pinmux(15), 0, 0 }, /* RMII_MHz_50_CLK */
     69 	{ pinmux(15), 8, 1 }, /* RMII_CRS_DV */
     70 };
     71 
     72 const struct pinmux_config emac_pins_mii[] = {
     73 	{ pinmux(2), 8, 1 }, /* MII_TXEN */
     74 	{ pinmux(2), 8, 2 }, /* MII_TXCLK */
     75 	{ pinmux(2), 8, 3 }, /* MII_COL */
     76 	{ pinmux(2), 8, 4 }, /* MII_TXD[3] */
     77 	{ pinmux(2), 8, 5 }, /* MII_TXD[2] */
     78 	{ pinmux(2), 8, 6 }, /* MII_TXD[1] */
     79 	{ pinmux(2), 8, 7 }, /* MII_TXD[0] */
     80 	{ pinmux(3), 8, 0 }, /* MII_RXCLK */
     81 	{ pinmux(3), 8, 1 }, /* MII_RXDV */
     82 	{ pinmux(3), 8, 2 }, /* MII_RXER */
     83 	{ pinmux(3), 8, 3 }, /* MII_CRS */
     84 	{ pinmux(3), 8, 4 }, /* MII_RXD[3] */
     85 	{ pinmux(3), 8, 5 }, /* MII_RXD[2] */
     86 	{ pinmux(3), 8, 6 }, /* MII_RXD[1] */
     87 	{ pinmux(3), 8, 7 }, /* MII_RXD[0] */
     88 };
     89 
     90 const struct pinmux_config emac_pins_mdio[] = {
     91 	{ pinmux(4), 8, 0 }, /* MDIO_CLK */
     92 	{ pinmux(4), 8, 1 }, /* MDIO_D */
     93 };
     94 
     95 /* I2C pin muxer settings */
     96 const struct pinmux_config i2c0_pins[] = {
     97 	{ pinmux(4), 2, 2 }, /* I2C0_SCL */
     98 	{ pinmux(4), 2, 3 }, /* I2C0_SDA */
     99 };
    100 
    101 const struct pinmux_config i2c1_pins[] = {
    102 	{ pinmux(4), 4, 4 }, /* I2C1_SCL */
    103 	{ pinmux(4), 4, 5 }, /* I2C1_SDA */
    104 };
    105 
    106 /* EMIFA pin muxer settings */
    107 const struct pinmux_config emifa_pins_cs2[] = {
    108 	{ pinmux(7), 1, 0 }, /* EMA_CS2 */
    109 };
    110 
    111 const struct pinmux_config emifa_pins_cs3[] = {
    112 	{ pinmux(7), 1, 1 }, /* EMA_CS[3] */
    113 };
    114 
    115 const struct pinmux_config emifa_pins_cs4[] = {
    116 	{ pinmux(7), 1, 2 }, /* EMA_CS[4] */
    117 };
    118 
    119 const struct pinmux_config emifa_pins_nand[] = {
    120 	{ pinmux(7), 1, 4 },  /* EMA_WE */
    121 	{ pinmux(7), 1, 5 },  /* EMA_OE */
    122 	{ pinmux(9), 1, 0 },  /* EMA_D[7] */
    123 	{ pinmux(9), 1, 1 },  /* EMA_D[6] */
    124 	{ pinmux(9), 1, 2 },  /* EMA_D[5] */
    125 	{ pinmux(9), 1, 3 },  /* EMA_D[4] */
    126 	{ pinmux(9), 1, 4 },  /* EMA_D[3] */
    127 	{ pinmux(9), 1, 5 },  /* EMA_D[2] */
    128 	{ pinmux(9), 1, 6 },  /* EMA_D[1] */
    129 	{ pinmux(9), 1, 7 },  /* EMA_D[0] */
    130 	{ pinmux(12), 1, 5 }, /* EMA_A[2] */
    131 	{ pinmux(12), 1, 6 }, /* EMA_A[1] */
    132 };
    133 
    134 /* NOR pin muxer settings */
    135 const struct pinmux_config emifa_pins_nor[] = {
    136 	{ pinmux(5), 1, 6 },  /* EMA_BA[1] */
    137 	{ pinmux(6), 1, 6 },  /* EMA_WAIT[1] */
    138 	{ pinmux(7), 1, 4 },  /* EMA_WE */
    139 	{ pinmux(7), 1, 5 },  /* EMA_OE */
    140 	{ pinmux(8), 1, 0 },  /* EMA_D[15] */
    141 	{ pinmux(8), 1, 1 },  /* EMA_D[14] */
    142 	{ pinmux(8), 1, 2 },  /* EMA_D[13] */
    143 	{ pinmux(8), 1, 3 },  /* EMA_D[12] */
    144 	{ pinmux(8), 1, 4 },  /* EMA_D[11] */
    145 	{ pinmux(8), 1, 5 },  /* EMA_D[10] */
    146 	{ pinmux(8), 1, 6 },  /* EMA_D[9] */
    147 	{ pinmux(8), 1, 7 },  /* EMA_D[8] */
    148 	{ pinmux(9), 1, 0 },  /* EMA_D[7] */
    149 	{ pinmux(9), 1, 1 },  /* EMA_D[6] */
    150 	{ pinmux(9), 1, 2 },  /* EMA_D[5] */
    151 	{ pinmux(9), 1, 3 },  /* EMA_D[4] */
    152 	{ pinmux(9), 1, 4 },  /* EMA_D[3] */
    153 	{ pinmux(9), 1, 5 },  /* EMA_D[2] */
    154 	{ pinmux(9), 1, 6 },  /* EMA_D[1] */
    155 	{ pinmux(9), 1, 7 },  /* EMA_D[0] */
    156 	{ pinmux(10), 1, 1 }, /* EMA_A[22] */
    157 	{ pinmux(10), 1, 2 }, /* EMA_A[21] */
    158 	{ pinmux(10), 1, 3 }, /* EMA_A[20] */
    159 	{ pinmux(10), 1, 4 }, /* EMA_A[19] */
    160 	{ pinmux(10), 1, 5 }, /* EMA_A[18] */
    161 	{ pinmux(10), 1, 6 }, /* EMA_A[17] */
    162 	{ pinmux(10), 1, 7 }, /* EMA_A[16] */
    163 	{ pinmux(11), 1, 0 }, /* EMA_A[15] */
    164 	{ pinmux(11), 1, 1 }, /* EMA_A[14] */
    165 	{ pinmux(11), 1, 2 }, /* EMA_A[13] */
    166 	{ pinmux(11), 1, 3 }, /* EMA_A[12] */
    167 	{ pinmux(11), 1, 4 }, /* EMA_A[11] */
    168 	{ pinmux(11), 1, 5 }, /* EMA_A[10] */
    169 	{ pinmux(11), 1, 6 }, /* EMA_A[9] */
    170 	{ pinmux(11), 1, 7 }, /* EMA_A[8] */
    171 	{ pinmux(12), 1, 0 }, /* EMA_A[7] */
    172 	{ pinmux(12), 1, 1 }, /* EMA_A[6] */
    173 	{ pinmux(12), 1, 2 }, /* EMA_A[5] */
    174 	{ pinmux(12), 1, 3 }, /* EMA_A[4] */
    175 	{ pinmux(12), 1, 4 }, /* EMA_A[3] */
    176 	{ pinmux(12), 1, 5 }, /* EMA_A[2] */
    177 	{ pinmux(12), 1, 6 }, /* EMA_A[1] */
    178 	{ pinmux(12), 1, 7 }, /* EMA_A[0] */
    179 };
    180 
    181 /* MMC0 pin muxer settings */
    182 const struct pinmux_config mmc0_pins[] = {
    183 	{ pinmux(10), 2, 0 },	/* MMCSD0_CLK */
    184 	{ pinmux(10), 2, 1 },	/* MMCSD0_CMD */
    185 	{ pinmux(10), 2, 2 },	/* MMCSD0_DAT_0 */
    186 	{ pinmux(10), 2, 3 },	/* MMCSD0_DAT_1 */
    187 	{ pinmux(10), 2, 4 },	/* MMCSD0_DAT_2 */
    188 	{ pinmux(10), 2, 5 },	/* MMCSD0_DAT_3 */
    189 	/* DA850 supports only 4-bit mode, remaining pins are not configured */
    190 };
    191