Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.8.
  1#ifndef _IOCTL_H_
  2#define _IOCTL_H_
  3
  4struct bcm_rdm_buffer {
  5	unsigned long Register;
  6	unsigned long Length;
  7} __packed;
  8
  9struct bcm_wrm_buffer {
 10	unsigned long Register;
 11	unsigned long Length;
 12	unsigned char Data[4];
 13} __packed;
 14
 15struct bcm_ioctl_buffer {
 16	void __user *InputBuffer;
 17	unsigned long InputLength;
 18	void __user *OutputBuffer;
 19	unsigned long OutputLength;
 20} __packed;
 21
 22struct bcm_gpio_info {
 23	unsigned int uiGpioNumber; /* valid numbers 0-15 */
 24	unsigned int uiGpioValue; /* 1 set ; 0 not  set */
 25} __packed;
 26
 27struct bcm_user_thread_req {
 28	/* 0->Inactivate LED thread. */
 29	/* 1->Activate the LED thread */
 30	unsigned int ThreadState;
 31} __packed;
 32
 33#define LED_THREAD_ACTIVATION_REQ  1
 34#define BCM_IOCTL				'k'
 35#define IOCTL_SEND_CONTROL_MESSAGE		_IOW(BCM_IOCTL,	0x801, int)
 36#define IOCTL_BCM_REGISTER_WRITE		_IOW(BCM_IOCTL, 0x802, int)
 37#define IOCTL_BCM_REGISTER_READ			_IOR(BCM_IOCTL, 0x803, int)
 38#define IOCTL_BCM_COMMON_MEMORY_WRITE		_IOW(BCM_IOCTL, 0x804, int)
 39#define IOCTL_BCM_COMMON_MEMORY_READ		_IOR(BCM_IOCTL, 0x805, int)
 40#define IOCTL_GET_CONTROL_MESSAGE		_IOR(BCM_IOCTL,	0x806, int)
 41#define IOCTL_BCM_FIRMWARE_DOWNLOAD		_IOW(BCM_IOCTL, 0x807, int)
 42#define IOCTL_BCM_SET_SEND_VCID			_IOW(BCM_IOCTL,	0x808, int)
 43#define IOCTL_BCM_SWITCH_TRANSFER_MODE		_IOW(BCM_IOCTL, 0x809, int)
 44#define IOCTL_LINK_REQ				_IOW(BCM_IOCTL, 0x80A, int)
 45#define IOCTL_RSSI_LEVEL_REQ			_IOW(BCM_IOCTL, 0x80B, int)
 46#define IOCTL_IDLE_REQ				_IOW(BCM_IOCTL, 0x80C, int)
 47#define IOCTL_SS_INFO_REQ			_IOW(BCM_IOCTL, 0x80D, int)
 48#define IOCTL_GET_STATISTICS_POINTER		_IOW(BCM_IOCTL, 0x80E, int)
 49#define IOCTL_CM_REQUEST			_IOW(BCM_IOCTL, 0x80F, int)
 50#define IOCTL_INIT_PARAM_REQ			_IOW(BCM_IOCTL, 0x810, int)
 51#define IOCTL_MAC_ADDR_REQ			_IOW(BCM_IOCTL, 0x811, int)
 52#define IOCTL_MAC_ADDR_RESP			_IOWR(BCM_IOCTL, 0x812, int)
 53#define IOCTL_CLASSIFICATION_RULE		_IOW(BCM_IOCTL, 0x813, char)
 54#define IOCTL_CLOSE_NOTIFICATION		_IO(BCM_IOCTL, 0x814)
 55#define IOCTL_LINK_UP				_IO(BCM_IOCTL, 0x815)
 56#define IOCTL_LINK_DOWN				_IO(BCM_IOCTL, 0x816, struct bcm_ioctl_buffer)
 57#define IOCTL_CHIP_RESET			_IO(BCM_IOCTL, 0x816)
 58#define IOCTL_CINR_LEVEL_REQ			_IOW(BCM_IOCTL, 0x817, char)
 59#define IOCTL_WTM_CONTROL_REQ			_IOW(BCM_IOCTL, 0x817, char)
 60#define IOCTL_BE_BUCKET_SIZE			_IOW(BCM_IOCTL, 0x818, unsigned long)
 61#define IOCTL_RTPS_BUCKET_SIZE			_IOW(BCM_IOCTL, 0x819, unsigned long)
 62#define IOCTL_QOS_THRESHOLD			_IOW(BCM_IOCTL, 0x820, unsigned long)
 63#define IOCTL_DUMP_PACKET_INFO			_IO(BCM_IOCTL, 0x821)
 64#define IOCTL_GET_PACK_INFO			_IOR(BCM_IOCTL, 0x823, int)
 65#define IOCTL_BCM_GET_DRIVER_VERSION		_IOR(BCM_IOCTL, 0x829, int)
 66#define IOCTL_BCM_GET_CURRENT_STATUS		_IOW(BCM_IOCTL, 0x828, int)
 67#define IOCTL_BCM_GPIO_SET_REQUEST		_IOW(BCM_IOCTL, 0x82A, int)
 68#define IOCTL_BCM_GPIO_STATUS_REQUEST		_IOW(BCM_IOCTL, 0x82b, int)
 69#define IOCTL_BCM_GET_DSX_INDICATION		_IOR(BCM_IOCTL, 0x854, int)
 70#define IOCTL_BCM_BUFFER_DOWNLOAD_START		_IOW(BCM_IOCTL, 0x855, int)
 71#define IOCTL_BCM_BUFFER_DOWNLOAD		_IOW(BCM_IOCTL, 0x856, int)
 72#define IOCTL_BCM_BUFFER_DOWNLOAD_STOP		_IOW(BCM_IOCTL, 0x857, int)
 73#define IOCTL_BCM_REGISTER_WRITE_PRIVATE	_IOW(BCM_IOCTL, 0x826, char)
 74#define IOCTL_BCM_REGISTER_READ_PRIVATE		_IOW(BCM_IOCTL, 0x827, char)
 75#define IOCTL_BCM_SET_DEBUG			_IOW(BCM_IOCTL, 0x824, struct bcm_ioctl_buffer)
 76#define IOCTL_BCM_EEPROM_REGISTER_WRITE		_IOW(BCM_IOCTL, 0x858, int)
 77#define IOCTL_BCM_EEPROM_REGISTER_READ		_IOR(BCM_IOCTL, 0x859, int)
 78#define IOCTL_BCM_WAKE_UP_DEVICE_FROM_IDLE	_IOR(BCM_IOCTL, 0x860, int)
 79#define IOCTL_BCM_SET_MAC_TRACING		_IOW(BCM_IOCTL, 0x82c, int)
 80#define IOCTL_BCM_GET_HOST_MIBS			_IOW(BCM_IOCTL, 0x853, int)
 81#define IOCTL_BCM_NVM_READ			_IOR(BCM_IOCTL, 0x861, int)
 82#define IOCTL_BCM_NVM_WRITE			_IOW(BCM_IOCTL, 0x862, int)
 83#define IOCTL_BCM_GET_NVM_SIZE			_IOR(BCM_IOCTL, 0x863, int)
 84#define IOCTL_BCM_CAL_INIT			_IOR(BCM_IOCTL, 0x864, int)
 85#define IOCTL_BCM_BULK_WRM			_IOW(BCM_IOCTL, 0x90B, int)
 86#define IOCTL_BCM_FLASH2X_SECTION_READ		_IOR(BCM_IOCTL, 0x865, int)
 87#define IOCTL_BCM_FLASH2X_SECTION_WRITE		_IOW(BCM_IOCTL, 0x866, int)
 88#define IOCTL_BCM_GET_FLASH2X_SECTION_BITMAP	_IOR(BCM_IOCTL, 0x867, int)
 89#define IOCTL_BCM_SET_ACTIVE_SECTION		_IOW(BCM_IOCTL, 0x868, int)
 90#define	IOCTL_BCM_IDENTIFY_ACTIVE_SECTION	_IO(BCM_IOCTL, 0x869)
 91#define IOCTL_BCM_COPY_SECTION			_IOW(BCM_IOCTL, 0x870, int)
 92#define	IOCTL_BCM_GET_FLASH_CS_INFO		_IOR(BCM_IOCTL, 0x871, int)
 93#define IOCTL_BCM_SELECT_DSD			_IOW(BCM_IOCTL, 0x872, int)
 94#define IOCTL_BCM_NVM_RAW_READ			_IOR(BCM_IOCTL, 0x875, int)
 95#define IOCTL_BCM_CNTRLMSG_MASK			_IOW(BCM_IOCTL, 0x874, int)
 96#define IOCTL_BCM_GET_DEVICE_DRIVER_INFO	_IOR(BCM_IOCTL, 0x877, int)
 97#define IOCTL_BCM_TIME_SINCE_NET_ENTRY		_IOR(BCM_IOCTL, 0x876, int)
 98#define BCM_LED_THREAD_STATE_CHANGE_REQ		_IOW(BCM_IOCTL, 0x878, int)
 99#define IOCTL_BCM_GPIO_MULTI_REQUEST		_IOW(BCM_IOCTL, 0x82D, struct bcm_ioctl_buffer)
