0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #ifndef _CS_PROTOCOL_H
0026 #define _CS_PROTOCOL_H
0027
0028 #include <linux/types.h>
0029 #include <linux/ioctl.h>
0030
0031
0032 #define CS_DEV_FILE_NAME "/dev/cmt_speech"
0033
0034
0035 #define CS_IF_VERSION 2
0036
0037
0038 #define CS_CMD_SHIFT 28
0039 #define CS_DOMAIN_SHIFT 24
0040
0041 #define CS_CMD_MASK 0xff000000
0042 #define CS_PARAM_MASK 0xffffff
0043
0044 #define CS_CMD(id, dom) \
0045 (((id) << CS_CMD_SHIFT) | ((dom) << CS_DOMAIN_SHIFT))
0046
0047 #define CS_ERROR CS_CMD(1, 0)
0048 #define CS_RX_DATA_RECEIVED CS_CMD(2, 0)
0049 #define CS_TX_DATA_READY CS_CMD(3, 0)
0050 #define CS_TX_DATA_SENT CS_CMD(4, 0)
0051
0052
0053 #define CS_ERR_PEER_RESET 0
0054
0055
0056
0057
0058 #define CS_FEAT_TSTAMP_RX_CTRL (1 << 0)
0059 #define CS_FEAT_ROLLING_RX_COUNTER (2 << 0)
0060
0061
0062 #define CS_STATE_CLOSED 0
0063 #define CS_STATE_OPENED 1
0064 #define CS_STATE_CONFIGURED 2
0065
0066
0067 #define CS_MAX_BUFFERS_SHIFT 4
0068 #define CS_MAX_BUFFERS (1 << CS_MAX_BUFFERS_SHIFT)
0069
0070
0071 struct cs_buffer_config {
0072 __u32 rx_bufs;
0073 __u32 tx_bufs;
0074 __u32 buf_size;
0075 __u32 flags;
0076 __u32 reserved[4];
0077 };
0078
0079
0080
0081
0082
0083 struct cs_timestamp {
0084 __u32 tv_sec;
0085 __u32 tv_nsec;
0086 };
0087
0088
0089
0090
0091
0092 struct cs_mmap_config_block {
0093 __u32 reserved1;
0094 __u32 buf_size;
0095 __u32 rx_bufs;
0096 __u32 tx_bufs;
0097 __u32 reserved2;
0098
0099 __u32 rx_offsets[CS_MAX_BUFFERS];
0100 __u32 tx_offsets[CS_MAX_BUFFERS];
0101 __u32 rx_ptr;
0102 __u32 rx_ptr_boundary;
0103 __u32 reserved3[2];
0104
0105 struct cs_timestamp tstamp_rx_ctrl;
0106 };
0107
0108 #define CS_IO_MAGIC 'C'
0109
0110 #define CS_IOW(num, dtype) _IOW(CS_IO_MAGIC, num, dtype)
0111 #define CS_IOR(num, dtype) _IOR(CS_IO_MAGIC, num, dtype)
0112 #define CS_IOWR(num, dtype) _IOWR(CS_IO_MAGIC, num, dtype)
0113 #define CS_IO(num) _IO(CS_IO_MAGIC, num)
0114
0115 #define CS_GET_STATE CS_IOR(21, unsigned int)
0116 #define CS_SET_WAKELINE CS_IOW(23, unsigned int)
0117 #define CS_GET_IF_VERSION CS_IOR(30, unsigned int)
0118 #define CS_CONFIG_BUFS CS_IOW(31, struct cs_buffer_config)
0119
0120 #endif