137 lines · c
1/*2 * Copyright (c) 2015 Qualcomm Atheros Inc.3 *4 * Permission to use, copy, modify, and/or distribute this software for any5 * purpose with or without fee is hereby granted, provided that the above6 * copyright notice and this permission notice appear in all copies.7 *8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.15 */16 17#ifndef REG_WOW_H18#define REG_WOW_H19 20#define AR_WOW_PATTERN 0x825C21#define AR_WOW_COUNT 0x826022#define AR_WOW_BCN_EN 0x827023#define AR_WOW_BCN_TIMO 0x827424#define AR_WOW_KEEP_ALIVE_TIMO 0x827825#define AR_WOW_KEEP_ALIVE 0x827c26#define AR_WOW_KEEP_ALIVE_DELAY 0x828827#define AR_WOW_PATTERN_MATCH 0x828c28 29/*30 * AR_WOW_LENGTH131 * bit 31:24 pattern 0 length32 * bit 23:16 pattern 1 length33 * bit 15:8 pattern 2 length34 * bit 7:0 pattern 3 length35 *36 * AR_WOW_LENGTH237 * bit 31:24 pattern 4 length38 * bit 23:16 pattern 5 length39 * bit 15:8 pattern 6 length40 * bit 7:0 pattern 7 length41 *42 * AR_WOW_LENGTH343 * bit 31:24 pattern 8 length44 * bit 23:16 pattern 9 length45 * bit 15:8 pattern 10 length46 * bit 7:0 pattern 11 length47 *48 * AR_WOW_LENGTH449 * bit 31:24 pattern 12 length50 * bit 23:16 pattern 13 length51 * bit 15:8 pattern 14 length52 * bit 7:0 pattern 15 length53 */54#define AR_WOW_LENGTH1 0x836055#define AR_WOW_LENGTH2 0X836456#define AR_WOW_LENGTH3 0X838057#define AR_WOW_LENGTH4 0X838458 59#define AR_WOW_PATTERN_MATCH_LT_256B 0x836860#define AR_MAC_PCU_WOW4 0x837061 62#define AR_SW_WOW_CONTROL 0x2001863#define AR_SW_WOW_ENABLE 0x164#define AR_SWITCH_TO_REFCLK 0x265#define AR_RESET_CONTROL 0x466#define AR_RESET_VALUE_MASK 0x867#define AR_HW_WOW_DISABLE 0x1068#define AR_CLR_MAC_INTERRUPT 0x2069#define AR_CLR_KA_INTERRUPT 0x4070 71#define AR_WOW_BACK_OFF_SHIFT(x) ((x & 0xf) << 27) /* in usecs */72#define AR_WOW_MAC_INTR_EN 0x0004000073#define AR_WOW_MAGIC_EN 0x0001000074#define AR_WOW_PATTERN_EN(x) (x & 0xff)75#define AR_WOW_PAT_FOUND_SHIFT 876#define AR_WOW_PATTERN_FOUND(x) (x & (0xff << AR_WOW_PAT_FOUND_SHIFT))77#define AR_WOW_PATTERN_FOUND_MASK ((0xff) << AR_WOW_PAT_FOUND_SHIFT)78#define AR_WOW_MAGIC_PAT_FOUND 0x0002000079#define AR_WOW_MAC_INTR 0x0008000080#define AR_WOW_KEEP_ALIVE_FAIL 0x0010000081#define AR_WOW_BEACON_FAIL 0x0020000082 83#define AR_WOW_STATUS(x) (x & (AR_WOW_PATTERN_FOUND_MASK | \84 AR_WOW_MAGIC_PAT_FOUND | \85 AR_WOW_KEEP_ALIVE_FAIL | \86 AR_WOW_BEACON_FAIL))87#define AR_WOW_CLEAR_EVENTS(x) (x & ~(AR_WOW_PATTERN_EN(0xff) | \88 AR_WOW_MAGIC_EN | \89 AR_WOW_MAC_INTR_EN | \90 AR_WOW_BEACON_FAIL | \91 AR_WOW_KEEP_ALIVE_FAIL))92 93#define AR_WOW2_PATTERN_EN(x) ((x & 0xff) << 0)94#define AR_WOW2_PATTERN_FOUND_SHIFT 895#define AR_WOW2_PATTERN_FOUND(x) (x & (0xff << AR_WOW2_PATTERN_FOUND_SHIFT))96#define AR_WOW2_PATTERN_FOUND_MASK ((0xff) << AR_WOW2_PATTERN_FOUND_SHIFT)97 98#define AR_WOW_STATUS2(x) (x & AR_WOW2_PATTERN_FOUND_MASK)99#define AR_WOW_CLEAR_EVENTS2(x) (x & ~(AR_WOW2_PATTERN_EN(0xff)))100 101#define AR_WOW_AIFS_CNT(x) (x & 0xff)102#define AR_WOW_SLOT_CNT(x) ((x & 0xff) << 8)103#define AR_WOW_KEEP_ALIVE_CNT(x) ((x & 0xff) << 16)104 105#define AR_WOW_BEACON_FAIL_EN 0x00000001106#define AR_WOW_BEACON_TIMO 0x40000000107#define AR_WOW_KEEP_ALIVE_NEVER 0xffffffff108#define AR_WOW_KEEP_ALIVE_AUTO_DIS 0x00000001109#define AR_WOW_KEEP_ALIVE_FAIL_DIS 0x00000002110#define AR_WOW_KEEP_ALIVE_DELAY_VALUE 0x000003e8 /* 1 msec */111#define AR_WOW_BMISSTHRESHOLD 0x20112#define AR_WOW_PAT_END_OF_PKT(x) (x & 0xf)113#define AR_WOW_PAT_OFF_MATCH(x) ((x & 0xf) << 8)114#define AR_WOW_PAT_BACKOFF 0x00000004115#define AR_WOW_CNT_AIFS_CNT 0x00000022116#define AR_WOW_CNT_SLOT_CNT 0x00000009117#define AR_WOW_CNT_KA_CNT 0x00000008118 119#define AR_WOW_TRANSMIT_BUFFER 0xe000120#define AR_WOW_TXBUF(i) (AR_WOW_TRANSMIT_BUFFER + ((i) << 2))121#define AR_WOW_KA_DESC_WORD2 0xe000122#define AR_WOW_TB_PATTERN(i) (0xe100 + (i << 8))123#define AR_WOW_TB_MASK(i) (0xec00 + (i << 5))124#define AR_WOW_PATTERN_SUPPORTED_LEGACY 0xff125#define AR_WOW_PATTERN_SUPPORTED 0xffff126#define AR_WOW_LENGTH_MAX 0xff127#define AR_WOW_LEN1_SHIFT(_i) ((0x3 - ((_i) & 0x3)) << 0x3)128#define AR_WOW_LENGTH1_MASK(_i) (AR_WOW_LENGTH_MAX << AR_WOW_LEN1_SHIFT(_i))129#define AR_WOW_LEN2_SHIFT(_i) ((0x7 - ((_i) & 0x7)) << 0x3)130#define AR_WOW_LENGTH2_MASK(_i) (AR_WOW_LENGTH_MAX << AR_WOW_LEN2_SHIFT(_i))131#define AR_WOW_LEN3_SHIFT(_i) ((0xb - ((_i) & 0xb)) << 0x3)132#define AR_WOW_LENGTH3_MASK(_i) (AR_WOW_LENGTH_MAX << AR_WOW_LEN3_SHIFT(_i))133#define AR_WOW_LEN4_SHIFT(_i) ((0xf - ((_i) & 0xf)) << 0x3)134#define AR_WOW_LENGTH4_MASK(_i) (AR_WOW_LENGTH_MAX << AR_WOW_LEN4_SHIFT(_i))135 136#endif /* REG_WOW_H */137