atari_SCCserial.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _ATARI_SCCSERIAL_H
  2. #define _ATARI_SCCSERIAL_H
  3. /* Special configuration ioctls for the Atari SCC5380 Serial
  4.  * Communications Controller
  5.  */
  6. /* ioctl command codes */
  7. #define TIOCGATSCC 0x54c0 /* get SCC configuration */
  8. #define TIOCSATSCC 0x54c1 /* set SCC configuration */
  9. #define TIOCDATSCC 0x54c2 /* reset configuration to defaults */
  10. /* Clock sources */
  11. #define CLK_RTxC 0
  12. #define CLK_TRxC 1
  13. #define CLK_PCLK 2
  14. /* baud_bases for the common clocks in the Atari. These are the real
  15.  * frequencies divided by 16.
  16.  */
  17.    
  18. #define SCC_BAUD_BASE_TIMC 19200 /* 0.3072 MHz from TT-MFP, Timer C */
  19. #define SCC_BAUD_BASE_BCLK 153600 /* 2.4576 MHz */
  20. #define SCC_BAUD_BASE_PCLK4 229500 /* 3.6720 MHz */
  21. #define SCC_BAUD_BASE_PCLK 503374 /* 8.0539763 MHz */
  22. #define SCC_BAUD_BASE_NONE 0 /* for not connected or unused
  23.  * clock sources */
  24. #define SCC_BAUD_BASE_M147_PCLK 312500 /* 5 MHz */
  25. #define SCC_BAUD_BASE_M147 312500 /* 5 MHz */
  26. #define SCC_BAUD_BASE_MVME_PCLK 781250 /* 12.5 MHz */
  27. #define SCC_BAUD_BASE_MVME 625000 /* 10.000 MHz */
  28. #define SCC_BAUD_BASE_BVME_PCLK 781250 /* 12.5 MHz */   /* XXX ??? */
  29. #define SCC_BAUD_BASE_BVME 460800 /* 7.3728 MHz */
  30. /* The SCC configuration structure */
  31. struct atari_SCCserial {
  32. unsigned RTxC_base; /* base_baud of RTxC */
  33. unsigned TRxC_base; /* base_baud of TRxC */
  34. unsigned PCLK_base; /* base_baud of PCLK, for both channels! */
  35. struct {
  36. unsigned clksrc; /* CLK_RTxC, CLK_TRxC or CLK_PCLK */
  37. unsigned divisor; /* divisor for base baud, valid values:
  38.  * see below */
  39. } baud_table[17]; /* For 50, 75, 110, 135, 150, 200, 300,
  40.  * 600, 1200, 1800, 2400, 4800, 9600,
  41.  * 19200, 38400, 57600 and 115200 bps. The
  42.  * last two could be replaced by other
  43.  * rates > 38400 if they're not possible.
  44.  */
  45. };
  46. /* The following divisors are valid:
  47.  *
  48.  *   - CLK_RTxC: 1 or even (1, 2 and 4 are the direct modes, > 4 use
  49.  *               the BRG)
  50.  *
  51.  *   - CLK_TRxC: 1, 2 or 4 (no BRG, only direct modes possible)
  52.  *
  53.  *   - CLK_PCLK: >= 4 and even (no direct modes, only BRG)
  54.  *
  55.  */
  56. #endif /* _ATARI_SCCSERIAL_H */