upstream u-boot with additional patches for our devices/boards: https://lists.denx.de/pipermail/u-boot/2017-March/282789.html (AXP crashes) ; Gbit ethernet patch for some LIME2 revisions ; with SPI flash support
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
u-boot/board/linkstation/hwctl.c

136 lines
2.8 KiB

/*
* 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 */
}