dataflash_mmc_mux.c 933 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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(struct cmd_tbl *cmdtp, int flag, int argc,
  10. char *const argv[])
  11. {
  12. switch (argc) {
  13. case 2: /* on / off */
  14. switch (mmc_nspi (argv[1])) {
  15. case 0: AT91F_SelectSPI ();
  16. break;
  17. case 1: AT91F_SelectMMC ();
  18. break;
  19. }
  20. case 1: /* get status */
  21. printf ("Mux is configured to be %s\n",
  22. AT91F_GetMuxStatus () ? "MMC" : "SPI");
  23. return 0;
  24. default:
  25. return CMD_RET_USAGE;
  26. }
  27. return 0;
  28. }
  29. static int mmc_nspi (const char *s)
  30. {
  31. if (strcmp (s, "mmc") == 0) {
  32. return 1;
  33. } else if (strcmp (s, "spi") == 0) {
  34. return 0;
  35. }
  36. return -1;
  37. }
  38. U_BOOT_CMD(
  39. dataflash_mmc_mux, 2, 1, do_dataflash_mmc_mux,
  40. "enable or disable MMC or SPI\n",
  41. "[mmc, spi]\n"
  42. " - enable or disable MMC or SPI"
  43. );