1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+ 2601fbec7SMasahiro Yamada /* 3601fbec7SMasahiro Yamada * Pinmux configurations for the DA850 SoCs 4601fbec7SMasahiro Yamada * 5601fbec7SMasahiro Yamada * Copyright (C) 2011 OMICRON electronics GmbH 6601fbec7SMasahiro Yamada */ 7601fbec7SMasahiro Yamada 8601fbec7SMasahiro Yamada #include <common.h> 9601fbec7SMasahiro Yamada #include <asm/arch/davinci_misc.h> 10601fbec7SMasahiro Yamada #include <asm/arch/hardware.h> 11601fbec7SMasahiro Yamada #include <asm/arch/pinmux_defs.h> 12601fbec7SMasahiro Yamada 13601fbec7SMasahiro Yamada /* SPI pin muxer settings */ 142ac07f75SDavid Lechner const struct pinmux_config spi0_pins_base[] = { 152ac07f75SDavid Lechner { pinmux(3), 1, 0 }, /* SPI0_CLK */ 162ac07f75SDavid Lechner { pinmux(3), 1, 2 }, /* SPI0_SOMI */ 172ac07f75SDavid Lechner { pinmux(3), 1, 3 }, /* SPI0_SIMO */ 182ac07f75SDavid Lechner }; 192ac07f75SDavid Lechner 202ac07f75SDavid Lechner const struct pinmux_config spi0_pins_scs0[] = { 212ac07f75SDavid Lechner { pinmux(4), 1, 1 }, /* SPI0_SCS[0] */ 222ac07f75SDavid Lechner }; 232ac07f75SDavid Lechner 24601fbec7SMasahiro Yamada const struct pinmux_config spi1_pins_base[] = { 25601fbec7SMasahiro Yamada { pinmux(5), 1, 2 }, /* SPI1_CLK */ 26601fbec7SMasahiro Yamada { pinmux(5), 1, 4 }, /* SPI1_SOMI */ 27601fbec7SMasahiro Yamada { pinmux(5), 1, 5 }, /* SPI1_SIMO */ 28601fbec7SMasahiro Yamada }; 29601fbec7SMasahiro Yamada 30601fbec7SMasahiro Yamada const struct pinmux_config spi1_pins_scs0[] = { 31601fbec7SMasahiro Yamada { pinmux(5), 1, 1 }, /* SPI1_SCS[0] */ 32601fbec7SMasahiro Yamada }; 33601fbec7SMasahiro Yamada 34601fbec7SMasahiro Yamada /* UART pin muxer settings */ 35601fbec7SMasahiro Yamada const struct pinmux_config uart0_pins_txrx[] = { 36601fbec7SMasahiro Yamada { pinmux(3), 2, 4 }, /* UART0_RXD */ 37601fbec7SMasahiro Yamada { pinmux(3), 2, 5 }, /* UART0_TXD */ 38601fbec7SMasahiro Yamada }; 39601fbec7SMasahiro Yamada 40601fbec7SMasahiro Yamada const struct pinmux_config uart0_pins_rtscts[] = { 41601fbec7SMasahiro Yamada { pinmux(3), 2, 6 }, 42601fbec7SMasahiro Yamada { pinmux(3), 2, 7 }, 43601fbec7SMasahiro Yamada }; 44601fbec7SMasahiro Yamada 45601fbec7SMasahiro Yamada const struct pinmux_config uart1_pins_txrx[] = { 46601fbec7SMasahiro Yamada { pinmux(4), 2, 6 }, /* UART1_RXD */ 47601fbec7SMasahiro Yamada { pinmux(4), 2, 7 }, /* UART1_TXD */ 48601fbec7SMasahiro Yamada }; 49601fbec7SMasahiro Yamada 50601fbec7SMasahiro Yamada const struct pinmux_config uart2_pins_txrx[] = { 51601fbec7SMasahiro Yamada { pinmux(4), 2, 4 }, /* UART2_RXD */ 52601fbec7SMasahiro Yamada { pinmux(4), 2, 5 }, /* UART2_TXD */ 53601fbec7SMasahiro Yamada }; 54601fbec7SMasahiro Yamada 55601fbec7SMasahiro Yamada const struct pinmux_config uart2_pins_rtscts[] = { 56601fbec7SMasahiro Yamada { pinmux(0), 4, 6 }, /* UART2_RTS */ 57601fbec7SMasahiro Yamada { pinmux(0), 4, 7 }, /* UART2_CTS */ 58601fbec7SMasahiro Yamada }; 59601fbec7SMasahiro Yamada 60601fbec7SMasahiro Yamada /* EMAC pin muxer settings*/ 61601fbec7SMasahiro Yamada const struct pinmux_config emac_pins_rmii[] = { 62601fbec7SMasahiro Yamada { pinmux(14), 8, 2 }, /* RMII_TXD[1] */ 63601fbec7SMasahiro Yamada { pinmux(14), 8, 3 }, /* RMII_TXD[0] */ 64601fbec7SMasahiro Yamada { pinmux(14), 8, 4 }, /* RMII_TXEN */ 65601fbec7SMasahiro Yamada { pinmux(14), 8, 5 }, /* RMII_RXD[1] */ 66601fbec7SMasahiro Yamada { pinmux(14), 8, 6 }, /* RMII_RXD[0] */ 67601fbec7SMasahiro Yamada { pinmux(14), 8, 7 }, /* RMII_RXER */ 68601fbec7SMasahiro Yamada { pinmux(15), 0, 0 }, /* RMII_MHz_50_CLK */ 69601fbec7SMasahiro Yamada { pinmux(15), 8, 1 }, /* RMII_CRS_DV */ 70601fbec7SMasahiro Yamada }; 71601fbec7SMasahiro Yamada 72601fbec7SMasahiro Yamada const struct pinmux_config emac_pins_mii[] = { 73601fbec7SMasahiro Yamada { pinmux(2), 8, 1 }, /* MII_TXEN */ 74601fbec7SMasahiro Yamada { pinmux(2), 8, 2 }, /* MII_TXCLK */ 75601fbec7SMasahiro Yamada { pinmux(2), 8, 3 }, /* MII_COL */ 76601fbec7SMasahiro Yamada { pinmux(2), 8, 4 }, /* MII_TXD[3] */ 77601fbec7SMasahiro Yamada { pinmux(2), 8, 5 }, /* MII_TXD[2] */ 78601fbec7SMasahiro Yamada { pinmux(2), 8, 6 }, /* MII_TXD[1] */ 79601fbec7SMasahiro Yamada { pinmux(2), 8, 7 }, /* MII_TXD[0] */ 80601fbec7SMasahiro Yamada { pinmux(3), 8, 0 }, /* MII_RXCLK */ 81601fbec7SMasahiro Yamada { pinmux(3), 8, 1 }, /* MII_RXDV */ 82601fbec7SMasahiro Yamada { pinmux(3), 8, 2 }, /* MII_RXER */ 83601fbec7SMasahiro Yamada { pinmux(3), 8, 3 }, /* MII_CRS */ 84601fbec7SMasahiro Yamada { pinmux(3), 8, 4 }, /* MII_RXD[3] */ 85601fbec7SMasahiro Yamada { pinmux(3), 8, 5 }, /* MII_RXD[2] */ 86601fbec7SMasahiro Yamada { pinmux(3), 8, 6 }, /* MII_RXD[1] */ 87601fbec7SMasahiro Yamada { pinmux(3), 8, 7 }, /* MII_RXD[0] */ 88601fbec7SMasahiro Yamada }; 89601fbec7SMasahiro Yamada 90601fbec7SMasahiro Yamada const struct pinmux_config emac_pins_mdio[] = { 91601fbec7SMasahiro Yamada { pinmux(4), 8, 0 }, /* MDIO_CLK */ 92601fbec7SMasahiro Yamada { pinmux(4), 8, 1 }, /* MDIO_D */ 93601fbec7SMasahiro Yamada }; 94601fbec7SMasahiro Yamada 95601fbec7SMasahiro Yamada /* I2C pin muxer settings */ 96601fbec7SMasahiro Yamada const struct pinmux_config i2c0_pins[] = { 97601fbec7SMasahiro Yamada { pinmux(4), 2, 2 }, /* I2C0_SCL */ 98601fbec7SMasahiro Yamada { pinmux(4), 2, 3 }, /* I2C0_SDA */ 99601fbec7SMasahiro Yamada }; 100601fbec7SMasahiro Yamada 101601fbec7SMasahiro Yamada const struct pinmux_config i2c1_pins[] = { 102601fbec7SMasahiro Yamada { pinmux(4), 4, 4 }, /* I2C1_SCL */ 103601fbec7SMasahiro Yamada { pinmux(4), 4, 5 }, /* I2C1_SDA */ 104601fbec7SMasahiro Yamada }; 105601fbec7SMasahiro Yamada 106601fbec7SMasahiro Yamada /* EMIFA pin muxer settings */ 107601fbec7SMasahiro Yamada const struct pinmux_config emifa_pins_cs2[] = { 108601fbec7SMasahiro Yamada { pinmux(7), 1, 0 }, /* EMA_CS2 */ 109601fbec7SMasahiro Yamada }; 110601fbec7SMasahiro Yamada 111601fbec7SMasahiro Yamada const struct pinmux_config emifa_pins_cs3[] = { 112601fbec7SMasahiro Yamada { pinmux(7), 1, 1 }, /* EMA_CS[3] */ 113601fbec7SMasahiro Yamada }; 114601fbec7SMasahiro Yamada 115601fbec7SMasahiro Yamada const struct pinmux_config emifa_pins_cs4[] = { 116601fbec7SMasahiro Yamada { pinmux(7), 1, 2 }, /* EMA_CS[4] */ 117601fbec7SMasahiro Yamada }; 118601fbec7SMasahiro Yamada 119601fbec7SMasahiro Yamada const struct pinmux_config emifa_pins_nand[] = { 120601fbec7SMasahiro Yamada { pinmux(7), 1, 4 }, /* EMA_WE */ 121601fbec7SMasahiro Yamada { pinmux(7), 1, 5 }, /* EMA_OE */ 122601fbec7SMasahiro Yamada { pinmux(9), 1, 0 }, /* EMA_D[7] */ 123601fbec7SMasahiro Yamada { pinmux(9), 1, 1 }, /* EMA_D[6] */ 124601fbec7SMasahiro Yamada { pinmux(9), 1, 2 }, /* EMA_D[5] */ 125601fbec7SMasahiro Yamada { pinmux(9), 1, 3 }, /* EMA_D[4] */ 126601fbec7SMasahiro Yamada { pinmux(9), 1, 4 }, /* EMA_D[3] */ 127601fbec7SMasahiro Yamada { pinmux(9), 1, 5 }, /* EMA_D[2] */ 128601fbec7SMasahiro Yamada { pinmux(9), 1, 6 }, /* EMA_D[1] */ 129601fbec7SMasahiro Yamada { pinmux(9), 1, 7 }, /* EMA_D[0] */ 130601fbec7SMasahiro Yamada { pinmux(12), 1, 5 }, /* EMA_A[2] */ 131601fbec7SMasahiro Yamada { pinmux(12), 1, 6 }, /* EMA_A[1] */ 132601fbec7SMasahiro Yamada }; 133601fbec7SMasahiro Yamada 134601fbec7SMasahiro Yamada /* NOR pin muxer settings */ 135601fbec7SMasahiro Yamada const struct pinmux_config emifa_pins_nor[] = { 136601fbec7SMasahiro Yamada { pinmux(5), 1, 6 }, /* EMA_BA[1] */ 137601fbec7SMasahiro Yamada { pinmux(6), 1, 6 }, /* EMA_WAIT[1] */ 138601fbec7SMasahiro Yamada { pinmux(7), 1, 4 }, /* EMA_WE */ 139601fbec7SMasahiro Yamada { pinmux(7), 1, 5 }, /* EMA_OE */ 140601fbec7SMasahiro Yamada { pinmux(8), 1, 0 }, /* EMA_D[15] */ 141601fbec7SMasahiro Yamada { pinmux(8), 1, 1 }, /* EMA_D[14] */ 142601fbec7SMasahiro Yamada { pinmux(8), 1, 2 }, /* EMA_D[13] */ 143601fbec7SMasahiro Yamada { pinmux(8), 1, 3 }, /* EMA_D[12] */ 144601fbec7SMasahiro Yamada { pinmux(8), 1, 4 }, /* EMA_D[11] */ 145601fbec7SMasahiro Yamada { pinmux(8), 1, 5 }, /* EMA_D[10] */ 146601fbec7SMasahiro Yamada { pinmux(8), 1, 6 }, /* EMA_D[9] */ 147601fbec7SMasahiro Yamada { pinmux(8), 1, 7 }, /* EMA_D[8] */ 148601fbec7SMasahiro Yamada { pinmux(9), 1, 0 }, /* EMA_D[7] */ 149601fbec7SMasahiro Yamada { pinmux(9), 1, 1 }, /* EMA_D[6] */ 150601fbec7SMasahiro Yamada { pinmux(9), 1, 2 }, /* EMA_D[5] */ 151601fbec7SMasahiro Yamada { pinmux(9), 1, 3 }, /* EMA_D[4] */ 152601fbec7SMasahiro Yamada { pinmux(9), 1, 4 }, /* EMA_D[3] */ 153601fbec7SMasahiro Yamada { pinmux(9), 1, 5 }, /* EMA_D[2] */ 154601fbec7SMasahiro Yamada { pinmux(9), 1, 6 }, /* EMA_D[1] */ 155601fbec7SMasahiro Yamada { pinmux(9), 1, 7 }, /* EMA_D[0] */ 156601fbec7SMasahiro Yamada { pinmux(10), 1, 1 }, /* EMA_A[22] */ 157601fbec7SMasahiro Yamada { pinmux(10), 1, 2 }, /* EMA_A[21] */ 158601fbec7SMasahiro Yamada { pinmux(10), 1, 3 }, /* EMA_A[20] */ 159601fbec7SMasahiro Yamada { pinmux(10), 1, 4 }, /* EMA_A[19] */ 160601fbec7SMasahiro Yamada { pinmux(10), 1, 5 }, /* EMA_A[18] */ 161601fbec7SMasahiro Yamada { pinmux(10), 1, 6 }, /* EMA_A[17] */ 162601fbec7SMasahiro Yamada { pinmux(10), 1, 7 }, /* EMA_A[16] */ 163601fbec7SMasahiro Yamada { pinmux(11), 1, 0 }, /* EMA_A[15] */ 164601fbec7SMasahiro Yamada { pinmux(11), 1, 1 }, /* EMA_A[14] */ 165601fbec7SMasahiro Yamada { pinmux(11), 1, 2 }, /* EMA_A[13] */ 166601fbec7SMasahiro Yamada { pinmux(11), 1, 3 }, /* EMA_A[12] */ 167601fbec7SMasahiro Yamada { pinmux(11), 1, 4 }, /* EMA_A[11] */ 168601fbec7SMasahiro Yamada { pinmux(11), 1, 5 }, /* EMA_A[10] */ 169601fbec7SMasahiro Yamada { pinmux(11), 1, 6 }, /* EMA_A[9] */ 170601fbec7SMasahiro Yamada { pinmux(11), 1, 7 }, /* EMA_A[8] */ 171601fbec7SMasahiro Yamada { pinmux(12), 1, 0 }, /* EMA_A[7] */ 172601fbec7SMasahiro Yamada { pinmux(12), 1, 1 }, /* EMA_A[6] */ 173601fbec7SMasahiro Yamada { pinmux(12), 1, 2 }, /* EMA_A[5] */ 174601fbec7SMasahiro Yamada { pinmux(12), 1, 3 }, /* EMA_A[4] */ 175601fbec7SMasahiro Yamada { pinmux(12), 1, 4 }, /* EMA_A[3] */ 176601fbec7SMasahiro Yamada { pinmux(12), 1, 5 }, /* EMA_A[2] */ 177601fbec7SMasahiro Yamada { pinmux(12), 1, 6 }, /* EMA_A[1] */ 178601fbec7SMasahiro Yamada { pinmux(12), 1, 7 }, /* EMA_A[0] */ 179601fbec7SMasahiro Yamada }; 180601fbec7SMasahiro Yamada 181601fbec7SMasahiro Yamada /* MMC0 pin muxer settings */ 182601fbec7SMasahiro Yamada const struct pinmux_config mmc0_pins[] = { 183601fbec7SMasahiro Yamada { pinmux(10), 2, 0 }, /* MMCSD0_CLK */ 184601fbec7SMasahiro Yamada { pinmux(10), 2, 1 }, /* MMCSD0_CMD */ 185601fbec7SMasahiro Yamada { pinmux(10), 2, 2 }, /* MMCSD0_DAT_0 */ 186601fbec7SMasahiro Yamada { pinmux(10), 2, 3 }, /* MMCSD0_DAT_1 */ 187601fbec7SMasahiro Yamada { pinmux(10), 2, 4 }, /* MMCSD0_DAT_2 */ 188601fbec7SMasahiro Yamada { pinmux(10), 2, 5 }, /* MMCSD0_DAT_3 */ 189601fbec7SMasahiro Yamada /* DA850 supports only 4-bit mode, remaining pins are not configured */ 190601fbec7SMasahiro Yamada }; 191