mux.c 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Pinmux configuration for Compulab CM-T54 board
  4. *
  5. * Copyright (C) 2014, Compulab Ltd - http://compulab.co.il/
  6. *
  7. * Author: Dmitry Lifshitz <lifshitz@compulab.co.il>
  8. */
  9. #ifndef _CM_T54_MUX_DATA_H
  10. #define _CM_T54_MUX_DATA_H
  11. #include <common.h>
  12. #include <asm/arch/mux_omap5.h>
  13. #include <asm/arch/sys_proto.h>
  14. const struct pad_conf_entry core_padconf_array_essential[] = {
  15. /* MMC1 - SD CARD */
  16. {SDCARD_CLK, (PTU | IEN | M0)}, /* SDCARD_CLK */
  17. {SDCARD_CMD, (PTU | IEN | M0)}, /* SDCARD_CMD */
  18. {SDCARD_DATA0, (PTU | IEN | M0)}, /* SDCARD_DATA0 */
  19. {SDCARD_DATA1, (PTU | IEN | M0)}, /* SDCARD_DATA1 */
  20. {SDCARD_DATA2, (PTU | IEN | M0)}, /* SDCARD_DATA2 */
  21. {SDCARD_DATA3, (PTU | IEN | M0)}, /* SDCARD_DATA3 */
  22. /* SD CARD CD and WP GPIOs*/
  23. {TIMER5_PWM_EVT, (PTU | IEN | M6)}, /* GPIO8_228 */
  24. {TIMER6_PWM_EVT, (PTU | IEN | M6)}, /* GPIO8_229 */
  25. /* MMC2 - eMMC */
  26. {EMMC_CLK, (PTU | IEN | M0)}, /* EMMC_CLK */
  27. {EMMC_CMD, (PTU | IEN | M0)}, /* EMMC_CMD */
  28. {EMMC_DATA0, (PTU | IEN | M0)}, /* EMMC_DATA0 */
  29. {EMMC_DATA1, (PTU | IEN | M0)}, /* EMMC_DATA1 */
  30. {EMMC_DATA2, (PTU | IEN | M0)}, /* EMMC_DATA2 */
  31. {EMMC_DATA3, (PTU | IEN | M0)}, /* EMMC_DATA3 */
  32. {EMMC_DATA4, (PTU | IEN | M0)}, /* EMMC_DATA4 */
  33. {EMMC_DATA5, (PTU | IEN | M0)}, /* EMMC_DATA5 */
  34. {EMMC_DATA6, (PTU | IEN | M0)}, /* EMMC_DATA6 */
  35. {EMMC_DATA7, (PTU | IEN | M0)}, /* EMMC_DATA7 */
  36. /* UART4 */
  37. {I2C5_SCL, (PTU | IEN | M2)}, /* UART4_RX */
  38. {I2C5_SDA, (M2)}, /* UART4_TX */
  39. /* Led */
  40. {HSI2_CAFLAG, (PTU | M6)}, /* GPIO3_80 */
  41. /* I2C1 */
  42. {I2C1_PMIC_SCL, (PTU | IEN | M0)}, /* I2C1_PMIC_SCL */
  43. {I2C1_PMIC_SDA, (PTU | IEN | M0)}, /* I2C1_PMIC_SDA */
  44. /* USBB2, USBB3 */
  45. {USBB2_HSIC_STROBE, (PTU | IEN | M0)}, /* USBB2_HSIC_STROBE */
  46. {USBB2_HSIC_DATA, (PTU | IEN | M0)}, /* USBB2_HSIC_DATA */
  47. {USBB3_HSIC_STROBE, (PTU | IEN | M0)}, /* USBB3_HSIC_STROBE */
  48. {USBB3_HSIC_DATA, (PTU | IEN | M0)}, /* USBB3_HSIC_DATA */
  49. /* USB Hub and USB Eth reset GPIOs */
  50. {HSI2_CAREADY, (PTD | M6)}, /* GPIO3_76 */
  51. {HSI2_ACDATA, (PTD | M6)}, /* GPIO3_83 */
  52. /* I2C4 */
  53. {I2C4_SCL, (PTU | IEN | M0)}, /* I2C4_SCL */
  54. {I2C4_SDA, (PTU | IEN | M0)}, /* I2C4_SDA */
  55. };
  56. const struct pad_conf_entry wkup_padconf_array_essential[] = {
  57. {SR_PMIC_SCL, (PTU | IEN | M0)}, /* SR_PMIC_SCL */
  58. {SR_PMIC_SDA, (PTU | IEN | M0)}, /* SR_PMIC_SDA */
  59. {SYS_32K, (IEN | M0)}, /* SYS_32K */
  60. /* USB Hub clock */
  61. {FREF_CLK1_OUT, (PTD | IEN | M0)}, /* FREF_CLK1_OUT */
  62. };
  63. /*
  64. * Routine: set_muxconf_regs
  65. * Description: setup board pinmux configuration.
  66. */
  67. void set_muxconf_regs(void)
  68. {
  69. do_set_mux((*ctrl)->control_padconf_core_base,
  70. core_padconf_array_essential,
  71. sizeof(core_padconf_array_essential) /
  72. sizeof(struct pad_conf_entry));
  73. do_set_mux((*ctrl)->control_padconf_wkup_base,
  74. wkup_padconf_array_essential,
  75. sizeof(wkup_padconf_array_essential) /
  76. sizeof(struct pad_conf_entry));
  77. }
  78. #endif /* _CM_T54_MUX_DATA_H */