}
 }
 
+static void rtw8852b_bb_reset(struct rtw89_dev *rtwdev,
+                             enum rtw89_phy_idx phy_idx)
+{
+       rtw89_phy_write32_set(rtwdev, R_P0_TXPW_RSTB, B_P0_TXPW_RSTB_MANON);
+       rtw89_phy_write32_set(rtwdev, R_P0_TSSI_TRK, B_P0_TSSI_TRK_EN);
+       rtw89_phy_write32_set(rtwdev, R_P1_TXPW_RSTB, B_P1_TXPW_RSTB_MANON);
+       rtw89_phy_write32_set(rtwdev, R_P1_TSSI_TRK, B_P1_TSSI_TRK_EN);
+       rtw8852b_bb_reset_all(rtwdev, phy_idx);
+       rtw89_phy_write32_clr(rtwdev, R_P0_TXPW_RSTB, B_P0_TXPW_RSTB_MANON);
+       rtw89_phy_write32_clr(rtwdev, R_P0_TSSI_TRK, B_P0_TSSI_TRK_EN);
+       rtw89_phy_write32_clr(rtwdev, R_P1_TXPW_RSTB, B_P1_TXPW_RSTB_MANON);
+       rtw89_phy_write32_clr(rtwdev, R_P1_TSSI_TRK, B_P1_TSSI_TRK_EN);
+}
+
+static void rtw8852b_bb_macid_ctrl_init(struct rtw89_dev *rtwdev,
+                                       enum rtw89_phy_idx phy_idx)
+{
+       u32 addr;
+
+       for (addr = R_AX_PWR_MACID_LMT_TABLE0;
+            addr <= R_AX_PWR_MACID_LMT_TABLE127; addr += 4)
+               rtw89_mac_txpwr_write32(rtwdev, phy_idx, addr, 0);
+}
+
+static void rtw8852b_bb_sethw(struct rtw89_dev *rtwdev)
+{
+       struct rtw89_phy_efuse_gain *gain = &rtwdev->efuse_gain;
+
+       rtw89_phy_write32_clr(rtwdev, R_P0_EN_SOUND_WO_NDP, B_P0_EN_SOUND_WO_NDP);
+       rtw89_phy_write32_clr(rtwdev, R_P1_EN_SOUND_WO_NDP, B_P1_EN_SOUND_WO_NDP);
+
+       rtw8852b_bb_macid_ctrl_init(rtwdev, RTW89_PHY_0);
+
+       /* read these registers after loading BB parameters */
+       gain->offset_base[RTW89_PHY_0] =
+               rtw89_phy_read32_mask(rtwdev, R_P0_RPL1, B_P0_RPL1_BIAS_MASK);
+       gain->rssi_base[RTW89_PHY_0] =
+               rtw89_phy_read32_mask(rtwdev, R_P1_RPL1, B_P0_RPL1_BIAS_MASK);
+}
+
 static void rtw8852b_set_channel_bb(struct rtw89_dev *rtwdev, const struct rtw89_chan *chan,
                                    enum rtw89_phy_idx phy_idx)
 {
 static const struct rtw89_chip_ops rtw8852b_chip_ops = {
        .enable_bb_rf           = rtw8852b_mac_enable_bb_rf,
        .disable_bb_rf          = rtw8852b_mac_disable_bb_rf,
+       .bb_reset               = rtw8852b_bb_reset,
+       .bb_sethw               = rtw8852b_bb_sethw,
        .set_channel            = rtw8852b_set_channel,
        .set_channel_help       = rtw8852b_set_channel_help,
        .read_efuse             = rtw8852b_read_efuse,