diff options
| -rw-r--r-- | arch/cris/include/asm/sync_serial.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/arch/cris/include/asm/sync_serial.h b/arch/cris/include/asm/sync_serial.h index d87c24df2b38..7f827fea30e7 100644 --- a/arch/cris/include/asm/sync_serial.h +++ b/arch/cris/include/asm/sync_serial.h | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #define SSP_OPOLARITY _IOR('S', 4, unsigned int) | 19 | #define SSP_OPOLARITY _IOR('S', 4, unsigned int) |
| 20 | #define SSP_SPI _IOR('S', 5, unsigned int) | 20 | #define SSP_SPI _IOR('S', 5, unsigned int) |
| 21 | #define SSP_INBUFCHUNK _IOR('S', 6, unsigned int) | 21 | #define SSP_INBUFCHUNK _IOR('S', 6, unsigned int) |
| 22 | #define SSP_INPUT _IOR('S', 7, unsigned int) | ||
| 22 | 23 | ||
| 23 | /* Values for SSP_SPEED */ | 24 | /* Values for SSP_SPEED */ |
| 24 | #define SSP150 0 | 25 | #define SSP150 0 |
| @@ -37,6 +38,7 @@ | |||
| 37 | #define SSP921600 13 | 38 | #define SSP921600 13 |
| 38 | #define SSP3125000 14 | 39 | #define SSP3125000 14 |
| 39 | #define CODEC 15 | 40 | #define CODEC 15 |
| 41 | #define CODEC_f32768 16 | ||
| 40 | 42 | ||
| 41 | #define FREQ_4MHz 0 | 43 | #define FREQ_4MHz 0 |
| 42 | #define FREQ_2MHz 1 | 44 | #define FREQ_2MHz 1 |
| @@ -46,9 +48,14 @@ | |||
| 46 | #define FREQ_128kHz 5 | 48 | #define FREQ_128kHz 5 |
| 47 | #define FREQ_64kHz 6 | 49 | #define FREQ_64kHz 6 |
| 48 | #define FREQ_32kHz 7 | 50 | #define FREQ_32kHz 7 |
| 51 | /* FREQ_* with values where bit (value & 0x10) is set are */ | ||
| 52 | /* used for CODEC_f32768 */ | ||
| 53 | #define FREQ_4096kHz 16 /* CODEC_f32768 */ | ||
| 49 | 54 | ||
| 50 | /* Used by application to set CODEC divider, word rate and frame rate */ | 55 | /* Used by application to set CODEC divider, word rate and frame rate */ |
| 51 | #define CODEC_VAL(freq, clk_per_sync, sync_per_frame) (CODEC | (freq << 8) | (clk_per_sync << 16) | (sync_per_frame << 28)) | 56 | #define CODEC_VAL(freq, clk_per_sync, sync_per_frame) \ |
| 57 | ((CODEC + ((freq & 0x10) >> 4)) | (freq << 8) | \ | ||
| 58 | (clk_per_sync << 16) | (sync_per_frame << 28)) | ||
| 52 | 59 | ||
| 53 | /* Used by driver to extract speed */ | 60 | /* Used by driver to extract speed */ |
| 54 | #define GET_SPEED(x) (x & 0xff) | 61 | #define GET_SPEED(x) (x & 0xff) |
| @@ -68,6 +75,7 @@ | |||
| 68 | #define NORMAL_SYNC 1 | 75 | #define NORMAL_SYNC 1 |
| 69 | #define EARLY_SYNC 2 | 76 | #define EARLY_SYNC 2 |
| 70 | #define SECOND_WORD_SYNC 0x40000 | 77 | #define SECOND_WORD_SYNC 0x40000 |
| 78 | #define LATE_SYNC 0x80000 | ||
| 71 | 79 | ||
| 72 | #define BIT_SYNC 4 | 80 | #define BIT_SYNC 4 |
| 73 | #define WORD_SYNC 8 | 81 | #define WORD_SYNC 8 |
| @@ -104,4 +112,21 @@ | |||
| 104 | /* Values for SSP_INBUFCHUNK */ | 112 | /* Values for SSP_INBUFCHUNK */ |
| 105 | /* plain integer with the size of DMA chunks */ | 113 | /* plain integer with the size of DMA chunks */ |
| 106 | 114 | ||
| 115 | /* To ensure that the timestamps are aligned with the data being read | ||
| 116 | * the read length MUST be a multiple of the length of the DMA buffers. | ||
| 117 | * | ||
| 118 | * Use a multiple of SSP_INPUT_CHUNK_SIZE defined below. | ||
| 119 | */ | ||
| 120 | #define SSP_INPUT_CHUNK_SIZE 256 | ||
| 121 | |||
| 122 | /* Request struct to pass through the ioctl interface to read | ||
| 123 | * data with timestamps. | ||
| 124 | */ | ||
| 125 | struct ssp_request { | ||
| 126 | char __user *buf; /* Where to put the data. */ | ||
| 127 | size_t len; /* Size of buf. MUST be a multiple of */ | ||
| 128 | /* SSP_INPUT_CHUNK_SIZE! */ | ||
| 129 | struct timespec ts; /* The time the data was sampled. */ | ||
| 130 | }; | ||
| 131 | |||
| 107 | #endif | 132 | #endif |
