.addr = R_AX_RXTRIG_TEST_USER_2,
                .mask = B_AX_RXTRIG_RU26_DIS,
        },
+       .wow_ctrl = {.addr = R_AX_WOW_CTRL, .mask = B_AX_WOW_WOWEN,},
 
        .check_mac_en = rtw89_mac_check_mac_en_ax,
        .sys_init = sys_init_ax,
 
        struct rtw89_reg_def muedca_ctrl;
        struct rtw89_reg_def bfee_ctrl;
        struct rtw89_reg_def narrow_bw_ru_dis;
+       struct rtw89_reg_def wow_ctrl;
 
        int (*check_mac_en)(struct rtw89_dev *rtwdev, u8 band,
                            enum rtw89_mac_hwmod_sel sel);
 
                .addr = R_BE_RXTRIG_TEST_USER_2,
                .mask = B_BE_RXTRIG_RU26_DIS,
        },
+       .wow_ctrl = {.addr = R_BE_WOW_CTRL, .mask = B_BE_WOW_WOWEN,},
 
        .check_mac_en = rtw89_mac_check_mac_en_be,
        .sys_init = sys_init_be,
 
 #define B_BE_CUT_AMSDU_CHKLEN_L_TH_MASK GENMASK(23, 16)
 #define B_BE_CUT_AMSDU_CHKLEN_H_TH_MASK GENMASK(15, 0)
 
+#define R_BE_WOW_CTRL 0x9CB8
+#define B_BE_WOW_HCI BIT(5)
+#define B_BE_WOW_DROP BIT(2)
+#define B_BE_WOW_WOWEN BIT(1)
+#define B_BE_WOW_FORCE_WAKEUP BIT(0)
+
 #define R_BE_RX_HDRTRNS 0x9CC0
 #define B_BE_RX_MGN_MLD_ADDR_EN BIT(6)
 #define B_BE_HDR_INFO_MASK GENMASK(5, 4)
 
 
 static int rtw89_wow_check_fw_status(struct rtw89_dev *rtwdev, bool wow_enable)
 {
+       const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
        u8 polling;
        int ret;
 
        ret = read_poll_timeout_atomic(rtw89_read8_mask, polling,
                                       wow_enable == !!polling,
                                       50, 50000, false, rtwdev,
-                                      R_AX_WOW_CTRL, B_AX_WOW_WOWEN);
+                                      mac->wow_ctrl.addr, mac->wow_ctrl.mask);
        if (ret)
                rtw89_err(rtwdev, "failed to check wow status %s\n",
                          wow_enable ? "enabled" : "disabled");