mux.c 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <config.h>
  2. #include <common.h>
  3. #include <asm/hardware.h>
  4. #include <dataflash.h>
  5. int AT91F_GetMuxStatus(void) {
  6. #ifdef CONFIG_DATAFLASH_MMC_SELECT
  7. AT91C_BASE_PIOB->PIO_PER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Set in PIO mode */
  8. AT91C_BASE_PIOB->PIO_OER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Configure in output */
  9. if(AT91C_BASE_PIOB->PIO_ODSR & CONFIG_SYS_DATAFLASH_MMC_PIO) {
  10. return 1;
  11. } else {
  12. return 0;
  13. }
  14. #endif
  15. return 0;
  16. }
  17. void AT91F_SelectMMC(void) {
  18. #ifdef CONFIG_DATAFLASH_MMC_SELECT
  19. AT91C_BASE_PIOB->PIO_PER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Set in PIO mode */
  20. AT91C_BASE_PIOB->PIO_OER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Configure in output */
  21. /* Set Output */
  22. AT91C_BASE_PIOB->PIO_SODR = CONFIG_SYS_DATAFLASH_MMC_PIO;
  23. #endif
  24. }
  25. void AT91F_SelectSPI(void) {
  26. #ifdef CONFIG_DATAFLASH_MMC_SELECT
  27. AT91C_BASE_PIOB->PIO_PER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Set in PIO mode */
  28. AT91C_BASE_PIOB->PIO_OER = CONFIG_SYS_DATAFLASH_MMC_PIO; /* Configure in output */
  29. /* Clear Output */
  30. AT91C_BASE_PIOB->PIO_CODR = CONFIG_SYS_DATAFLASH_MMC_PIO;
  31. #endif
  32. }