OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [LINUX_2_4_26_OR32/] [linux/] [linux-2.4/] [include/] [asm-m68k/] [atari_SCCserial.h] - Rev 1780

Go to most recent revision | Compare with Previous | Blame | View Log

#ifndef _ATARI_SCCSERIAL_H
#define _ATARI_SCCSERIAL_H
 
/* Special configuration ioctls for the Atari SCC5380 Serial
 * Communications Controller
 */
 
/* ioctl command codes */
 
#define TIOCGATSCC	0x54c0	/* get SCC configuration */
#define TIOCSATSCC	0x54c1	/* set SCC configuration */
#define TIOCDATSCC	0x54c2	/* reset configuration to defaults */
 
/* Clock sources */
 
#define CLK_RTxC	0
#define CLK_TRxC	1
#define CLK_PCLK	2
 
/* baud_bases for the common clocks in the Atari. These are the real
 * frequencies divided by 16.
 */
 
#define SCC_BAUD_BASE_TIMC	19200	/* 0.3072 MHz from TT-MFP, Timer C */
#define SCC_BAUD_BASE_BCLK	153600	/* 2.4576 MHz */
#define SCC_BAUD_BASE_PCLK4	229500	/* 3.6720 MHz */
#define SCC_BAUD_BASE_PCLK	503374	/* 8.0539763 MHz */
#define SCC_BAUD_BASE_NONE	0		/* for not connected or unused
						 * clock sources */
 
#define SCC_BAUD_BASE_M147_PCLK	312500	/* 5 MHz */
#define SCC_BAUD_BASE_M147	312500	/* 5 MHz */
#define SCC_BAUD_BASE_MVME_PCLK	781250	/* 12.5 MHz */
#define SCC_BAUD_BASE_MVME	625000	/* 10.000 MHz */
#define SCC_BAUD_BASE_BVME_PCLK	781250	/* 12.5 MHz */   /* XXX ??? */
#define SCC_BAUD_BASE_BVME	460800	/* 7.3728 MHz */
 
/* The SCC configuration structure */
 
struct atari_SCCserial {
	unsigned	RTxC_base;	/* base_baud of RTxC */
	unsigned	TRxC_base;	/* base_baud of TRxC */
	unsigned	PCLK_base;	/* base_baud of PCLK, for both channels! */
	struct {
		unsigned clksrc;	/* CLK_RTxC, CLK_TRxC or CLK_PCLK */
		unsigned divisor;	/* divisor for base baud, valid values:
					 * see below */
	} baud_table[17];		/* For 50, 75, 110, 135, 150, 200, 300,
					 * 600, 1200, 1800, 2400, 4800, 9600,
					 * 19200, 38400, 57600 and 115200 bps. The
					 * last two could be replaced by other
					 * rates > 38400 if they're not possible.
					 */
};
 
/* The following divisors are valid:
 *
 *   - CLK_RTxC: 1 or even (1, 2 and 4 are the direct modes, > 4 use
 *               the BRG)
 *
 *   - CLK_TRxC: 1, 2 or 4 (no BRG, only direct modes possible)
 *
 *   - CLK_PCLK: >= 4 and even (no direct modes, only BRG)
 *
 */
 
#endif /* _ATARI_SCCSERIAL_H */
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.