* Support for GESPAC PCIPPC2 board
+* added command to switch LSB on LWMON boards
+
* increased IDE_TIME_OUT as needed on some boards
* Renamed board/ivms8 directory into board/ivm to fit better with new
setenv ("keybd", keybd_env);
return 0;
}
+
+/* Read and set LSB switch */
+#define CFG_PC_TXD1_ENA 0x0008
+
+int do_lsb (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
+{
+ uchar val;
+ immap_t *immr = (immap_t *)CFG_IMMR;
+
+ switch (argc) {
+ case 1: /* lsb - print setting */
+ val = pic_read (0x60);
+ printf ("LSB is o%s\n", (val & 0x20) ? "n" : "ff");
+ return 0;
+ case 2: /* lsb on or lsb off - set switch */
+ val = pic_read (0x60);
+
+ if (strcmp(argv[1],"on") == 0) {
+ val |= 0x20;
+ immr->im_ioport.iop_pcpar &= ~(CFG_PC_TXD1_ENA);
+ immr->im_ioport.iop_pcdat |= CFG_PC_TXD1_ENA;
+ immr->im_ioport.iop_pcdir |= CFG_PC_TXD1_ENA;
+ } else if (strcmp(argv[1],"off") == 0) {
+ val &= ~0x20;
+ immr->im_ioport.iop_pcpar &= ~(CFG_PC_TXD1_ENA);
+ immr->im_ioport.iop_pcdat &= ~(CFG_PC_TXD1_ENA);
+ immr->im_ioport.iop_pcdir |= CFG_PC_TXD1_ENA;
+ } else {
+ break;
+ }
+ pic_write (0x60, val);
+ return 0;
+ default:
+ break;
+ }
+ printf ("Usage:\n%s\n", cmdtp->usage);
+ return 1;
+}
+
#endif /* CFG_CMD_BSP */
/*-----------------------------------------------------------------------
"kbd", 3, 1, 1, do_kbd, \
"kbd - read keyboard status\n", \
NULL \
+), MK_CMD_TBL_ENTRY( \
+ "lsb", 3, 2, 1, do_lsb, \
+ "lsb - check and set LSB switch\n", \
+ "on - switch LSB on\n" \
+ "lsb off - switch LSB off\n" \
+ "lsb - print current setting\n" \
),
int do_pic (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[]);
int do_kbd (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[]);
+int do_lsb (cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[]);
#endif /* CONFIG_LWMON */
/* ----------------------------------------------------------------------------*/