dataflash_mmc_mux.c 926 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * (C) Copyright 2000
  4. * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  5. */
  6. #include <common.h>
  7. #include <command.h>
  8. static int mmc_nspi (const char *);
  9. int do_dataflash_mmc_mux (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
  10. {
  11. switch (argc) {
  12. case 2: /* on / off */
  13. switch (mmc_nspi (argv[1])) {
  14. case 0: AT91F_SelectSPI ();
  15. break;
  16. case 1: AT91F_SelectMMC ();
  17. break;
  18. }
  19. case 1: /* get status */
  20. printf ("Mux is configured to be %s\n",
  21. AT91F_GetMuxStatus () ? "MMC" : "SPI");
  22. return 0;
  23. default:
  24. return CMD_RET_USAGE;
  25. }
  26. return 0;
  27. }
  28. static int mmc_nspi (const char *s)
  29. {
  30. if (strcmp (s, "mmc") == 0) {
  31. return 1;
  32. } else if (strcmp (s, "spi") == 0) {
  33. return 0;
  34. }
  35. return -1;
  36. }
  37. U_BOOT_CMD(
  38. dataflash_mmc_mux, 2, 1, do_dataflash_mmc_mux,
  39. "enable or disable MMC or SPI\n",
  40. "[mmc, spi]\n"
  41. " - enable or disable MMC or SPI"
  42. );