return index;
 }
 
+int mt7615_eeprom_get_power_delta_index(struct mt7615_dev *dev,
+                                       enum nl80211_band band)
+{
+       /* assume the first rate has the highest power offset */
+       if (is_mt7663(&dev->mt76)) {
+               if (band == NL80211_BAND_2GHZ)
+                       return MT_EE_TX0_5G_G0_TARGET_POWER;
+               else
+                       return MT7663_EE_5G_RATE_POWER;
+       }
+
+       if (band == NL80211_BAND_2GHZ)
+               return MT_EE_2G_RATE_POWER;
+       else
+               return MT_EE_5G_RATE_POWER;
+}
+
 static void mt7615_apply_cal_free_data(struct mt7615_dev *dev)
 {
        static const u16 ical[] = {
 
        MT_EE_CALDATA_FLASH =                   0x052,
        MT_EE_TX0_2G_TARGET_POWER =             0x058,
        MT_EE_TX0_5G_G0_TARGET_POWER =          0x070,
+       MT7663_EE_5G_RATE_POWER =               0x089,
        MT_EE_TX1_5G_G0_TARGET_POWER =          0x098,
        MT_EE_2G_RATE_POWER =                   0x0be,
        MT_EE_5G_RATE_POWER =                   0x0d5,
 
                         struct ieee80211_supported_band *sband)
 {
        int i, n_chains = hweight8(dev->mphy.antenna_mask), target_chains;
+       int delta_idx, delta = mt76_tx_power_nss_delta(n_chains);
        u8 *eep = (u8 *)dev->mt76.eeprom.data;
        enum nl80211_band band = sband->band;
-       int delta = mt76_tx_power_nss_delta(n_chains);
        u8 rate_val;
 
-       /* assume the first rate has the highest power offset */
-       if (band == NL80211_BAND_2GHZ)
-               rate_val = eep[MT_EE_2G_RATE_POWER];
-       else
-               rate_val = eep[MT_EE_5G_RATE_POWER];
-
+       delta_idx = mt7615_eeprom_get_power_delta_index(dev, band);
+       rate_val = eep[delta_idx];
        if ((rate_val & ~MT_EE_RATE_POWER_MASK) ==
            (MT_EE_RATE_POWER_EN | MT_EE_RATE_POWER_SIGN))
                delta += rate_val & MT_EE_RATE_POWER_MASK;
 
 int mt7615_eeprom_get_target_power_index(struct mt7615_dev *dev,
                                         struct ieee80211_channel *chan,
                                         u8 chain_idx);
+int mt7615_eeprom_get_power_delta_index(struct mt7615_dev *dev,
+                                       enum nl80211_band band);
 int mt7615_wait_pdma_busy(struct mt7615_dev *dev);
 int mt7615_dma_init(struct mt7615_dev *dev);
 void mt7615_dma_cleanup(struct mt7615_dev *dev);