]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - common/cmd_dataflash_mmc_mux.c
MAINTAINERS: fix Andreas Bießmann AVR32 entry
[karo-tx-uboot.git] / common / cmd_dataflash_mmc_mux.c
1 /*
2  * (C) Copyright 2000
3  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 #include <common.h>
25 #include <command.h>
26
27 static int mmc_nspi (const char *);
28
29 int do_dataflash_mmc_mux (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
30 {
31         switch (argc) {
32         case 2:                 /* on / off     */
33                 switch (mmc_nspi (argv[1])) {
34                 case 0: AT91F_SelectSPI ();
35                         break;
36                 case 1: AT91F_SelectMMC ();
37                         break;
38                 }
39         case 1:                 /* get status */
40                 printf ("Mux is configured to be %s\n",
41                         AT91F_GetMuxStatus () ? "MMC" : "SPI");
42                 return 0;
43         default:
44                 return CMD_RET_USAGE;
45         }
46         return 0;
47 }
48
49 static int mmc_nspi (const char *s)
50 {
51         if (strcmp (s, "mmc") == 0) {
52                 return 1;
53         } else if (strcmp (s, "spi") == 0) {
54                 return 0;
55         }
56         return -1;
57 }
58
59 U_BOOT_CMD(
60         dataflash_mmc_mux, 2, 1, do_dataflash_mmc_mux,
61         "enable or disable MMC or SPI\n",
62         "[mmc, spi]\n"
63         "    - enable or disable MMC or SPI"
64 );