Index: chromeos/drivers/ath6kl/include/wmix.h |
diff --git a/chromeos/drivers/ath6kl/include/wmix.h b/chromeos/drivers/ath6kl/include/wmix.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7db5560f41f0e51ca49e84c39450ac1b6741acd7 |
--- /dev/null |
+++ b/chromeos/drivers/ath6kl/include/wmix.h |
@@ -0,0 +1,275 @@ |
+//------------------------------------------------------------------------------ |
+// <copyright file="wmix.h" company="Atheros"> |
+// Copyright (c) 2004-2007 Atheros Corporation. All rights reserved. |
+// |
+// This program is free software; you can redistribute it and/or modify |
+// it under the terms of the GNU General Public License version 2 as |
+// published by the Free Software Foundation; |
+// |
+// Software distributed under the License is distributed on an "AS |
+// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
+// implied. See the License for the specific language governing |
+// rights and limitations under the License. |
+// |
+// |
+//------------------------------------------------------------------------------ |
+//============================================================================== |
+// Author(s): ="Atheros" |
+//============================================================================== |
+ |
+/* |
+ * This file contains extensions of the WMI protocol specified in the |
+ * Wireless Module Interface (WMI). It includes definitions of all |
+ * extended commands and events. Extensions include useful commands |
+ * that are not directly related to wireless activities. They may |
+ * be hardware-specific, and they might not be supported on all |
+ * implementations. |
+ * |
+ * Extended WMIX commands are encapsulated in a WMI message with |
+ * cmd=WMI_EXTENSION_CMD. |
+ */ |
+ |
+#ifndef _WMIX_H_ |
+#define _WMIX_H_ |
+ |
+#ifdef __cplusplus |
+extern "C" { |
+#endif |
+ |
+#ifndef ATH_TARGET |
+#include "athstartpack.h" |
+#endif |
+ |
+#include "dbglog.h" |
+ |
+/* |
+ * Extended WMI commands are those that are needed during wireless |
+ * operation, but which are not really wireless commands. This allows, |
+ * for instance, platform-specific commands. Extended WMI commands are |
+ * embedded in a WMI command message with WMI_COMMAND_ID=WMI_EXTENSION_CMDID. |
+ * Extended WMI events are similarly embedded in a WMI event message with |
+ * WMI_EVENT_ID=WMI_EXTENSION_EVENTID. |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 commandId; |
+} POSTPACK WMIX_CMD_HDR; |
+ |
+typedef enum { |
+ WMIX_DSETOPEN_REPLY_CMDID = 0x2001, |
+ WMIX_DSETDATA_REPLY_CMDID, |
+ WMIX_GPIO_OUTPUT_SET_CMDID, |
+ WMIX_GPIO_INPUT_GET_CMDID, |
+ WMIX_GPIO_REGISTER_SET_CMDID, |
+ WMIX_GPIO_REGISTER_GET_CMDID, |
+ WMIX_GPIO_INTR_ACK_CMDID, |
+ WMIX_HB_CHALLENGE_RESP_CMDID, |
+ WMIX_DBGLOG_CFG_MODULE_CMDID, |
+ WMIX_PROF_CFG_CMDID, /* 0x200a */ |
+ WMIX_PROF_ADDR_SET_CMDID, |
+ WMIX_PROF_START_CMDID, |
+ WMIX_PROF_STOP_CMDID, |
+ WMIX_PROF_COUNT_GET_CMDID, |
+} WMIX_COMMAND_ID; |
+ |
+typedef enum { |
+ WMIX_DSETOPENREQ_EVENTID = 0x3001, |
+ WMIX_DSETCLOSE_EVENTID, |
+ WMIX_DSETDATAREQ_EVENTID, |
+ WMIX_GPIO_INTR_EVENTID, |
+ WMIX_GPIO_DATA_EVENTID, |
+ WMIX_GPIO_ACK_EVENTID, |
+ WMIX_HB_CHALLENGE_RESP_EVENTID, |
+ WMIX_DBGLOG_EVENTID, |
+ WMIX_PROF_COUNT_EVENTID, |
+} WMIX_EVENT_ID; |
+ |
+/* |
+ * =============DataSet support================= |
+ */ |
+ |
+/* |
+ * WMIX_DSETOPENREQ_EVENTID |
+ * DataSet Open Request Event |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 dset_id; |
+ A_UINT32 targ_dset_handle; /* echo'ed, not used by Host, */ |
+ A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */ |
+ A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */ |
+} POSTPACK WMIX_DSETOPENREQ_EVENT; |
+ |
+/* |
+ * WMIX_DSETCLOSE_EVENTID |
+ * DataSet Close Event |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 access_cookie; |
+} POSTPACK WMIX_DSETCLOSE_EVENT; |
+ |
+/* |
+ * WMIX_DSETDATAREQ_EVENTID |
+ * DataSet Data Request Event |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 access_cookie; |
+ A_UINT32 offset; |
+ A_UINT32 length; |
+ A_UINT32 targ_buf; /* echo'ed, not used by Host, */ |
+ A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */ |
+ A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */ |
+} POSTPACK WMIX_DSETDATAREQ_EVENT; |
+ |
+typedef PREPACK struct { |
+ A_UINT32 status; |
+ A_UINT32 targ_dset_handle; |
+ A_UINT32 targ_reply_fn; |
+ A_UINT32 targ_reply_arg; |
+ A_UINT32 access_cookie; |
+ A_UINT32 size; |
+ A_UINT32 version; |
+} POSTPACK WMIX_DSETOPEN_REPLY_CMD; |
+ |
+typedef PREPACK struct { |
+ A_UINT32 status; |
+ A_UINT32 targ_buf; |
+ A_UINT32 targ_reply_fn; |
+ A_UINT32 targ_reply_arg; |
+ A_UINT32 length; |
+ A_UINT8 buf[1]; |
+} POSTPACK WMIX_DSETDATA_REPLY_CMD; |
+ |
+ |
+/* |
+ * =============GPIO support================= |
+ * All masks are 18-bit masks with bit N operating on GPIO pin N. |
+ */ |
+ |
+#include "gpio.h" |
+ |
+/* |
+ * Set GPIO pin output state. |
+ * In order for output to be driven, a pin must be enabled for output. |
+ * This can be done during initialization through the GPIO Configuration |
+ * DataSet, or during operation with the enable_mask. |
+ * |
+ * If a request is made to simultaneously set/clear or set/disable or |
+ * clear/disable or disable/enable, results are undefined. |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 set_mask; /* pins to set */ |
+ A_UINT32 clear_mask; /* pins to clear */ |
+ A_UINT32 enable_mask; /* pins to enable for output */ |
+ A_UINT32 disable_mask; /* pins to disable/tristate */ |
+} POSTPACK WMIX_GPIO_OUTPUT_SET_CMD; |
+ |
+/* |
+ * Set a GPIO register. For debug/exceptional cases. |
+ * Values for gpioreg_id are GPIO_REGISTER_IDs, defined in a |
+ * platform-dependent header. |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 gpioreg_id; /* GPIO register ID */ |
+ A_UINT32 value; /* value to write */ |
+} POSTPACK WMIX_GPIO_REGISTER_SET_CMD; |
+ |
+/* Get a GPIO register. For debug/exceptional cases. */ |
+typedef PREPACK struct { |
+ A_UINT32 gpioreg_id; /* GPIO register to read */ |
+} POSTPACK WMIX_GPIO_REGISTER_GET_CMD; |
+ |
+/* |
+ * Host acknowledges and re-arms GPIO interrupts. A single |
+ * message should be used to acknowledge all interrupts that |
+ * were delivered in an earlier WMIX_GPIO_INTR_EVENT message. |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 ack_mask; /* interrupts to acknowledge */ |
+} POSTPACK WMIX_GPIO_INTR_ACK_CMD; |
+ |
+/* |
+ * Target informs Host of GPIO interrupts that have ocurred since the |
+ * last WMIX_GIPO_INTR_ACK_CMD was received. Additional information -- |
+ * the current GPIO input values is provided -- in order to support |
+ * use of a GPIO interrupt as a Data Valid signal for other GPIO pins. |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 intr_mask; /* pending GPIO interrupts */ |
+ A_UINT32 input_values; /* recent GPIO input values */ |
+} POSTPACK WMIX_GPIO_INTR_EVENT; |
+ |
+/* |
+ * Target responds to Host's earlier WMIX_GPIO_INPUT_GET_CMDID request |
+ * using a GPIO_DATA_EVENT with |
+ * value set to the mask of GPIO pin inputs and |
+ * reg_id set to GPIO_ID_NONE |
+ * |
+ * |
+ * Target responds to Hosts's earlier WMIX_GPIO_REGISTER_GET_CMDID request |
+ * using a GPIO_DATA_EVENT with |
+ * value set to the value of the requested register and |
+ * reg_id identifying the register (reflects the original request) |
+ * NB: reg_id supports the future possibility of unsolicited |
+ * WMIX_GPIO_DATA_EVENTs (for polling GPIO input), and it may |
+ * simplify Host GPIO support. |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 value; |
+ A_UINT32 reg_id; |
+} POSTPACK WMIX_GPIO_DATA_EVENT; |
+ |
+/* |
+ * =============Error Detection support================= |
+ */ |
+ |
+/* |
+ * WMIX_HB_CHALLENGE_RESP_CMDID |
+ * Heartbeat Challenge Response command |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 cookie; |
+ A_UINT32 source; |
+} POSTPACK WMIX_HB_CHALLENGE_RESP_CMD; |
+ |
+/* |
+ * WMIX_HB_CHALLENGE_RESP_EVENTID |
+ * Heartbeat Challenge Response Event |
+ */ |
+#define WMIX_HB_CHALLENGE_RESP_EVENT WMIX_HB_CHALLENGE_RESP_CMD |
+ |
+typedef PREPACK struct { |
+ struct dbglog_config_s config; |
+} POSTPACK WMIX_DBGLOG_CFG_MODULE_CMD; |
+ |
+/* |
+ * =============Target Profiling support================= |
+ */ |
+ |
+typedef PREPACK struct { |
+ A_UINT32 period; /* Time (in 30.5us ticks) between samples */ |
+ A_UINT32 nbins; |
+} POSTPACK WMIX_PROF_CFG_CMD; |
+ |
+typedef PREPACK struct { |
+ A_UINT32 addr; |
+} POSTPACK WMIX_PROF_ADDR_SET_CMD; |
+ |
+/* |
+ * Target responds to Hosts's earlier WMIX_PROF_COUNT_GET_CMDID request |
+ * using a WMIX_PROF_COUNT_EVENT with |
+ * addr set to the next address |
+ * count set to the corresponding count |
+ */ |
+typedef PREPACK struct { |
+ A_UINT32 addr; |
+ A_UINT32 count; |
+} POSTPACK WMIX_PROF_COUNT_EVENT; |
+ |
+#ifndef ATH_TARGET |
+#include "athendpack.h" |
+#endif |
+ |
+#ifdef __cplusplus |
+} |
+#endif |
+ |
+#endif /* _WMIX_H_ */ |