mux.c 2.9 KB

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