100#define IOCTL_BCM_GPIO_MODE_REQUEST		_IOW(BCM_IOCTL, 0x82E, struct bcm_ioctl_buffer)
101
102enum bcm_interface_type {
103	BCM_MII,
104	BCM_CARDBUS,
105	BCM_USB,
106	BCM_SDIO,
107	BCM_PCMCIA
108};
109
110struct bcm_driver_info {
111	enum bcm_nvm_type	u32NVMType;
112	unsigned int		MaxRDMBufferSize;
113	enum bcm_interface_type	u32InterfaceType;
114	unsigned int		u32DSDStartOffset;
115	unsigned int		u32RxAlignmentCorrection;
116	unsigned int		u32Reserved[10];
117};
118
119struct bcm_nvm_readwrite {
120	void __user *pBuffer;
121	uint32_t  uiOffset;
122	uint32_t uiNumBytes;
123	bool bVerify;
124};
125
126struct bcm_bulk_wrm_buffer {
127	unsigned long Register;
128	unsigned long SwapEndian;
129	unsigned long Values[1];
130};
131
132enum bcm_flash2x_section_val {
133	NO_SECTION_VAL = 0, /* no section is chosen when absolute offset is given for RD/WR */
134	ISO_IMAGE1,
135	ISO_IMAGE2,
136	DSD0,
137	DSD1,
138	DSD2,
139	VSA0,
140	VSA1,
141	VSA2,
142	SCSI,
143	CONTROL_SECTION,
144	ISO_IMAGE1_PART2,
145	ISO_IMAGE1_PART3,
146	ISO_IMAGE2_PART2,
147	ISO_IMAGE2_PART3,
148	TOTAL_SECTIONS
149};
150
151/*
152 * Structure used for READ/WRITE Flash Map2.x
153 */
154struct bcm_flash2x_readwrite {
155	enum bcm_flash2x_section_val Section; /* which section has to be read/written */
156	u32 offset;	     /* Offset within Section. */
157	u32 numOfBytes;	     /* NOB from the offset */
158	u32 bVerify;
159	void __user *pDataBuff;	     /* Buffer for reading/writing */
160};
161
162/*
163 * This structure is used for coping one section to other.
164 * there are two ways to copy one section to other.
165 * it NOB =0, complete section will be copied on to other.
166 * if NOB !=0, only NOB will be copied from the given offset.
167 */
168
169struct bcm_flash2x_copy_section {
170	enum bcm_flash2x_section_val SrcSection;
171	enum bcm_flash2x_section_val DstSection;
172	u32 offset;
173	u32 numOfBytes;
174};
175
176/*
177 * This section provide the complete bitmap of the Flash.
178 * using this map lib/APP will issue read/write command.
179 * Fields are defined as :
180 * Bit [0] = section is present  //1:present, 0: Not present
181 * Bit [1] = section is valid  //1: valid, 0: not valid
182 * Bit [2] = Section is R/W  //0: RW, 1: RO
183 * Bit [3] = Section is Active or not 1 means Active, 0->inactive
184 * Bit [7...3] = Reserved
185 */
186
187struct bcm_flash2x_bitmap {
188	unsigned char ISO_IMAGE1;
189	unsigned char ISO_IMAGE2;
190	unsigned char DSD0;
191	unsigned char DSD1;
192	unsigned char DSD2;
193	unsigned char VSA0;
194	unsigned char VSA1;
195	unsigned char VSA2;
196	unsigned char SCSI;
197	unsigned char CONTROL_SECTION;
198	/* Reserved for future use */
199	unsigned char Reserved0;
200	unsigned char Reserved1;
201	unsigned char Reserved2;
202};
203
204struct bcm_time_elapsed {
205	u64 ul64TimeElapsedSinceNetEntry;
206	u32 uiReserved[4];
207};
208
209enum {
210	WIMAX_IDX = 0,  /* To access WiMAX chip GPIO's for GPIO_MULTI_INFO or GPIO_MULTI_MODE */
211	HOST_IDX,	/* To access Host chip GPIO's for GPIO_MULTI_INFO or GPIO_MULTI_MODE */
212	MAX_IDX
213};
214
215struct bcm_gpio_multi_info {
216	unsigned int uiGPIOCommand; /* 1 for set and 0 for get */
217	unsigned int uiGPIOMask;    /* set the correspondig bit to 1 to access GPIO */
218	unsigned int uiGPIOValue;   /* 0 or 1; value to be set when command is 1. */
219} __packed;
220
221struct bcm_gpio_multi_mode {
222	unsigned int uiGPIOMode;    /* 1 for OUT mode, 0 for IN mode */
223	unsigned int uiGPIOMask;    /* GPIO mask to set mode */
224} __packed;
225
226#endif