Initial revision
This commit is contained in:
parent
4483b581da
commit
71fc6c551d
57
board/bmw/m48t59y.h
Normal file
57
board/bmw/m48t59y.h
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* SGS M48-T59Y TOD/NVRAM Driver
|
||||||
|
*
|
||||||
|
* (C) Copyright 2000
|
||||||
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||||
|
*
|
||||||
|
* (C) Copyright 1999, by Curt McDowell, 08-06-99, Broadcom Corp.
|
||||||
|
*
|
||||||
|
* (C) Copyright 2001, James Dougherty, 07/18/01, Broadcom Corp.
|
||||||
|
*
|
||||||
|
* See file CREDITS for list of people who contributed to this
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
* MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __M48_T59_Y_H
|
||||||
|
#define __M48_T59_Y_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* M48 T59Y -Timekeeping Battery backed SRAM.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int m48_tod_init(void);
|
||||||
|
|
||||||
|
int m48_tod_set(int year,
|
||||||
|
int month,
|
||||||
|
int day,
|
||||||
|
int hour,
|
||||||
|
int minute,
|
||||||
|
int second);
|
||||||
|
|
||||||
|
int m48_tod_get(int *year,
|
||||||
|
int *month,
|
||||||
|
int *day,
|
||||||
|
int *hour,
|
||||||
|
int *minute,
|
||||||
|
int *second);
|
||||||
|
|
||||||
|
int m48_tod_get_second(void);
|
||||||
|
|
||||||
|
void m48_watchdog_arm(int usec);
|
||||||
|
|
||||||
|
#endif /*!__M48_T59_Y_H */
|
60
board/bmw/ns16550.c
Normal file
60
board/bmw/ns16550.c
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* COM1 NS16550 support
|
||||||
|
* originally from linux source (arch/ppc/boot/ns16550.c)
|
||||||
|
* modified to use CFG_ISA_MEM and new defines
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include "ns16550.h"
|
||||||
|
|
||||||
|
typedef struct NS16550 *NS16550_t;
|
||||||
|
|
||||||
|
const NS16550_t COM_PORTS[] = { (NS16550_t) ((CFG_EUMB_ADDR) + 0x4500), (NS16550_t) ((CFG_EUMB_ADDR) + 0x4600)};
|
||||||
|
|
||||||
|
volatile struct NS16550 *
|
||||||
|
NS16550_init(int chan, int baud_divisor)
|
||||||
|
{
|
||||||
|
volatile struct NS16550 *com_port;
|
||||||
|
com_port = (struct NS16550 *) COM_PORTS[chan];
|
||||||
|
com_port->ier = 0x00;
|
||||||
|
com_port->lcr = LCR_BKSE; /* Access baud rate */
|
||||||
|
com_port->dll = baud_divisor & 0xff; /* 9600 baud */
|
||||||
|
com_port->dlm = (baud_divisor >> 8) & 0xff;
|
||||||
|
com_port->lcr = LCR_8N1; /* 8 data, 1 stop, no parity */
|
||||||
|
com_port->mcr = MCR_RTS; /* RTS/DTR */
|
||||||
|
com_port->fcr = FCR_FIFO_EN | FCR_RXSR | FCR_TXSR; /* Clear & enable FIFOs */
|
||||||
|
return (com_port);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
NS16550_reinit(volatile struct NS16550 *com_port, int baud_divisor)
|
||||||
|
{
|
||||||
|
com_port->ier = 0x00;
|
||||||
|
com_port->lcr = LCR_BKSE; /* Access baud rate */
|
||||||
|
com_port->dll = baud_divisor & 0xff; /* 9600 baud */
|
||||||
|
com_port->dlm = (baud_divisor >> 8) & 0xff;
|
||||||
|
com_port->lcr = LCR_8N1; /* 8 data, 1 stop, no parity */
|
||||||
|
com_port->mcr = MCR_RTS; /* RTS/DTR */
|
||||||
|
com_port->fcr = FCR_FIFO_EN | FCR_RXSR | FCR_TXSR; /* Clear & enable FIFOs */
|
||||||
|
}
|
||||||
|
|
||||||
|
void NS16550_putc(volatile struct NS16550 *com_port, unsigned char c)
|
||||||
|
{
|
||||||
|
while ((com_port->lsr & LSR_THRE) == 0) ;
|
||||||
|
com_port->thr = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char
|
||||||
|
NS16550_getc(volatile struct NS16550 *com_port)
|
||||||
|
{
|
||||||
|
while ((com_port->lsr & LSR_DR) == 0) ;
|
||||||
|
return (com_port->rbr);
|
||||||
|
}
|
||||||
|
|
||||||
|
int NS16550_tstc(volatile struct NS16550 *com_port)
|
||||||
|
{
|
||||||
|
return ((com_port->lsr & LSR_DR) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
81
board/bmw/ns16550.h
Normal file
81
board/bmw/ns16550.h
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
* NS16550 Serial Port
|
||||||
|
* originally from linux source (arch/ppc/boot/ns16550.h)
|
||||||
|
* modified slightly to
|
||||||
|
* have addresses as offsets from CFG_ISA_BASE
|
||||||
|
* added a few more definitions
|
||||||
|
* added prototypes for ns16550.c
|
||||||
|
* reduced no of com ports to 2
|
||||||
|
* modifications (c) Rob Taylor, Flying Pig Systems. 2000.
|
||||||
|
* further modified to support the 8245 duart
|
||||||
|
* modifications (c) Paul Jimenez, Musenki, Inc. 2001.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
struct NS16550
|
||||||
|
{
|
||||||
|
unsigned char rbrthrdlb; /* 0 */
|
||||||
|
unsigned char ierdmb; /* 1 */
|
||||||
|
unsigned char iirfcrafr; /* 2 */
|
||||||
|
unsigned char lcr; /* 3 */
|
||||||
|
unsigned char mcr; /* 4 */
|
||||||
|
unsigned char lsr; /* 5 */
|
||||||
|
unsigned char msr; /* 6 */
|
||||||
|
unsigned char scr; /* 7 */
|
||||||
|
unsigned char reserved[2]; /* 8 & 9 */
|
||||||
|
unsigned char dsr; /* 10 */
|
||||||
|
unsigned char dcr; /* 11 */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define rbr rbrthrdlb
|
||||||
|
#define thr rbrthrdlb
|
||||||
|
#define dll rbrthrdlb
|
||||||
|
#define ier ierdmb
|
||||||
|
#define dlm ierdmb
|
||||||
|
#define iir iirfcrafr
|
||||||
|
#define fcr iirfcrafr
|
||||||
|
#define afr iirfcrafr
|
||||||
|
|
||||||
|
#define FCR_FIFO_EN 0x01 /*fifo enable*/
|
||||||
|
#define FCR_RXSR 0x02 /*reciever soft reset*/
|
||||||
|
#define FCR_TXSR 0x04 /*transmitter soft reset*/
|
||||||
|
#define FCR_DMS 0x08 /* DMA Mode Select */
|
||||||
|
|
||||||
|
#define MCR_RTS 0x02 /* Readyu to Send */
|
||||||
|
#define MCR_LOOP 0x10 /* Local loopback mode enable */
|
||||||
|
/* #define MCR_DTR 0x01 noton 8245 duart */
|
||||||
|
/* #define MCR_DMA_EN 0x04 noton 8245 duart */
|
||||||
|
/* #define MCR_TX_DFR 0x08 noton 8245 duart */
|
||||||
|
|
||||||
|
#define LCR_WLS_MSK 0x03 /* character length slect mask*/
|
||||||
|
#define LCR_WLS_5 0x00 /* 5 bit character length */
|
||||||
|
#define LCR_WLS_6 0x01 /* 6 bit character length */
|
||||||
|
#define LCR_WLS_7 0x02 /* 7 bit character length */
|
||||||
|
#define LCR_WLS_8 0x03 /* 8 bit character length */
|
||||||
|
#define LCR_STB 0x04 /* Number of stop Bits, off = 1, on = 1.5 or 2) */
|
||||||
|
#define LCR_PEN 0x08 /* Parity eneble*/
|
||||||
|
#define LCR_EPS 0x10 /* Even Parity Select*/
|
||||||
|
#define LCR_STKP 0x20 /* Stick Parity*/
|
||||||
|
#define LCR_SBRK 0x40 /* Set Break*/
|
||||||
|
#define LCR_BKSE 0x80 /* Bank select enable - aka DLAB on 8245 */
|
||||||
|
|
||||||
|
#define LSR_DR 0x01 /* Data ready */
|
||||||
|
#define LSR_OE 0x02 /* Overrun */
|
||||||
|
#define LSR_PE 0x04 /* Parity error */
|
||||||
|
#define LSR_FE 0x08 /* Framing error */
|
||||||
|
#define LSR_BI 0x10 /* Break */
|
||||||
|
#define LSR_THRE 0x20 /* Xmit holding register empty */
|
||||||
|
#define LSR_TEMT 0x40 /* Xmitter empty */
|
||||||
|
#define LSR_ERR 0x80 /* Error */
|
||||||
|
|
||||||
|
/* useful defaults for LCR*/
|
||||||
|
#define LCR_8N1 0x03
|
||||||
|
|
||||||
|
|
||||||
|
volatile struct NS16550 * NS16550_init(int chan, int baud_divisor);
|
||||||
|
void NS16550_putc(volatile struct NS16550 *com_port, unsigned char c);
|
||||||
|
unsigned char NS16550_getc(volatile struct NS16550 *com_port);
|
||||||
|
int NS16550_tstc(volatile struct NS16550 *com_port);
|
||||||
|
void NS16550_reinit(volatile struct NS16550 *com_port, int baud_divisor);
|
||||||
|
|
59
drivers/bcm570x_bits.h
Normal file
59
drivers/bcm570x_bits.h
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2000 Broadcom */
|
||||||
|
/* Corporation. */
|
||||||
|
/* All rights reserved. */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation, located in the file LICENSE. */
|
||||||
|
/* */
|
||||||
|
/* History: */
|
||||||
|
/* 02/25/00 Hav Khauv Initial version. */
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef BITS_H
|
||||||
|
#define BITS_H
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/* Bit Mask definitions */
|
||||||
|
/******************************************************************************/
|
||||||
|
#define BIT_NONE 0x00
|
||||||
|
#define BIT_0 0x01
|
||||||
|
#define BIT_1 0x02
|
||||||
|
#define BIT_2 0x04
|
||||||
|
#define BIT_3 0x08
|
||||||
|
#define BIT_4 0x10
|
||||||
|
#define BIT_5 0x20
|
||||||
|
#define BIT_6 0x40
|
||||||
|
#define BIT_7 0x80
|
||||||
|
#define BIT_8 0x0100
|
||||||
|
#define BIT_9 0x0200
|
||||||
|
#define BIT_10 0x0400
|
||||||
|
#define BIT_11 0x0800
|
||||||
|
#define BIT_12 0x1000
|
||||||
|
#define BIT_13 0x2000
|
||||||
|
#define BIT_14 0x4000
|
||||||
|
#define BIT_15 0x8000
|
||||||
|
#define BIT_16 0x010000
|
||||||
|
#define BIT_17 0x020000
|
||||||
|
#define BIT_18 0x040000
|
||||||
|
#define BIT_19 0x080000
|
||||||
|
#define BIT_20 0x100000
|
||||||
|
#define BIT_21 0x200000
|
||||||
|
#define BIT_22 0x400000
|
||||||
|
#define BIT_23 0x800000
|
||||||
|
#define BIT_24 0x01000000
|
||||||
|
#define BIT_25 0x02000000
|
||||||
|
#define BIT_26 0x04000000
|
||||||
|
#define BIT_27 0x08000000
|
||||||
|
#define BIT_28 0x10000000
|
||||||
|
#define BIT_29 0x20000000
|
||||||
|
#define BIT_30 0x40000000
|
||||||
|
#define BIT_31 0x80000000
|
||||||
|
|
||||||
|
#endif /* BITS_H */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user