18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * This file is part of wl12xx
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (c) 1998-2007 Texas Instruments Incorporated
68c2ecf20Sopenharmony_ci * Copyright (C) 2008 Nokia Corporation
78c2ecf20Sopenharmony_ci */
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#ifndef __REG_H__
108c2ecf20Sopenharmony_ci#define __REG_H__
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#include <linux/bitops.h>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci#define REGISTERS_BASE 0x00300000
158c2ecf20Sopenharmony_ci#define DRPW_BASE      0x00310000
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#define REGISTERS_DOWN_SIZE 0x00008800
188c2ecf20Sopenharmony_ci#define REGISTERS_WORK_SIZE 0x0000b000
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#define HW_ACCESS_ELP_CTRL_REG_ADDR         0x1FFFC
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci/* ELP register commands */
238c2ecf20Sopenharmony_ci#define ELPCTRL_WAKE_UP             0x1
248c2ecf20Sopenharmony_ci#define ELPCTRL_WAKE_UP_WLAN_READY  0x5
258c2ecf20Sopenharmony_ci#define ELPCTRL_SLEEP               0x0
268c2ecf20Sopenharmony_ci/* ELP WLAN_READY bit */
278c2ecf20Sopenharmony_ci#define ELPCTRL_WLAN_READY          0x2
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci/* Device Configuration registers*/
308c2ecf20Sopenharmony_ci#define SOR_CFG                        (REGISTERS_BASE + 0x0800)
318c2ecf20Sopenharmony_ci#define ECPU_CTRL                      (REGISTERS_BASE + 0x0804)
328c2ecf20Sopenharmony_ci#define HI_CFG                         (REGISTERS_BASE + 0x0808)
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci/* EEPROM registers */
358c2ecf20Sopenharmony_ci#define EE_START                       (REGISTERS_BASE + 0x080C)
368c2ecf20Sopenharmony_ci#define EE_CTL                         (REGISTERS_BASE + 0x2000)
378c2ecf20Sopenharmony_ci#define EE_DATA                        (REGISTERS_BASE + 0x2004)
388c2ecf20Sopenharmony_ci#define EE_ADDR                        (REGISTERS_BASE + 0x2008)
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci#define EE_CTL_READ                   2
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci#define CHIP_ID_B                      (REGISTERS_BASE + 0x5674)
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci#define CHIP_ID_1251_PG10	           (0x7010101)
458c2ecf20Sopenharmony_ci#define CHIP_ID_1251_PG11	           (0x7020101)
468c2ecf20Sopenharmony_ci#define CHIP_ID_1251_PG12	           (0x7030101)
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#define ENABLE                         (REGISTERS_BASE + 0x5450)
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci/* Power Management registers */
518c2ecf20Sopenharmony_ci#define ELP_CFG_MODE                   (REGISTERS_BASE + 0x5804)
528c2ecf20Sopenharmony_ci#define ELP_CMD                        (REGISTERS_BASE + 0x5808)
538c2ecf20Sopenharmony_ci#define PLL_CAL_TIME                   (REGISTERS_BASE + 0x5810)
548c2ecf20Sopenharmony_ci#define CLK_REQ_TIME                   (REGISTERS_BASE + 0x5814)
558c2ecf20Sopenharmony_ci#define CLK_BUF_TIME                   (REGISTERS_BASE + 0x5818)
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci#define CFG_PLL_SYNC_CNT               (REGISTERS_BASE + 0x5820)
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci/* Scratch Pad registers*/
608c2ecf20Sopenharmony_ci#define SCR_PAD0                       (REGISTERS_BASE + 0x5608)
618c2ecf20Sopenharmony_ci#define SCR_PAD1                       (REGISTERS_BASE + 0x560C)
628c2ecf20Sopenharmony_ci#define SCR_PAD2                       (REGISTERS_BASE + 0x5610)
638c2ecf20Sopenharmony_ci#define SCR_PAD3                       (REGISTERS_BASE + 0x5614)
648c2ecf20Sopenharmony_ci#define SCR_PAD4                       (REGISTERS_BASE + 0x5618)
658c2ecf20Sopenharmony_ci#define SCR_PAD4_SET                   (REGISTERS_BASE + 0x561C)
668c2ecf20Sopenharmony_ci#define SCR_PAD4_CLR                   (REGISTERS_BASE + 0x5620)
678c2ecf20Sopenharmony_ci#define SCR_PAD5                       (REGISTERS_BASE + 0x5624)
688c2ecf20Sopenharmony_ci#define SCR_PAD5_SET                   (REGISTERS_BASE + 0x5628)
698c2ecf20Sopenharmony_ci#define SCR_PAD5_CLR                   (REGISTERS_BASE + 0x562C)
708c2ecf20Sopenharmony_ci#define SCR_PAD6                       (REGISTERS_BASE + 0x5630)
718c2ecf20Sopenharmony_ci#define SCR_PAD7                       (REGISTERS_BASE + 0x5634)
728c2ecf20Sopenharmony_ci#define SCR_PAD8                       (REGISTERS_BASE + 0x5638)
738c2ecf20Sopenharmony_ci#define SCR_PAD9                       (REGISTERS_BASE + 0x563C)
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci/* Spare registers*/
768c2ecf20Sopenharmony_ci#define SPARE_A1                       (REGISTERS_BASE + 0x0994)
778c2ecf20Sopenharmony_ci#define SPARE_A2                       (REGISTERS_BASE + 0x0998)
788c2ecf20Sopenharmony_ci#define SPARE_A3                       (REGISTERS_BASE + 0x099C)
798c2ecf20Sopenharmony_ci#define SPARE_A4                       (REGISTERS_BASE + 0x09A0)
808c2ecf20Sopenharmony_ci#define SPARE_A5                       (REGISTERS_BASE + 0x09A4)
818c2ecf20Sopenharmony_ci#define SPARE_A6                       (REGISTERS_BASE + 0x09A8)
828c2ecf20Sopenharmony_ci#define SPARE_A7                       (REGISTERS_BASE + 0x09AC)
838c2ecf20Sopenharmony_ci#define SPARE_A8                       (REGISTERS_BASE + 0x09B0)
848c2ecf20Sopenharmony_ci#define SPARE_B1                       (REGISTERS_BASE + 0x5420)
858c2ecf20Sopenharmony_ci#define SPARE_B2                       (REGISTERS_BASE + 0x5424)
868c2ecf20Sopenharmony_ci#define SPARE_B3                       (REGISTERS_BASE + 0x5428)
878c2ecf20Sopenharmony_ci#define SPARE_B4                       (REGISTERS_BASE + 0x542C)
888c2ecf20Sopenharmony_ci#define SPARE_B5                       (REGISTERS_BASE + 0x5430)
898c2ecf20Sopenharmony_ci#define SPARE_B6                       (REGISTERS_BASE + 0x5434)
908c2ecf20Sopenharmony_ci#define SPARE_B7                       (REGISTERS_BASE + 0x5438)
918c2ecf20Sopenharmony_ci#define SPARE_B8                       (REGISTERS_BASE + 0x543C)
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_cienum wl12xx_acx_int_reg {
948c2ecf20Sopenharmony_ci	ACX_REG_INTERRUPT_TRIG,
958c2ecf20Sopenharmony_ci	ACX_REG_INTERRUPT_TRIG_H,
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci/*=============================================
988c2ecf20Sopenharmony_ci  Host Interrupt Mask Register - 32bit (RW)
998c2ecf20Sopenharmony_ci  ------------------------------------------
1008c2ecf20Sopenharmony_ci  Setting a bit in this register masks the
1018c2ecf20Sopenharmony_ci  corresponding interrupt to the host.
1028c2ecf20Sopenharmony_ci  0 - RX0		- Rx first dubble buffer Data Interrupt
1038c2ecf20Sopenharmony_ci  1 - TXD		- Tx Data Interrupt
1048c2ecf20Sopenharmony_ci  2 - TXXFR		- Tx Transfer Interrupt
1058c2ecf20Sopenharmony_ci  3 - RX1		- Rx second dubble buffer Data Interrupt
1068c2ecf20Sopenharmony_ci  4 - RXXFR		- Rx Transfer Interrupt
1078c2ecf20Sopenharmony_ci  5 - EVENT_A	- Event Mailbox interrupt
1088c2ecf20Sopenharmony_ci  6 - EVENT_B	- Event Mailbox interrupt
1098c2ecf20Sopenharmony_ci  7 - WNONHST	- Wake On Host Interrupt
1108c2ecf20Sopenharmony_ci  8 - TRACE_A	- Debug Trace interrupt
1118c2ecf20Sopenharmony_ci  9 - TRACE_B	- Debug Trace interrupt
1128c2ecf20Sopenharmony_ci 10 - CDCMP		- Command Complete Interrupt
1138c2ecf20Sopenharmony_ci 11 -
1148c2ecf20Sopenharmony_ci 12 -
1158c2ecf20Sopenharmony_ci 13 -
1168c2ecf20Sopenharmony_ci 14 - ICOMP		- Initialization Complete Interrupt
1178c2ecf20Sopenharmony_ci 16 - SG SE		- Soft Gemini - Sense enable interrupt
1188c2ecf20Sopenharmony_ci 17 - SG SD		- Soft Gemini - Sense disable interrupt
1198c2ecf20Sopenharmony_ci 18 -			-
1208c2ecf20Sopenharmony_ci 19 -			-
1218c2ecf20Sopenharmony_ci 20 -			-
1228c2ecf20Sopenharmony_ci 21-			-
1238c2ecf20Sopenharmony_ci Default: 0x0001
1248c2ecf20Sopenharmony_ci*==============================================*/
1258c2ecf20Sopenharmony_ci	ACX_REG_INTERRUPT_MASK,
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci/*=============================================
1288c2ecf20Sopenharmony_ci  Host Interrupt Mask Set 16bit, (Write only)
1298c2ecf20Sopenharmony_ci  ------------------------------------------
1308c2ecf20Sopenharmony_ci Setting a bit in this register sets
1318c2ecf20Sopenharmony_ci the corresponding bin in ACX_HINT_MASK register
1328c2ecf20Sopenharmony_ci without effecting the mask
1338c2ecf20Sopenharmony_ci state of other bits (0 = no effect).
1348c2ecf20Sopenharmony_ci==============================================*/
1358c2ecf20Sopenharmony_ci	ACX_REG_HINT_MASK_SET,
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci/*=============================================
1388c2ecf20Sopenharmony_ci  Host Interrupt Mask Clear 16bit,(Write only)
1398c2ecf20Sopenharmony_ci  ------------------------------------------
1408c2ecf20Sopenharmony_ci Setting a bit in this register clears
1418c2ecf20Sopenharmony_ci the corresponding bin in ACX_HINT_MASK register
1428c2ecf20Sopenharmony_ci without effecting the mask
1438c2ecf20Sopenharmony_ci state of other bits (0 = no effect).
1448c2ecf20Sopenharmony_ci=============================================*/
1458c2ecf20Sopenharmony_ci	ACX_REG_HINT_MASK_CLR,
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci/*=============================================
1488c2ecf20Sopenharmony_ci  Host Interrupt Status Nondestructive Read
1498c2ecf20Sopenharmony_ci  16bit,(Read only)
1508c2ecf20Sopenharmony_ci  ------------------------------------------
1518c2ecf20Sopenharmony_ci The host can read this register to determine
1528c2ecf20Sopenharmony_ci which interrupts are active.
1538c2ecf20Sopenharmony_ci Reading this register doesn't
1548c2ecf20Sopenharmony_ci effect its content.
1558c2ecf20Sopenharmony_ci=============================================*/
1568c2ecf20Sopenharmony_ci	ACX_REG_INTERRUPT_NO_CLEAR,
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ci/*=============================================
1598c2ecf20Sopenharmony_ci  Host Interrupt Status Clear on Read  Register
1608c2ecf20Sopenharmony_ci  16bit,(Read only)
1618c2ecf20Sopenharmony_ci  ------------------------------------------
1628c2ecf20Sopenharmony_ci The host can read this register to determine
1638c2ecf20Sopenharmony_ci which interrupts are active.
1648c2ecf20Sopenharmony_ci Reading this register clears it,
1658c2ecf20Sopenharmony_ci thus making all interrupts inactive.
1668c2ecf20Sopenharmony_ci==============================================*/
1678c2ecf20Sopenharmony_ci	ACX_REG_INTERRUPT_CLEAR,
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci/*=============================================
1708c2ecf20Sopenharmony_ci  Host Interrupt Acknowledge Register
1718c2ecf20Sopenharmony_ci  16bit,(Write only)
1728c2ecf20Sopenharmony_ci  ------------------------------------------
1738c2ecf20Sopenharmony_ci The host can set individual bits in this
1748c2ecf20Sopenharmony_ci register to clear (acknowledge) the corresp.
1758c2ecf20Sopenharmony_ci interrupt status bits in the HINT_STS_CLR and
1768c2ecf20Sopenharmony_ci HINT_STS_ND registers, thus making the
1778c2ecf20Sopenharmony_ci assotiated interrupt inactive. (0-no effect)
1788c2ecf20Sopenharmony_ci==============================================*/
1798c2ecf20Sopenharmony_ci	ACX_REG_INTERRUPT_ACK,
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci/*===============================================
1828c2ecf20Sopenharmony_ci   Host Software Reset - 32bit RW
1838c2ecf20Sopenharmony_ci ------------------------------------------
1848c2ecf20Sopenharmony_ci    [31:1] Reserved
1858c2ecf20Sopenharmony_ci    0  SOFT_RESET Soft Reset  - When this bit is set,
1868c2ecf20Sopenharmony_ci    it holds the Wlan hardware in a soft reset state.
1878c2ecf20Sopenharmony_ci    This reset disables all MAC and baseband processor
1888c2ecf20Sopenharmony_ci    clocks except the CardBus/PCI interface clock.
1898c2ecf20Sopenharmony_ci    It also initializes all MAC state machines except
1908c2ecf20Sopenharmony_ci    the host interface. It does not reload the
1918c2ecf20Sopenharmony_ci    contents of the EEPROM. When this bit is cleared
1928c2ecf20Sopenharmony_ci    (not self-clearing), the Wlan hardware
1938c2ecf20Sopenharmony_ci    exits the software reset state.
1948c2ecf20Sopenharmony_ci===============================================*/
1958c2ecf20Sopenharmony_ci	ACX_REG_SLV_SOFT_RESET,
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ci/*===============================================
1988c2ecf20Sopenharmony_ci EEPROM Burst Read Start  - 32bit RW
1998c2ecf20Sopenharmony_ci ------------------------------------------
2008c2ecf20Sopenharmony_ci [31:1] Reserved
2018c2ecf20Sopenharmony_ci 0  ACX_EE_START -  EEPROM Burst Read Start 0
2028c2ecf20Sopenharmony_ci Setting this bit starts a burst read from
2038c2ecf20Sopenharmony_ci the external EEPROM.
2048c2ecf20Sopenharmony_ci If this bit is set (after reset) before an EEPROM read/write,
2058c2ecf20Sopenharmony_ci the burst read starts at EEPROM address 0.
2068c2ecf20Sopenharmony_ci Otherwise, it starts at the address
2078c2ecf20Sopenharmony_ci following the address of the previous access.
2088c2ecf20Sopenharmony_ci TheWlan hardware hardware clears this bit automatically.
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_ci Default: 0x00000000
2118c2ecf20Sopenharmony_ci*================================================*/
2128c2ecf20Sopenharmony_ci	ACX_REG_EE_START,
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci/* Embedded ARM CPU Control */
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_ci/*===============================================
2178c2ecf20Sopenharmony_ci Halt eCPU   - 32bit RW
2188c2ecf20Sopenharmony_ci ------------------------------------------
2198c2ecf20Sopenharmony_ci 0 HALT_ECPU Halt Embedded CPU - This bit is the
2208c2ecf20Sopenharmony_ci complement of bit 1 (MDATA2) in the SOR_CFG register.
2218c2ecf20Sopenharmony_ci During a hardware reset, this bit holds
2228c2ecf20Sopenharmony_ci the inverse of MDATA2.
2238c2ecf20Sopenharmony_ci When downloading firmware from the host,
2248c2ecf20Sopenharmony_ci set this bit (pull down MDATA2).
2258c2ecf20Sopenharmony_ci The host clears this bit after downloading the firmware into
2268c2ecf20Sopenharmony_ci zero-wait-state SSRAM.
2278c2ecf20Sopenharmony_ci When loading firmware from Flash, clear this bit (pull up MDATA2)
2288c2ecf20Sopenharmony_ci so that the eCPU can run the bootloader code in Flash
2298c2ecf20Sopenharmony_ci HALT_ECPU eCPU State
2308c2ecf20Sopenharmony_ci --------------------
2318c2ecf20Sopenharmony_ci 1 halt eCPU
2328c2ecf20Sopenharmony_ci 0 enable eCPU
2338c2ecf20Sopenharmony_ci ===============================================*/
2348c2ecf20Sopenharmony_ci	ACX_REG_ECPU_CONTROL,
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ci	ACX_REG_TABLE_LEN
2378c2ecf20Sopenharmony_ci};
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci#define ACX_SLV_SOFT_RESET_BIT   BIT(0)
2408c2ecf20Sopenharmony_ci#define ACX_REG_EEPROM_START_BIT BIT(0)
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ci/* Command/Information Mailbox Pointers */
2438c2ecf20Sopenharmony_ci
2448c2ecf20Sopenharmony_ci/*===============================================
2458c2ecf20Sopenharmony_ci  Command Mailbox Pointer - 32bit RW
2468c2ecf20Sopenharmony_ci ------------------------------------------
2478c2ecf20Sopenharmony_ci This register holds the start address of
2488c2ecf20Sopenharmony_ci the command mailbox located in the Wlan hardware memory.
2498c2ecf20Sopenharmony_ci The host must read this pointer after a reset to
2508c2ecf20Sopenharmony_ci find the location of the command mailbox.
2518c2ecf20Sopenharmony_ci The Wlan hardware initializes the command mailbox
2528c2ecf20Sopenharmony_ci pointer with the default address of the command mailbox.
2538c2ecf20Sopenharmony_ci The command mailbox pointer is not valid until after
2548c2ecf20Sopenharmony_ci the host receives the Init Complete interrupt from
2558c2ecf20Sopenharmony_ci the Wlan hardware.
2568c2ecf20Sopenharmony_ci ===============================================*/
2578c2ecf20Sopenharmony_ci#define REG_COMMAND_MAILBOX_PTR				(SCR_PAD0)
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ci/*===============================================
2608c2ecf20Sopenharmony_ci  Information Mailbox Pointer - 32bit RW
2618c2ecf20Sopenharmony_ci ------------------------------------------
2628c2ecf20Sopenharmony_ci This register holds the start address of
2638c2ecf20Sopenharmony_ci the information mailbox located in the Wlan hardware memory.
2648c2ecf20Sopenharmony_ci The host must read this pointer after a reset to find
2658c2ecf20Sopenharmony_ci the location of the information mailbox.
2668c2ecf20Sopenharmony_ci The Wlan hardware initializes the information mailbox pointer
2678c2ecf20Sopenharmony_ci with the default address of the information mailbox.
2688c2ecf20Sopenharmony_ci The information mailbox pointer is not valid
2698c2ecf20Sopenharmony_ci until after the host receives the Init Complete interrupt from
2708c2ecf20Sopenharmony_ci the Wlan hardware.
2718c2ecf20Sopenharmony_ci ===============================================*/
2728c2ecf20Sopenharmony_ci#define REG_EVENT_MAILBOX_PTR				(SCR_PAD1)
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ci
2758c2ecf20Sopenharmony_ci/* Misc */
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci#define REG_ENABLE_TX_RX				(ENABLE)
2788c2ecf20Sopenharmony_ci/*
2798c2ecf20Sopenharmony_ci * Rx configuration (filter) information element
2808c2ecf20Sopenharmony_ci * ---------------------------------------------
2818c2ecf20Sopenharmony_ci */
2828c2ecf20Sopenharmony_ci#define REG_RX_CONFIG				(RX_CFG)
2838c2ecf20Sopenharmony_ci#define REG_RX_FILTER				(RX_FILTER_CFG)
2848c2ecf20Sopenharmony_ci
2858c2ecf20Sopenharmony_ci
2868c2ecf20Sopenharmony_ci#define RX_CFG_ENABLE_PHY_HEADER_PLCP	 0x0002
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ci/* promiscuous - receives all valid frames */
2898c2ecf20Sopenharmony_ci#define RX_CFG_PROMISCUOUS		 0x0008
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ci/* receives frames from any BSSID */
2928c2ecf20Sopenharmony_ci#define RX_CFG_BSSID			 0x0020
2938c2ecf20Sopenharmony_ci
2948c2ecf20Sopenharmony_ci/* receives frames destined to any MAC address */
2958c2ecf20Sopenharmony_ci#define RX_CFG_MAC			 0x0010
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ci#define RX_CFG_ENABLE_ONLY_MY_DEST_MAC	 0x0010
2988c2ecf20Sopenharmony_ci#define RX_CFG_ENABLE_ANY_DEST_MAC	 0x0000
2998c2ecf20Sopenharmony_ci#define RX_CFG_ENABLE_ONLY_MY_BSSID	 0x0020
3008c2ecf20Sopenharmony_ci#define RX_CFG_ENABLE_ANY_BSSID		 0x0000
3018c2ecf20Sopenharmony_ci
3028c2ecf20Sopenharmony_ci/* discards all broadcast frames */
3038c2ecf20Sopenharmony_ci#define RX_CFG_DISABLE_BCAST		 0x0200
3048c2ecf20Sopenharmony_ci
3058c2ecf20Sopenharmony_ci#define RX_CFG_ENABLE_ONLY_MY_SSID	 0x0400
3068c2ecf20Sopenharmony_ci#define RX_CFG_ENABLE_RX_CMPLT_FCS_ERROR 0x0800
3078c2ecf20Sopenharmony_ci#define RX_CFG_COPY_RX_STATUS		 0x2000
3088c2ecf20Sopenharmony_ci#define RX_CFG_TSF			 0x10000
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_ANY_DST_MY_BSS	 (RX_CFG_ENABLE_ANY_DEST_MAC | \
3118c2ecf20Sopenharmony_ci					  RX_CFG_ENABLE_ONLY_MY_BSSID)
3128c2ecf20Sopenharmony_ci
3138c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_MY_DST_ANY_BSS	 (RX_CFG_ENABLE_ONLY_MY_DEST_MAC\
3148c2ecf20Sopenharmony_ci					  | RX_CFG_ENABLE_ANY_BSSID)
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_ANY_DST_ANY_BSS (RX_CFG_ENABLE_ANY_DEST_MAC | \
3178c2ecf20Sopenharmony_ci					  RX_CFG_ENABLE_ANY_BSSID)
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_MY_DST_MY_BSS	 (RX_CFG_ENABLE_ONLY_MY_DEST_MAC\
3208c2ecf20Sopenharmony_ci					  | RX_CFG_ENABLE_ONLY_MY_BSSID)
3218c2ecf20Sopenharmony_ci
3228c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_FOR_SCAN  (RX_CFG_ENABLE_PHY_HEADER_PLCP \
3238c2ecf20Sopenharmony_ci				    | RX_CFG_ENABLE_RX_CMPLT_FCS_ERROR \
3248c2ecf20Sopenharmony_ci				    | RX_CFG_COPY_RX_STATUS | RX_CFG_TSF)
3258c2ecf20Sopenharmony_ci
3268c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_FOR_MEASUREMENT (RX_CFG_ENABLE_ANY_DEST_MAC)
3278c2ecf20Sopenharmony_ci
3288c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_FOR_JOIN	 (RX_CFG_ENABLE_ONLY_MY_BSSID | \
3298c2ecf20Sopenharmony_ci					  RX_CFG_ENABLE_ONLY_MY_DEST_MAC)
3308c2ecf20Sopenharmony_ci
3318c2ecf20Sopenharmony_ci#define RX_CONFIG_OPTION_FOR_IBSS_JOIN   (RX_CFG_ENABLE_ONLY_MY_SSID | \
3328c2ecf20Sopenharmony_ci					  RX_CFG_ENABLE_ONLY_MY_DEST_MAC)
3338c2ecf20Sopenharmony_ci
3348c2ecf20Sopenharmony_ci#define RX_FILTER_OPTION_DEF	      (CFG_RX_MGMT_EN | CFG_RX_DATA_EN\
3358c2ecf20Sopenharmony_ci				       | CFG_RX_CTL_EN | CFG_RX_BCN_EN\
3368c2ecf20Sopenharmony_ci				       | CFG_RX_AUTH_EN | CFG_RX_ASSOC_EN)
3378c2ecf20Sopenharmony_ci
3388c2ecf20Sopenharmony_ci#define RX_FILTER_OPTION_FILTER_ALL	 0
3398c2ecf20Sopenharmony_ci
3408c2ecf20Sopenharmony_ci#define RX_FILTER_OPTION_DEF_PRSP_BCN  (CFG_RX_PRSP_EN | CFG_RX_MGMT_EN\
3418c2ecf20Sopenharmony_ci					| CFG_RX_RCTS_ACK | CFG_RX_BCN_EN)
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ci#define RX_FILTER_OPTION_JOIN	     (CFG_RX_MGMT_EN | CFG_RX_DATA_EN\
3448c2ecf20Sopenharmony_ci				      | CFG_RX_BCN_EN | CFG_RX_AUTH_EN\
3458c2ecf20Sopenharmony_ci				      | CFG_RX_ASSOC_EN | CFG_RX_RCTS_ACK\
3468c2ecf20Sopenharmony_ci				      | CFG_RX_PRSP_EN)
3478c2ecf20Sopenharmony_ci
3488c2ecf20Sopenharmony_ci
3498c2ecf20Sopenharmony_ci/*===============================================
3508c2ecf20Sopenharmony_ci EEPROM Read/Write Request 32bit RW
3518c2ecf20Sopenharmony_ci ------------------------------------------
3528c2ecf20Sopenharmony_ci 1 EE_READ - EEPROM Read Request 1 - Setting this bit
3538c2ecf20Sopenharmony_ci loads a single byte of data into the EE_DATA
3548c2ecf20Sopenharmony_ci register from the EEPROM location specified in
3558c2ecf20Sopenharmony_ci the EE_ADDR register.
3568c2ecf20Sopenharmony_ci The Wlan hardware hardware clears this bit automatically.
3578c2ecf20Sopenharmony_ci EE_DATA is valid when this bit is cleared.
3588c2ecf20Sopenharmony_ci
3598c2ecf20Sopenharmony_ci 0 EE_WRITE  - EEPROM Write Request  - Setting this bit
3608c2ecf20Sopenharmony_ci writes a single byte of data from the EE_DATA register into the
3618c2ecf20Sopenharmony_ci EEPROM location specified in the EE_ADDR register.
3628c2ecf20Sopenharmony_ci The Wlan hardware hardware clears this bit automatically.
3638c2ecf20Sopenharmony_ci*===============================================*/
3648c2ecf20Sopenharmony_ci#define EE_CTL                              (REGISTERS_BASE + 0x2000)
3658c2ecf20Sopenharmony_ci#define ACX_EE_CTL_REG                      EE_CTL
3668c2ecf20Sopenharmony_ci#define EE_WRITE                            0x00000001ul
3678c2ecf20Sopenharmony_ci#define EE_READ                             0x00000002ul
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ci/*===============================================
3708c2ecf20Sopenharmony_ci  EEPROM Address  - 32bit RW
3718c2ecf20Sopenharmony_ci  ------------------------------------------
3728c2ecf20Sopenharmony_ci  This register specifies the address
3738c2ecf20Sopenharmony_ci  within the EEPROM from/to which to read/write data.
3748c2ecf20Sopenharmony_ci  ===============================================*/
3758c2ecf20Sopenharmony_ci#define EE_ADDR                             (REGISTERS_BASE + 0x2008)
3768c2ecf20Sopenharmony_ci#define ACX_EE_ADDR_REG                     EE_ADDR
3778c2ecf20Sopenharmony_ci
3788c2ecf20Sopenharmony_ci/*===============================================
3798c2ecf20Sopenharmony_ci  EEPROM Data  - 32bit RW
3808c2ecf20Sopenharmony_ci  ------------------------------------------
3818c2ecf20Sopenharmony_ci  This register either holds the read 8 bits of
3828c2ecf20Sopenharmony_ci  data from the EEPROM or the write data
3838c2ecf20Sopenharmony_ci  to be written to the EEPROM.
3848c2ecf20Sopenharmony_ci  ===============================================*/
3858c2ecf20Sopenharmony_ci#define EE_DATA                             (REGISTERS_BASE + 0x2004)
3868c2ecf20Sopenharmony_ci#define ACX_EE_DATA_REG                     EE_DATA
3878c2ecf20Sopenharmony_ci
3888c2ecf20Sopenharmony_ci#define EEPROM_ACCESS_TO                    10000   /* timeout counter */
3898c2ecf20Sopenharmony_ci#define START_EEPROM_MGR                    0x00000001
3908c2ecf20Sopenharmony_ci
3918c2ecf20Sopenharmony_ci/*===============================================
3928c2ecf20Sopenharmony_ci  EEPROM Base Address  - 32bit RW
3938c2ecf20Sopenharmony_ci  ------------------------------------------
3948c2ecf20Sopenharmony_ci  This register holds the upper nine bits
3958c2ecf20Sopenharmony_ci  [23:15] of the 24-bit Wlan hardware memory
3968c2ecf20Sopenharmony_ci  address for burst reads from EEPROM accesses.
3978c2ecf20Sopenharmony_ci  The EEPROM provides the lower 15 bits of this address.
3988c2ecf20Sopenharmony_ci  The MSB of the address from the EEPROM is ignored.
3998c2ecf20Sopenharmony_ci  ===============================================*/
4008c2ecf20Sopenharmony_ci#define ACX_EE_CFG                          EE_CFG
4018c2ecf20Sopenharmony_ci
4028c2ecf20Sopenharmony_ci/*===============================================
4038c2ecf20Sopenharmony_ci  GPIO Output Values  -32bit, RW
4048c2ecf20Sopenharmony_ci  ------------------------------------------
4058c2ecf20Sopenharmony_ci  [31:16]  Reserved
4068c2ecf20Sopenharmony_ci  [15: 0]  Specify the output values (at the output driver inputs) for
4078c2ecf20Sopenharmony_ci  GPIO[15:0], respectively.
4088c2ecf20Sopenharmony_ci  ===============================================*/
4098c2ecf20Sopenharmony_ci#define ACX_GPIO_OUT_REG            GPIO_OUT
4108c2ecf20Sopenharmony_ci#define ACX_MAX_GPIO_LINES          15
4118c2ecf20Sopenharmony_ci
4128c2ecf20Sopenharmony_ci/*===============================================
4138c2ecf20Sopenharmony_ci  Contention window  -32bit, RW
4148c2ecf20Sopenharmony_ci  ------------------------------------------
4158c2ecf20Sopenharmony_ci  [31:26]  Reserved
4168c2ecf20Sopenharmony_ci  [25:16]  Max (0x3ff)
4178c2ecf20Sopenharmony_ci  [15:07]  Reserved
4188c2ecf20Sopenharmony_ci  [06:00]  Current contention window value - default is 0x1F
4198c2ecf20Sopenharmony_ci  ===============================================*/
4208c2ecf20Sopenharmony_ci#define ACX_CONT_WIND_CFG_REG    CONT_WIND_CFG
4218c2ecf20Sopenharmony_ci#define ACX_CONT_WIND_MIN_MASK   0x0000007f
4228c2ecf20Sopenharmony_ci#define ACX_CONT_WIND_MAX        0x03ff0000
4238c2ecf20Sopenharmony_ci
4248c2ecf20Sopenharmony_ci/*===============================================
4258c2ecf20Sopenharmony_ci  HI_CFG Interface Configuration Register Values
4268c2ecf20Sopenharmony_ci  ------------------------------------------
4278c2ecf20Sopenharmony_ci  ===============================================*/
4288c2ecf20Sopenharmony_ci#define HI_CFG_UART_ENABLE          0x00000004
4298c2ecf20Sopenharmony_ci#define HI_CFG_RST232_ENABLE        0x00000008
4308c2ecf20Sopenharmony_ci#define HI_CFG_CLOCK_REQ_SELECT     0x00000010
4318c2ecf20Sopenharmony_ci#define HI_CFG_HOST_INT_ENABLE      0x00000020
4328c2ecf20Sopenharmony_ci#define HI_CFG_VLYNQ_OUTPUT_ENABLE  0x00000040
4338c2ecf20Sopenharmony_ci#define HI_CFG_HOST_INT_ACTIVE_LOW  0x00000080
4348c2ecf20Sopenharmony_ci#define HI_CFG_UART_TX_OUT_GPIO_15  0x00000100
4358c2ecf20Sopenharmony_ci#define HI_CFG_UART_TX_OUT_GPIO_14  0x00000200
4368c2ecf20Sopenharmony_ci#define HI_CFG_UART_TX_OUT_GPIO_7   0x00000400
4378c2ecf20Sopenharmony_ci
4388c2ecf20Sopenharmony_ci/*
4398c2ecf20Sopenharmony_ci * NOTE: USE_ACTIVE_HIGH compilation flag should be defined in makefile
4408c2ecf20Sopenharmony_ci *       for platforms using active high interrupt level
4418c2ecf20Sopenharmony_ci */
4428c2ecf20Sopenharmony_ci#ifdef USE_ACTIVE_HIGH
4438c2ecf20Sopenharmony_ci#define HI_CFG_DEF_VAL              \
4448c2ecf20Sopenharmony_ci	(HI_CFG_UART_ENABLE |        \
4458c2ecf20Sopenharmony_ci	HI_CFG_RST232_ENABLE |      \
4468c2ecf20Sopenharmony_ci	HI_CFG_CLOCK_REQ_SELECT |   \
4478c2ecf20Sopenharmony_ci	HI_CFG_HOST_INT_ENABLE)
4488c2ecf20Sopenharmony_ci#else
4498c2ecf20Sopenharmony_ci#define HI_CFG_DEF_VAL              \
4508c2ecf20Sopenharmony_ci	(HI_CFG_UART_ENABLE |        \
4518c2ecf20Sopenharmony_ci	HI_CFG_RST232_ENABLE |      \
4528c2ecf20Sopenharmony_ci	HI_CFG_CLOCK_REQ_SELECT |   \
4538c2ecf20Sopenharmony_ci	HI_CFG_HOST_INT_ENABLE)
4548c2ecf20Sopenharmony_ci
4558c2ecf20Sopenharmony_ci#endif
4568c2ecf20Sopenharmony_ci
4578c2ecf20Sopenharmony_ci#define REF_FREQ_19_2                       0
4588c2ecf20Sopenharmony_ci#define REF_FREQ_26_0                       1
4598c2ecf20Sopenharmony_ci#define REF_FREQ_38_4                       2
4608c2ecf20Sopenharmony_ci#define REF_FREQ_40_0                       3
4618c2ecf20Sopenharmony_ci#define REF_FREQ_33_6                       4
4628c2ecf20Sopenharmony_ci#define REF_FREQ_NUM                        5
4638c2ecf20Sopenharmony_ci
4648c2ecf20Sopenharmony_ci#define LUT_PARAM_INTEGER_DIVIDER           0
4658c2ecf20Sopenharmony_ci#define LUT_PARAM_FRACTIONAL_DIVIDER        1
4668c2ecf20Sopenharmony_ci#define LUT_PARAM_ATTN_BB                   2
4678c2ecf20Sopenharmony_ci#define LUT_PARAM_ALPHA_BB                  3
4688c2ecf20Sopenharmony_ci#define LUT_PARAM_STOP_TIME_BB              4
4698c2ecf20Sopenharmony_ci#define LUT_PARAM_BB_PLL_LOOP_FILTER        5
4708c2ecf20Sopenharmony_ci#define LUT_PARAM_NUM                       6
4718c2ecf20Sopenharmony_ci
4728c2ecf20Sopenharmony_ci#define ACX_EEPROMLESS_IND_REG              (SCR_PAD4)
4738c2ecf20Sopenharmony_ci#define USE_EEPROM                          0
4748c2ecf20Sopenharmony_ci#define SOFT_RESET_MAX_TIME                 1000000
4758c2ecf20Sopenharmony_ci#define SOFT_RESET_STALL_TIME               1000
4768c2ecf20Sopenharmony_ci#define NVS_DATA_BUNDARY_ALIGNMENT          4
4778c2ecf20Sopenharmony_ci
4788c2ecf20Sopenharmony_ci
4798c2ecf20Sopenharmony_ci/* Firmware image load chunk size */
4808c2ecf20Sopenharmony_ci#define CHUNK_SIZE          512
4818c2ecf20Sopenharmony_ci
4828c2ecf20Sopenharmony_ci/* Firmware image header size */
4838c2ecf20Sopenharmony_ci#define FW_HDR_SIZE 8
4848c2ecf20Sopenharmony_ci
4858c2ecf20Sopenharmony_ci#define ECPU_CONTROL_HALT					0x00000101
4868c2ecf20Sopenharmony_ci
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ci/******************************************************************************
4898c2ecf20Sopenharmony_ci
4908c2ecf20Sopenharmony_ci    CHANNELS, BAND & REG DOMAINS definitions
4918c2ecf20Sopenharmony_ci
4928c2ecf20Sopenharmony_ci******************************************************************************/
4938c2ecf20Sopenharmony_ci
4948c2ecf20Sopenharmony_ci
4958c2ecf20Sopenharmony_cienum {
4968c2ecf20Sopenharmony_ci	RADIO_BAND_2_4GHZ = 0,  /* 2.4 Ghz band */
4978c2ecf20Sopenharmony_ci	RADIO_BAND_5GHZ = 1,    /* 5 Ghz band */
4988c2ecf20Sopenharmony_ci	RADIO_BAND_JAPAN_4_9_GHZ = 2,
4998c2ecf20Sopenharmony_ci	DEFAULT_BAND = RADIO_BAND_2_4GHZ,
5008c2ecf20Sopenharmony_ci	INVALID_BAND = 0xFE,
5018c2ecf20Sopenharmony_ci	MAX_RADIO_BANDS = 0xFF
5028c2ecf20Sopenharmony_ci};
5038c2ecf20Sopenharmony_ci
5048c2ecf20Sopenharmony_cienum {
5058c2ecf20Sopenharmony_ci	NO_RATE      = 0,
5068c2ecf20Sopenharmony_ci	RATE_1MBPS   = 0x0A,
5078c2ecf20Sopenharmony_ci	RATE_2MBPS   = 0x14,
5088c2ecf20Sopenharmony_ci	RATE_5_5MBPS = 0x37,
5098c2ecf20Sopenharmony_ci	RATE_6MBPS   = 0x0B,
5108c2ecf20Sopenharmony_ci	RATE_9MBPS   = 0x0F,
5118c2ecf20Sopenharmony_ci	RATE_11MBPS  = 0x6E,
5128c2ecf20Sopenharmony_ci	RATE_12MBPS  = 0x0A,
5138c2ecf20Sopenharmony_ci	RATE_18MBPS  = 0x0E,
5148c2ecf20Sopenharmony_ci	RATE_22MBPS  = 0xDC,
5158c2ecf20Sopenharmony_ci	RATE_24MBPS  = 0x09,
5168c2ecf20Sopenharmony_ci	RATE_36MBPS  = 0x0D,
5178c2ecf20Sopenharmony_ci	RATE_48MBPS  = 0x08,
5188c2ecf20Sopenharmony_ci	RATE_54MBPS  = 0x0C
5198c2ecf20Sopenharmony_ci};
5208c2ecf20Sopenharmony_ci
5218c2ecf20Sopenharmony_cienum {
5228c2ecf20Sopenharmony_ci	RATE_INDEX_1MBPS   =  0,
5238c2ecf20Sopenharmony_ci	RATE_INDEX_2MBPS   =  1,
5248c2ecf20Sopenharmony_ci	RATE_INDEX_5_5MBPS =  2,
5258c2ecf20Sopenharmony_ci	RATE_INDEX_6MBPS   =  3,
5268c2ecf20Sopenharmony_ci	RATE_INDEX_9MBPS   =  4,
5278c2ecf20Sopenharmony_ci	RATE_INDEX_11MBPS  =  5,
5288c2ecf20Sopenharmony_ci	RATE_INDEX_12MBPS  =  6,
5298c2ecf20Sopenharmony_ci	RATE_INDEX_18MBPS  =  7,
5308c2ecf20Sopenharmony_ci	RATE_INDEX_22MBPS  =  8,
5318c2ecf20Sopenharmony_ci	RATE_INDEX_24MBPS  =  9,
5328c2ecf20Sopenharmony_ci	RATE_INDEX_36MBPS  =  10,
5338c2ecf20Sopenharmony_ci	RATE_INDEX_48MBPS  =  11,
5348c2ecf20Sopenharmony_ci	RATE_INDEX_54MBPS  =  12,
5358c2ecf20Sopenharmony_ci	RATE_INDEX_MAX     =  RATE_INDEX_54MBPS,
5368c2ecf20Sopenharmony_ci	MAX_RATE_INDEX,
5378c2ecf20Sopenharmony_ci	INVALID_RATE_INDEX = MAX_RATE_INDEX,
5388c2ecf20Sopenharmony_ci	RATE_INDEX_ENUM_MAX_SIZE = 0x7FFFFFFF
5398c2ecf20Sopenharmony_ci};
5408c2ecf20Sopenharmony_ci
5418c2ecf20Sopenharmony_cienum {
5428c2ecf20Sopenharmony_ci	RATE_MASK_1MBPS = 0x1,
5438c2ecf20Sopenharmony_ci	RATE_MASK_2MBPS = 0x2,
5448c2ecf20Sopenharmony_ci	RATE_MASK_5_5MBPS = 0x4,
5458c2ecf20Sopenharmony_ci	RATE_MASK_11MBPS = 0x20,
5468c2ecf20Sopenharmony_ci};
5478c2ecf20Sopenharmony_ci
5488c2ecf20Sopenharmony_ci#define SHORT_PREAMBLE_BIT   BIT(0) /* CCK or Barker depending on the rate */
5498c2ecf20Sopenharmony_ci#define OFDM_RATE_BIT        BIT(6)
5508c2ecf20Sopenharmony_ci#define PBCC_RATE_BIT        BIT(7)
5518c2ecf20Sopenharmony_ci
5528c2ecf20Sopenharmony_cienum {
5538c2ecf20Sopenharmony_ci	CCK_LONG = 0,
5548c2ecf20Sopenharmony_ci	CCK_SHORT = SHORT_PREAMBLE_BIT,
5558c2ecf20Sopenharmony_ci	PBCC_LONG = PBCC_RATE_BIT,
5568c2ecf20Sopenharmony_ci	PBCC_SHORT = PBCC_RATE_BIT | SHORT_PREAMBLE_BIT,
5578c2ecf20Sopenharmony_ci	OFDM = OFDM_RATE_BIT
5588c2ecf20Sopenharmony_ci};
5598c2ecf20Sopenharmony_ci
5608c2ecf20Sopenharmony_ci/******************************************************************************
5618c2ecf20Sopenharmony_ci
5628c2ecf20Sopenharmony_ciTransmit-Descriptor RATE-SET field definitions...
5638c2ecf20Sopenharmony_ci
5648c2ecf20Sopenharmony_ciDefine a new "Rate-Set" for TX path that incorporates the
5658c2ecf20Sopenharmony_ciRate & Modulation info into a single 16-bit field.
5668c2ecf20Sopenharmony_ci
5678c2ecf20Sopenharmony_ciTxdRateSet_t:
5688c2ecf20Sopenharmony_cib15   - Indicates Preamble type (1=SHORT, 0=LONG).
5698c2ecf20Sopenharmony_ci	Notes:
5708c2ecf20Sopenharmony_ci	Must be LONG (0) for 1Mbps rate.
5718c2ecf20Sopenharmony_ci	Does not apply (set to 0) for RevG-OFDM rates.
5728c2ecf20Sopenharmony_cib14   - Indicates PBCC encoding (1=PBCC, 0=not).
5738c2ecf20Sopenharmony_ci	Notes:
5748c2ecf20Sopenharmony_ci	Does not apply (set to 0) for rates 1 and 2 Mbps.
5758c2ecf20Sopenharmony_ci	Does not apply (set to 0) for RevG-OFDM rates.
5768c2ecf20Sopenharmony_cib13    - Unused (set to 0).
5778c2ecf20Sopenharmony_cib12-b0 - Supported Rate indicator bits as defined below.
5788c2ecf20Sopenharmony_ci
5798c2ecf20Sopenharmony_ci******************************************************************************/
5808c2ecf20Sopenharmony_ci
5818c2ecf20Sopenharmony_ci
5828c2ecf20Sopenharmony_ci/*************************************************************************
5838c2ecf20Sopenharmony_ci
5848c2ecf20Sopenharmony_ci    Interrupt Trigger Register (Host -> WiLink)
5858c2ecf20Sopenharmony_ci
5868c2ecf20Sopenharmony_ci**************************************************************************/
5878c2ecf20Sopenharmony_ci
5888c2ecf20Sopenharmony_ci/* Hardware to Embedded CPU Interrupts - first 32-bit register set */
5898c2ecf20Sopenharmony_ci
5908c2ecf20Sopenharmony_ci/*
5918c2ecf20Sopenharmony_ci * Host Command Interrupt. Setting this bit masks
5928c2ecf20Sopenharmony_ci * the interrupt that the host issues to inform
5938c2ecf20Sopenharmony_ci * the FW that it has sent a command
5948c2ecf20Sopenharmony_ci * to the Wlan hardware Command Mailbox.
5958c2ecf20Sopenharmony_ci */
5968c2ecf20Sopenharmony_ci#define INTR_TRIG_CMD       BIT(0)
5978c2ecf20Sopenharmony_ci
5988c2ecf20Sopenharmony_ci/*
5998c2ecf20Sopenharmony_ci * Host Event Acknowlegde Interrupt. The host
6008c2ecf20Sopenharmony_ci * sets this bit to acknowledge that it received
6018c2ecf20Sopenharmony_ci * the unsolicited information from the event
6028c2ecf20Sopenharmony_ci * mailbox.
6038c2ecf20Sopenharmony_ci */
6048c2ecf20Sopenharmony_ci#define INTR_TRIG_EVENT_ACK BIT(1)
6058c2ecf20Sopenharmony_ci
6068c2ecf20Sopenharmony_ci/*
6078c2ecf20Sopenharmony_ci * The host sets this bit to inform the Wlan
6088c2ecf20Sopenharmony_ci * FW that a TX packet is in the XFER
6098c2ecf20Sopenharmony_ci * Buffer #0.
6108c2ecf20Sopenharmony_ci */
6118c2ecf20Sopenharmony_ci#define INTR_TRIG_TX_PROC0 BIT(2)
6128c2ecf20Sopenharmony_ci
6138c2ecf20Sopenharmony_ci/*
6148c2ecf20Sopenharmony_ci * The host sets this bit to inform the FW
6158c2ecf20Sopenharmony_ci * that it read a packet from RX XFER
6168c2ecf20Sopenharmony_ci * Buffer #0.
6178c2ecf20Sopenharmony_ci */
6188c2ecf20Sopenharmony_ci#define INTR_TRIG_RX_PROC0 BIT(3)
6198c2ecf20Sopenharmony_ci
6208c2ecf20Sopenharmony_ci#define INTR_TRIG_DEBUG_ACK BIT(4)
6218c2ecf20Sopenharmony_ci
6228c2ecf20Sopenharmony_ci#define INTR_TRIG_STATE_CHANGED BIT(5)
6238c2ecf20Sopenharmony_ci
6248c2ecf20Sopenharmony_ci
6258c2ecf20Sopenharmony_ci/* Hardware to Embedded CPU Interrupts - second 32-bit register set */
6268c2ecf20Sopenharmony_ci
6278c2ecf20Sopenharmony_ci/*
6288c2ecf20Sopenharmony_ci * The host sets this bit to inform the FW
6298c2ecf20Sopenharmony_ci * that it read a packet from RX XFER
6308c2ecf20Sopenharmony_ci * Buffer #1.
6318c2ecf20Sopenharmony_ci */
6328c2ecf20Sopenharmony_ci#define INTR_TRIG_RX_PROC1 BIT(17)
6338c2ecf20Sopenharmony_ci
6348c2ecf20Sopenharmony_ci/*
6358c2ecf20Sopenharmony_ci * The host sets this bit to inform the Wlan
6368c2ecf20Sopenharmony_ci * hardware that a TX packet is in the XFER
6378c2ecf20Sopenharmony_ci * Buffer #1.
6388c2ecf20Sopenharmony_ci */
6398c2ecf20Sopenharmony_ci#define INTR_TRIG_TX_PROC1 BIT(18)
6408c2ecf20Sopenharmony_ci
6418c2ecf20Sopenharmony_ci#endif
642