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