--- /dev/null
+/******************************************************************************\r
+ *\r
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify it\r
+ * under the terms of version 2 of the GNU General Public License as\r
+ * published by the Free Software Foundation.\r
+ *\r
+ * This program is distributed in the hope that it will be useful, but WITHOUT\r
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
+ * more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License along with\r
+ * this program; if not, write to the Free Software Foundation, Inc.,\r
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
+ *\r
+ *\r
+ ******************************************************************************/\r
+#ifndef __HALPWRSEQCMD_H__\r
+#define __HALPWRSEQCMD_H__\r
+\r
+#include <drv_types.h>\r
+\r
+/*---------------------------------------------*/\r
+//3 The value of cmd: 4 bits\r
+/*---------------------------------------------*/\r
+#define PWR_CMD_READ 0x00\r
+ // offset: the read register offset\r
+ // msk: the mask of the read value\r
+ // value: N/A, left by 0\r
+ // note: dirver shall implement this function by read & msk\r
+\r
+#define PWR_CMD_WRITE 0x01\r
+ // offset: the read register offset\r
+ // msk: the mask of the write bits\r
+ // value: write value\r
+ // note: driver shall implement this cmd by read & msk after write\r
+\r
+#define PWR_CMD_POLLING 0x02\r
+ // offset: the read register offset\r
+ // msk: the mask of the polled value\r
+ // value: the value to be polled, masked by the msd field.\r
+ // note: driver shall implement this cmd by\r
+ // do{\r
+ // if( (Read(offset) & msk) == (value & msk) )\r
+ // break;\r
+ // } while(not timeout);\r
+\r
+#define PWR_CMD_DELAY 0x03\r
+ // offset: the value to delay\r
+ // msk: N/A\r
+ // value: the unit of delay, 0: us, 1: ms\r
+\r
+#define PWR_CMD_END 0x04\r
+ // offset: N/A\r
+ // msk: N/A\r
+ // value: N/A\r
+\r
+/*---------------------------------------------*/\r
+//3 The value of base: 4 bits\r
+/*---------------------------------------------*/\r
+ // define the base address of each block\r
+#define PWR_BASEADDR_MAC 0x00\r
+#define PWR_BASEADDR_USB 0x01\r
+#define PWR_BASEADDR_PCIE 0x02\r
+#define PWR_BASEADDR_SDIO 0x03\r
+\r
+/*---------------------------------------------*/\r
+//3 The value of interface_msk: 4 bits\r
+/*---------------------------------------------*/\r
+#define PWR_INTF_SDIO_MSK BIT(0)\r
+#define PWR_INTF_USB_MSK BIT(1)\r
+#define PWR_INTF_PCI_MSK BIT(2)\r
+#define PWR_INTF_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3))\r
+\r
+/*---------------------------------------------*/\r
+//3 The value of fab_msk: 4 bits\r
+/*---------------------------------------------*/\r
+#define PWR_FAB_TSMC_MSK BIT(0)\r
+#define PWR_FAB_UMC_MSK BIT(1)\r
+#define PWR_FAB_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3))\r
+\r
+/*---------------------------------------------*/\r
+//3 The value of cut_msk: 8 bits\r
+/*---------------------------------------------*/\r
+#define PWR_CUT_TESTCHIP_MSK BIT(0)\r
+#define PWR_CUT_A_MSK BIT(1)\r
+#define PWR_CUT_B_MSK BIT(2)\r
+#define PWR_CUT_C_MSK BIT(3)\r
+#define PWR_CUT_D_MSK BIT(4)\r
+#define PWR_CUT_E_MSK BIT(5)\r
+#define PWR_CUT_F_MSK BIT(6)\r
+#define PWR_CUT_G_MSK BIT(7)\r
+#define PWR_CUT_ALL_MSK 0xFF\r
+\r
+\r
+typedef enum _PWRSEQ_CMD_DELAY_UNIT_\r
+{\r
+ PWRSEQ_DELAY_US,\r
+ PWRSEQ_DELAY_MS,\r
+} PWRSEQ_DELAY_UNIT;\r
+\r
+typedef struct _WL_PWR_CFG_\r
+{\r
+ u16 offset;\r
+ u8 cut_msk;\r
+ u8 fab_msk:4;\r
+ u8 interface_msk:4;\r
+ u8 base:4;\r
+ u8 cmd:4;\r
+ u8 msk;\r
+ u8 value;\r
+} WLAN_PWR_CFG, *PWLAN_PWR_CFG;\r
+\r
+\r
+#define GET_PWR_CFG_OFFSET(__PWR_CMD) __PWR_CMD.offset\r
+#define GET_PWR_CFG_CUT_MASK(__PWR_CMD) __PWR_CMD.cut_msk\r
+#define GET_PWR_CFG_FAB_MASK(__PWR_CMD) __PWR_CMD.fab_msk\r
+#define GET_PWR_CFG_INTF_MASK(__PWR_CMD) __PWR_CMD.interface_msk\r
+#define GET_PWR_CFG_BASE(__PWR_CMD) __PWR_CMD.base\r
+#define GET_PWR_CFG_CMD(__PWR_CMD) __PWR_CMD.cmd\r
+#define GET_PWR_CFG_MASK(__PWR_CMD) __PWR_CMD.msk\r
+#define GET_PWR_CFG_VALUE(__PWR_CMD) __PWR_CMD.value\r
+\r
+\r
+//================================================================================\r
+// Prototype of protected function.\r
+//================================================================================\r
+u8 HalPwrSeqCmdParsing(\r
+ PADAPTER padapter,\r
+ u8 CutVersion,\r
+ u8 FabVersion,\r
+ u8 InterfaceType,\r
+ WLAN_PWR_CFG PwrCfgCmd[]);\r
+\r
+#endif\r
+\r