123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- /*
- * hwctl.c
- *
- * LinkStation HW Control Driver
- *
- * Copyright (C) 2001-2004 BUFFALO INC.
- *
- * This software may be used and distributed according to the terms of
- * the GNU General Public License (GPL), incorporated herein by reference.
- * Drivers based on or derived from this code fall under the GPL and must
- * retain the authorship, copyright and license notice. This file is not
- * a complete program and may only be used when the entire operating
- * system is licensed under the GPL.
- *
- */
- #include <config.h>
- #include <common.h>
- #include <command.h>
- #include <asm/io.h>
- #define mdelay(n) udelay((n)*1000)
- #define AVR_PORT CONFIG_SYS_NS16550_COM2
- /* 2005.5.10 BUFFALO add */
- /*--------------------------------------------------------------*/
- static inline void miconCntl_SendUart(unsigned char dat)
- {
- out_8((unsigned char *)AVR_PORT, dat);
- mdelay(1);
- }
- /*--------------------------------------------------------------*/
- void miconCntl_SendCmd(unsigned char dat)
- {
- int i;
- for (i=0; i<4; i++){
- miconCntl_SendUart(dat);
- }
- }
- /*--------------------------------------------------------------*/
- void miconCntl_FanLow(void)
- {
- #ifdef CONFIG_HTGL
- miconCntl_SendCmd(0x5C);
- #endif
- }
- /*--------------------------------------------------------------*/
- void miconCntl_FanHigh(void)
- {
- #ifdef CONFIG_HTGL
- miconCntl_SendCmd(0x5D);
- #endif
- }
- /*--------------------------------------------------------------*/
- /* 1000Mbps */
- void miconCntl_Eth1000M(int up)
- {
- #ifdef CONFIG_HTGL
- if (up)
- miconCntl_SendCmd(0x93);
- else
- miconCntl_SendCmd(0x92);
- #else
- if (up)
- miconCntl_SendCmd(0x5D);
- else
- miconCntl_SendCmd(0x5C);
- #endif
- }
- /*--------------------------------------------------------------*/
- /* 100Mbps */
- void miconCntl_Eth100M(int up)
- {
- #ifdef CONFIG_HTGL
- if (up)
- miconCntl_SendCmd(0x91);
- else
- miconCntl_SendCmd(0x90);
- #else
- if (up)
- miconCntl_SendCmd(0x5C);
- #endif
- }
- /*--------------------------------------------------------------*/
- /* 10Mbps */
- void miconCntl_Eth10M(int up)
- {
- #ifdef CONFIG_HTGL
- if (up)
- miconCntl_SendCmd(0x8F);
- else
- miconCntl_SendCmd(0x8E);
- #else
- if (up)
- miconCntl_SendCmd(0x5C);
- #endif
- }
- /*--------------------------------------------------------------*/
- /* */
- void miconCntl_5f(void)
- {
- miconCntl_SendCmd(0x5F);
- mdelay(100);
- }
- /*--------------------------------------------------------------*/
- /* "reboot start" signal */
- void miconCntl_Reboot(void)
- {
- miconCntl_SendCmd(0x43);
- }
- /*--------------------------------------------------------------*/
- /* Disable watchdog timer */
- void miconCntl_DisWDT(void)
- {
- miconCntl_SendCmd(0x41); /* A */
- miconCntl_SendCmd(0x46); /* F */
- miconCntl_SendCmd(0x4A); /* J */
- miconCntl_SendCmd(0x3E); /* > */
- miconCntl_SendCmd(0x56); /* V */
- miconCntl_SendCmd(0x3E); /* > */
- miconCntl_SendCmd(0x5A); /* Z */
- miconCntl_SendCmd(0x56); /* V */
- miconCntl_SendCmd(0x4B); /* K */
- }
|