diff options
author | Wolfgang Denk <wd@pollux.(none)> | 2005-09-26 00:44:15 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@pollux.(none)> | 2005-09-26 00:44:15 +0200 |
commit | e6f222815c118c1249c763705c49867004727c5b (patch) | |
tree | 914cbce18d45f224a4f927356f6d301d73ae3362 /common | |
parent | a912733e9b86f787f8efe6c805662476be9c1e24 (diff) |
Add iopset command on mpc8xx
Patch by Daniel Eisenhut, 25 Mar 2005
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_immap.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/common/cmd_immap.c b/common/cmd_immap.c index abf5590b46..9db5f2cc46 100644 --- a/common/cmd_immap.c +++ b/common/cmd_immap.c @@ -34,6 +34,7 @@ #if defined(CONFIG_8xx) #include <asm/8xx_immap.h> #include <commproc.h> +#include <asm/iopin_8xx.h> #elif defined(CONFIG_8260) #include <asm/immap_8260.h> #include <asm/cpm_8260.h> @@ -316,12 +317,11 @@ do_iopinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) int do_iopset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { -#if defined(CONFIG_8260) uint rcode = 0; static uint port = 0; static uint pin = 0; static uint value = 0; - static enum { DIR, PAR, SOR, ODR, DAT } cmd = DAT; + static enum { DIR, PAR, SOR, ODR, DAT, INT } cmd = DAT; iopin_t iopin; if (argc != 5) { @@ -356,6 +356,11 @@ do_iopset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) case 's': cmd = SOR; break; +#if defined(CONFIG_8xx) + case 'i': + cmd = INT; + break; +#endif default: printf ("iopset: unknown command %s\n", argv[3]); rcode = 1; @@ -400,14 +405,18 @@ do_iopset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) else iopin_set_low (&iopin); break; +#if defined(CONFIG_8xx) + case INT: + if (value) + iopin_set_falledge (&iopin); + else + iopin_set_anyedge (&iopin); + break; +#endif } } return rcode; -#else - unimplemented (cmdtp, flag, argc, argv); - return 0; -#endif } int |