mpp.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef __ARCH_ORION5X_MPP_H
  2. #define __ARCH_ORION5X_MPP_H
  3. enum orion5x_mpp_type {
  4. /*
  5. * This MPP is unused.
  6. */
  7. MPP_UNUSED,
  8. /*
  9. * This MPP pin is used as a generic GPIO pin. Valid for
  10. * MPPs 0-15 and device bus data pins 16-31. On 5182, also
  11. * valid for MPPs 16-19.
  12. */
  13. MPP_GPIO,
  14. /*
  15. * This MPP is used as PCIe_RST_OUTn pin. Valid for
  16. * MPP 0 only.
  17. */
  18. MPP_PCIE_RST_OUTn,
  19. /*
  20. * This MPP is used as PCI arbiter pin (REQn/GNTn).
  21. * Valid for MPPs 0-7 only.
  22. */
  23. MPP_PCI_ARB,
  24. /*
  25. * This MPP is used as PCI_PMEn pin. Valid for MPP 2 only.
  26. */
  27. MPP_PCI_PMEn,
  28. /*
  29. * This MPP is used as GigE half-duplex (COL, CRS) or GMII
  30. * (RXERR, CRS, TXERR, TXD[7:4], RXD[7:4]) pin. Valid for
  31. * MPPs 8-19 only.
  32. */
  33. MPP_GIGE,
  34. /*
  35. * This MPP is used as NAND REn/WEn pin. Valid for MPPs
  36. * 4-7 and 12-17 only, and only on the 5181l/5182/5281.
  37. */
  38. MPP_NAND,
  39. /*
  40. * This MPP is used as a PCI clock output pin. Valid for
  41. * MPPs 6-7 only, and only on the 5181l.
  42. */
  43. MPP_PCI_CLK,
  44. /*
  45. * This MPP is used as a SATA presence/activity LED.
  46. * Valid for MPPs 4-7 and 12-15 only, and only on the 5182.
  47. */
  48. MPP_SATA_LED,
  49. /*
  50. * This MPP is used as UART1 RXD/TXD/CTSn/RTSn pin.
  51. * Valid for MPPs 16-19 only.
  52. */
  53. MPP_UART,
  54. };
  55. struct orion5x_mpp_mode {
  56. int mpp;
  57. enum orion5x_mpp_type type;
  58. };
  59. void orion5x_mpp_conf(struct orion5x_mpp_mode *mode);
  60. #endif