mux.c 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  2. * mux.c
  3. *
  4. * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU General Public License as
  8. * published by the Free Software Foundation version 2.
  9. *
  10. * This program is distributed "as is" WITHOUT ANY WARRANTY of any
  11. * kind, whether express or implied; without even the implied warranty
  12. * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. */
  15. #include <common.h>
  16. #include <asm/arch/sys_proto.h>
  17. #include <asm/arch/hardware.h>
  18. #include <asm/arch/mux.h>
  19. #include <asm/io.h>
  20. #include <i2c.h>
  21. #include "evm.h"
  22. static struct module_pin_mux uart0_pin_mux[] = {
  23. {OFFSET(pincntl70), PULLUP_EN | MODE(0x01)}, /* UART0_RXD */
  24. {OFFSET(pincntl71), PULLUP_EN | MODE(0x01)}, /* UART0_TXD */
  25. {-1},
  26. };
  27. static struct module_pin_mux mmc1_pin_mux[] = {
  28. {OFFSET(pincntl1), PULLUP_EN | MODE(0x01)}, /* SD1_CLK */
  29. {OFFSET(pincntl2), PULLUP_EN | MODE(0x01)}, /* SD1_CMD */
  30. {OFFSET(pincntl3), PULLUP_EN | MODE(0x01)}, /* SD1_DAT[0] */
  31. {OFFSET(pincntl4), PULLUP_EN | MODE(0x01)}, /* SD1_DAT[1] */
  32. {OFFSET(pincntl5), PULLUP_EN | MODE(0x01)}, /* SD1_DAT[2] */
  33. {OFFSET(pincntl6), PULLUP_EN | MODE(0x01)}, /* SD1_DAT[3] */
  34. {OFFSET(pincntl74), PULLUP_EN | MODE(0x40)}, /* SD1_POW */
  35. {OFFSET(pincntl75), MODE(0x40)}, /* SD1_SDWP */
  36. {OFFSET(pincntl80), PULLUP_EN | MODE(0x02)}, /* SD1_SDCD */
  37. {-1},
  38. };
  39. static struct module_pin_mux enet_pin_mux[] = {
  40. {OFFSET(pincntl232), MODE(0x01)}, /* EMAC_RMREFCLK */
  41. {OFFSET(pincntl233), PULLUP_EN | MODE(0x01)}, /* MDCLK */
  42. {OFFSET(pincntl234), PULLUP_EN | MODE(0x01)}, /* MDIO */
  43. {OFFSET(pincntl235), MODE(0x01)}, /* EMAC[0]_MTCLK */
  44. {OFFSET(pincntl236), MODE(0x01)}, /* EMAC[0]_MCOL */
  45. {OFFSET(pincntl237), MODE(0x01)}, /* EMAC[0]_MCRS */
  46. {OFFSET(pincntl238), MODE(0x01)}, /* EMAC[0]_MRXER */
  47. {OFFSET(pincntl239), MODE(0x01)}, /* EMAC[0]_MRCLK */
  48. {OFFSET(pincntl240), MODE(0x01)}, /* EMAC[0]_MRXD[0] */
  49. {OFFSET(pincntl241), MODE(0x01)}, /* EMAC[0]_MRXD[1] */
  50. {OFFSET(pincntl242), MODE(0x01)}, /* EMAC[0]_MRXD[2] */
  51. {OFFSET(pincntl243), MODE(0x01)}, /* EMAC[0]_MRXD[3] */
  52. {OFFSET(pincntl244), MODE(0x01)}, /* EMAC[0]_MRXD[4] */
  53. {OFFSET(pincntl245), MODE(0x01)}, /* EMAC[0]_MRXD[5] */
  54. {OFFSET(pincntl246), MODE(0x01)}, /* EMAC[0]_MRXD[6] */
  55. {OFFSET(pincntl247), MODE(0x01)}, /* EMAC[0]_MRXD[7] */
  56. {OFFSET(pincntl248), MODE(0x01)}, /* EMAC[0]_MRXDV */
  57. {OFFSET(pincntl249), MODE(0x01)}, /* EMAC[0]_GMTCLK */
  58. {OFFSET(pincntl250), MODE(0x01)}, /* EMAC[0]_MTXD[0] */
  59. {OFFSET(pincntl251), MODE(0x01)}, /* EMAC[0]_MTXD[1] */
  60. {OFFSET(pincntl252), MODE(0x01)}, /* EMAC[0]_MTXD[2] */
  61. {OFFSET(pincntl253), MODE(0x01)}, /* EMAC[0]_MTXD[3] */
  62. {OFFSET(pincntl254), MODE(0x01)}, /* EMAC[0]_MTXD[4] */
  63. {OFFSET(pincntl255), MODE(0x01)}, /* EMAC[0]_MTXD[5] */
  64. {OFFSET(pincntl256), MODE(0x01)}, /* EMAC[0]_MTXD[6] */
  65. {OFFSET(pincntl257), MODE(0x01)}, /* EMAC[0]_MTXD[7] */
  66. {OFFSET(pincntl258), MODE(0x01)}, /* EMAC[0]_MTXEN */
  67. };
  68. void enable_uart0_pin_mux(void)
  69. {
  70. configure_module_pin_mux(uart0_pin_mux);
  71. }
  72. void enable_mmc1_pin_mux(void)
  73. {
  74. configure_module_pin_mux(mmc1_pin_mux);
  75. }
  76. void enable_enet_pin_mux(void)
  77. {
  78. configure_module_pin_mux(enet_pin_mux);
  79. }