cs4215.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:4k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* $Id: cs4215.h,v 1.8 2000/10/27 07:01:38 uzi Exp $
  2.  * drivers/sbus/audio/cs4215.h
  3.  *
  4.  * Copyright (C) 1997 Rudolf Koenig (rfkoenig@immd4.informatik.uni-erlangen.de)
  5.  * Used with dbri.h
  6.  */
  7. #ifndef _CS4215_H_
  8. #define _CS4215_H_
  9. struct cs4215 {
  10. __u8 data[4]; /* Data mode: Time slots 5-8 */
  11. __u8 ctrl[4]; /* Ctrl mode: Time slots 1-4 */
  12. __u8 onboard;
  13. __u8 offset; /* Bit offset from frame sync to time slot 1 */
  14. volatile __u32 status;
  15. volatile __u32 version;
  16. };
  17. /*
  18.  * Control mode first 
  19.  */
  20. /* Time Slot 1, Status register */
  21. #define CS4215_CLB (1<<2) /* Control Latch Bit */
  22. #define CS4215_OLB (1<<3) /* 1: line: 2.0V, speaker 4V */
  23. /* 0: line: 2.8V, speaker 8V */
  24. #define CS4215_MLB (1<<4) /* 1: Microphone: 20dB gain disabled */
  25. #define CS4215_RSRVD_1  (1<<5)
  26. /* Time Slot 2, Data Format Register */
  27. #define CS4215_DFR_LINEAR16 0
  28. #define CS4215_DFR_ULAW 1
  29. #define CS4215_DFR_ALAW 2
  30. #define CS4215_DFR_LINEAR8 3
  31. #define CS4215_DFR_STEREO (1<<2)
  32. static struct {
  33. unsigned short freq;
  34. unsigned char  xtal;
  35. unsigned char  csval;
  36. } CS4215_FREQ[] = {
  37. {  8000, (1<<4), (0<<3) },
  38. { 16000, (1<<4), (1<<3) },
  39. { 27429, (1<<4), (2<<3) }, /* Actually 24428.57 */
  40. { 32000, (1<<4), (3<<3) },
  41. /* {  NA, (1<<4), (4<<3) }, */
  42. /* {  NA, (1<<4), (5<<3) }, */
  43. { 48000, (1<<4), (6<<3) },
  44. {  9600, (1<<4), (7<<3) },
  45. {  5513, (2<<4), (0<<3) }, /* Actually 5512.5 */
  46. { 11025, (2<<4), (1<<3) },
  47. { 18900, (2<<4), (2<<3) },
  48. { 22050, (2<<4), (3<<3) },
  49. { 37800, (2<<4), (4<<3) },
  50. { 44100, (2<<4), (5<<3) },
  51. { 33075, (2<<4), (6<<3) },
  52. {  6615, (2<<4), (7<<3) },
  53. {     0, 0, 0 }
  54. };
  55. #define CS4215_HPF (1<<7) /* High Pass Filter, 1: Enabled */
  56. #define CS4215_12_MASK 0xfcbf /* Mask off reserved bits in slot 1 & 2 */
  57. /* Time Slot 3, Serial Port Control register */
  58. #define CS4215_XEN (1<<0) /* 0: Enable serial output */
  59. #define CS4215_XCLK (1<<1) /* 1: Master mode: Generate SCLK */
  60. #define CS4215_BSEL_64 (0<<2) /* Bitrate: 64 bits per frame */
  61. #define CS4215_BSEL_128 (1<<2)
  62. #define CS4215_BSEL_256 (2<<2)
  63. #define CS4215_MCK_MAST (0<<4) /* Master clock */
  64. #define CS4215_MCK_XTL1 (1<<4) /* 24.576 MHz clock source */
  65. #define CS4215_MCK_XTL2 (2<<4) /* 16.9344 MHz clock source */
  66. #define CS4215_MCK_CLK1 (3<<4) /* Clockin, 256 x Fs */
  67. #define CS4215_MCK_CLK2 (4<<4) /* Clockin, see DFR */
  68. /* Time Slot 4, Test Register */
  69. #define CS4215_DAD (1<<0) /* 0:Digital-Dig loop, 1:Dig-Analog-Dig loop */
  70. #define CS4215_ENL (1<<1) /* Enable Loopback Testing */
  71. /* Time Slot 5, Parallel Port Register */
  72. /* Read only here and the same as the in data mode */
  73. /* Time Slot 6, Reserved  */
  74. /* Time Slot 7, Version Register  */
  75. #define CS4215_VERSION_MASK 0xf /* Known versions 0/C, 1/D, 2/E */
  76. /* Time Slot 8, Reserved  */
  77. /*
  78.  * Data mode
  79.  */
  80. /* Time Slot 1-2: Left Channel Data, 2-3: Right Channel Data  */
  81. /* Time Slot 5, Output Setting  */
  82. #define CS4215_LO(v) v /* Left Output Attenuation 0x3f: -94.5 dB */
  83. #define CS4215_LE (1<<6) /* Line Out Enable */
  84. #define CS4215_HE (1<<7) /* Headphone Enable */
  85. /* Time Slot 6, Output Setting  */
  86. #define CS4215_RO(v) v /* Right Output Attenuation 0x3f: -94.5 dB */
  87. #define CS4215_SE (1<<6) /* Speaker Enable */
  88. #define CS4215_ADI (1<<7) /* A/D Data Invalid: Busy in calibration */
  89. /* Time Slot 7, Input Setting */
  90. #define CS4215_LG(v) v /* Left Gain Setting 0xf: 22.5 dB */
  91. #define CS4215_IS (1<<4) /* Input Select: 1=Microphone, 0=Line */
  92. #define CS4215_OVR (1<<5) /* 1: Overrange condition occurred */
  93. #define CS4215_PIO0 (1<<6) /* Parallel I/O 0 */
  94. #define CS4215_PIO1 (1<<7)
  95. /* Time Slot 8, Input Setting */
  96. #define CS4215_RG(v) v /* Right Gain Setting 0xf: 22.5 dB */
  97. #define CS4215_MA(v) (v<<4) /* Monitor Path Attenuation 0xf: mute */
  98. #endif /* _CS4215_H_ */