Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / staging / gdm72xx / hci.h
diff --git a/kernel/drivers/staging/gdm72xx/hci.h b/kernel/drivers/staging/gdm72xx/hci.h
new file mode 100644 (file)
index 0000000..10a6bfa
--- /dev/null
@@ -0,0 +1,213 @@
+/*
+ * Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved.
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef __GDM72XX_HCI_H__
+#define __GDM72XX_HCI_H__
+
+#define HCI_HEADER_SIZE                4
+#define HCI_VALUE_OFFS         (HCI_HEADER_SIZE)
+#define HCI_MAX_PACKET         2048
+#define HCI_MAX_PARAM          (HCI_MAX_PACKET-HCI_HEADER_SIZE)
+#define HCI_MAX_TLV            32
+
+/* CMD-EVT */
+
+/* Category 0 */
+#define WIMAX_RESET            0x0000
+#define WIMAX_SET_INFO         0x0001
+#define WIMAX_GET_INFO         0x0002
+#define WIMAX_GET_INFO_RESULT  0x8003
+#define WIMAX_RADIO_OFF                0x0004
+#define WIMAX_RADIO_ON         0x0006
+#define WIMAX_WIMAX_RESET      0x0007  /* Is this still here */
+
+/* Category 1 */
+#define WIMAX_NET_ENTRY                        0x0100
+#define WIMAX_NET_DISCONN              0x0102
+#define WIMAX_ENTER_SLEEP              0x0103
+#define WIMAX_EXIT_SLEEP               0x0104
+#define WIMAX_ENTER_IDLE               0x0105
+#define WIMAX_EXIT_IDLE                        0x0106
+#define WIMAX_MODE_CHANGE              0x8108
+#define WIMAX_HANDOVER                 0x8109  /* obsolete */
+#define WIMAX_SCAN                     0x010d
+#define WIMAX_SCAN_COMPLETE            0x810e
+#define WIMAX_SCAN_RESULT              0x810f
+#define WIMAX_CONNECT                  0x0110
+#define WIMAX_CONNECT_START            0x8111
+#define WIMAX_CONNECT_COMPLETE         0x8112
+#define WIMAX_ASSOC_START              0x8113
+#define WIMAX_ASSOC_COMPLETE           0x8114
+#define WIMAX_DISCONN_IND              0x8115
+#define WIMAX_ENTRY_IND                        0x8116
+#define WIMAX_HO_START                 0x8117
+#define WIMAX_HO_COMPLETE              0x8118
+#define WIMAX_RADIO_STATE_IND          0x8119
+#define WIMAX_IP_RENEW_IND             0x811a
+#define WIMAX_DISCOVER_NSP             0x011d
+#define WIMAX_DISCOVER_NSP_RESULT      0x811e
+#define WIMAX_SDU_TX_FLOW              0x8125
+
+/* Category 2 */
+#define WIMAX_TX_EAP           0x0200
+#define WIMAX_RX_EAP           0x8201
+#define WIMAX_TX_SDU           0x0202
+#define WIMAX_RX_SDU           0x8203
+#define WIMAX_RX_SDU_AGGR      0x8204
+#define WIMAX_TX_SDU_AGGR      0x0205
+
+/* Category 3 */
+#define WIMAX_DM_CMD           0x030a
+#define WIMAX_DM_RSP           0x830b
+
+#define WIMAX_CLI_CMD          0x030c
+#define WIMAX_CLI_RSP          0x830d
+
+#define WIMAX_DL_IMAGE         0x0310
+#define WIMAX_DL_IMAGE_STATUS  0x8311
+#define WIMAX_UL_IMAGE         0x0312
+#define WIMAX_UL_IMAGE_RESULT  0x8313
+#define WIMAX_UL_IMAGE_STATUS  0x0314
+#define WIMAX_EVT_MODEM_REPORT 0x8325
+
+/* Category 0xF */
+#define WIMAX_FSM_UPDATE       0x8F01
+#define WIMAX_IF_UPDOWN                0x8F02
+#define WIMAX_IF_UP            1
+#define WIMAX_IF_DOWN          2
+
+/* WIMAX mode */
+#define W_NULL         0
+#define W_STANDBY      1
+#define W_OOZ          2
+#define W_AWAKE                3
+#define W_IDLE         4
+#define W_SLEEP                5
+#define W_WAIT         6
+
+#define W_NET_ENTRY_RNG                0x80
+#define W_NET_ENTRY_SBC                0x81
+#define W_NET_ENTRY_PKM                0x82
+#define W_NET_ENTRY_REG                0x83
+#define W_NET_ENTRY_DSX                0x84
+
+#define W_NET_ENTRY_RNG_FAIL   0x1100100
+#define W_NET_ENTRY_SBC_FAIL   0x1100200
+#define W_NET_ENTRY_PKM_FAIL   0x1102000
+#define W_NET_ENTRY_REG_FAIL   0x1103000
+#define W_NET_ENTRY_DSX_FAIL   0x1104000
+
+/* Scan Type */
+#define W_SCAN_ALL_CHANNEL             0
+#define W_SCAN_ALL_SUBSCRIPTION                1
+#define W_SCAN_SPECIFIED_SUBSCRIPTION  2
+
+/* TLV
+ *
+ * [31:31] indicates the type is composite.
+ * [30:16] is the length of the type. 0 length means length is variable.
+ * [15:0] is the actual type.
+ */
+#define TLV_L(x)               (((x) >> 16) & 0xff)
+#define TLV_T(x)               ((x) & 0xff)
+#define TLV_COMPOSITE(x)       ((x) >> 31)
+
+/* GENERAL */
+#define T_MAC_ADDRESS                  (0x00   | (6 << 16))
+#define T_BSID                         (0x01   | (6 << 16))
+#define T_MSK                          (0x02   | (64 << 16))
+#define T_RSSI_THRSHLD                 (0x03   | (1 << 16))
+#define T_FREQUENCY                    (0x04   | (4 << 16))
+#define T_CONN_CS_TYPE                 (0x05   | (1 << 16))
+#define T_HOST_IP_VER                  (0x06   | (1 << 16))
+#define T_STBY_SCAN_INTERVAL           (0x07   | (4  << 16))
+#define T_OOZ_SCAN_INTERVAL            (0x08   | (4 << 16))
+#define T_IMEI                         (0x09   | (8 << 16))
+#define T_PID                          (0x0a   | (12 << 16))
+#define T_CAPABILITY                   (0x1a   | (4 << 16))
+#define T_RELEASE_NUMBER               (0x1b   | (4 << 16))
+#define T_DRIVER_REVISION              (0x1c   | (4 << 16))
+#define T_FW_REVISION                  (0x1d   | (4 << 16))
+#define T_MAC_HW_REVISION              (0x1e   | (4 << 16))
+#define T_PHY_HW_REVISION              (0x1f   | (4 << 16))
+
+/* HANDOVER */
+#define T_SCAN_INTERVAL                        (0x20   | (1 << 16))
+#define T_RSC_RETAIN_TIME              (0x2f   | (2 << 16))
+
+/* SLEEP */
+#define T_TYPE1_ISW                    (0x40   | (1 << 16))
+#define T_SLP_START_TO                 (0x4a   | (2 << 16))
+
+/* IDLE */
+#define T_IDLE_MODE_TO                 (0x50   | (2 << 16))
+#define T_IDLE_START_TO                        (0x54   | (2 << 16))
+
+/* MONITOR */
+#define T_RSSI                         (0x60   | (1 << 16))
+#define T_CINR                         (0x61   | (1 << 16))
+#define T_TX_POWER                     (0x6a   | (1 << 16))
+#define T_CUR_FREQ                     (0x7f   | (4 << 16))
+
+
+/* WIMAX */
+#define T_MAX_SUBSCRIPTION             (0xa1   | (1 << 16))
+#define T_MAX_SF                       (0xa2   | (1 << 16))
+#define T_PHY_TYPE                     (0xa3   | (1 << 16))
+#define T_PKM                          (0xa4   | (1 << 16))
+#define T_AUTH_POLICY                  (0xa5   | (1 << 16))
+#define T_CS_TYPE                      (0xa6   | (2 << 16))
+#define T_VENDOR_NAME                  (0xa7   | (0 << 16))
+#define T_MOD_NAME                     (0xa8   | (0 << 16))
+#define T_PACKET_FILTER                        (0xa9   | (1 << 16))
+#define T_NSP_CHANGE_COUNT             (0xaa   | (4 << 16))
+#define T_RADIO_STATE                  (0xab   | (1 << 16))
+#define T_URI_CONTACT_TYPE             (0xac   | (1 << 16))
+#define T_URI_TEXT                     (0xad   | (0 << 16))
+#define T_URI                          (0xae   | (0 << 16))
+#define T_ENABLE_AUTH                  (0xaf   | (1 << 16))
+#define T_TIMEOUT                      (0xb0   | (2 << 16))
+#define T_RUN_MODE                     (0xb1   | (1 << 16))
+#define T_OMADMT_VER                   (0xb2   | (4 << 16))
+/* This is measured in seconds from 00:00:00 GMT January 1, 1970. */
+#define T_RTC_TIME                     (0xb3   | (4 << 16))
+#define T_CERT_STATUS                  (0xb4   | (4 << 16))
+#define T_CERT_MASK                    (0xb5   | (4 << 16))
+#define T_EMSK                         (0xb6   | (64 << 16))
+
+/* Subscription TLV */
+#define T_SUBSCRIPTION_LIST            (0xd1   | (0 << 16) | (1 << 31))
+#define T_H_NSPID                      (0xd2   | (3 << 16))
+#define T_NSP_NAME                     (0xd3   | (0 << 16))
+#define T_SUBSCRIPTION_NAME            (0xd4   | (0 << 16))
+#define T_SUBSCRIPTION_FLAG            (0xd5   | (2 << 16))
+#define T_V_NSPID                      (0xd6   | (3 << 16))
+#define T_NAP_ID                       (0xd7   | (3 << 16))
+#define T_PREAMBLES                    (0xd8   | (15 << 16))
+#define T_BW                           (0xd9   | (4 << 16))
+#define T_FFTSIZE                      (0xda   | (4 << 16))
+#define T_DUPLEX_MODE                  (0xdb   | (4 << 16))
+
+/* T_CAPABILITY */
+#define T_CAPABILITY_MULTI_CS          (1 << 0)
+#define T_CAPABILITY_WIMAX             (1 << 1)
+#define T_CAPABILITY_QOS               (1 << 2)
+#define T_CAPABILITY_AGGREGATION       (1 << 3)
+
+struct hci_s {
+       __be16  cmd_evt;
+       __be16  length;
+       u8      data[0];
+} __packed;
+
+#endif /* __GDM72XX_HCI_H__ */