Commit 6bad146d authored by Alexander Couzens's avatar Alexander Couzens Committed by Felix Fietkau

wifi: mt76: mt7915: add support for MT7981

Add support for the MediaTek MT7981 SoC which is similar to the MT7986
but with a newer IP cores and only 2x ARM Cortex-A53 instead of 4x.
Unlike MT7986 the MT7981 can only connect a single wireless frontend,
usually MT7976 is used for DBDC.
Signed-off-by: default avatarAlexander Couzens <lynxis@fe80.eu>
Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 7a01cad9
...@@ -197,11 +197,21 @@ static inline bool is_mt7916(struct mt76_dev *dev) ...@@ -197,11 +197,21 @@ static inline bool is_mt7916(struct mt76_dev *dev)
return mt76_chip(dev) == 0x7906; return mt76_chip(dev) == 0x7906;
} }
static inline bool is_mt7981(struct mt76_dev *dev)
{
return mt76_chip(dev) == 0x7981;
}
static inline bool is_mt7986(struct mt76_dev *dev) static inline bool is_mt7986(struct mt76_dev *dev)
{ {
return mt76_chip(dev) == 0x7986; return mt76_chip(dev) == 0x7986;
} }
static inline bool is_mt798x(struct mt76_dev *dev)
{
return is_mt7981(dev) || is_mt7986(dev);
}
static inline bool is_mt7996(struct mt76_dev *dev) static inline bool is_mt7996(struct mt76_dev *dev)
{ {
return mt76_chip(dev) == 0x7990; return mt76_chip(dev) == 0x7990;
......
...@@ -14,12 +14,12 @@ config MT7915E ...@@ -14,12 +14,12 @@ config MT7915E
To compile this driver as a module, choose M here. To compile this driver as a module, choose M here.
config MT7986_WMAC config MT798X_WMAC
bool "MT7986 (SoC) WMAC support" bool "MT798x (SoC) WMAC support"
depends on MT7915E depends on MT7915E
depends on ARCH_MEDIATEK || COMPILE_TEST depends on ARCH_MEDIATEK || COMPILE_TEST
select REGMAP select REGMAP
help help
This adds support for the built-in WMAC on MT7986 SoC device This adds support for the built-in WMAC on MT7981 and MT7986 SoC device
which has the same feature set as a MT7915, but enables 6E which has the same feature set as a MT7915, but enables 6E
support. support.
...@@ -6,5 +6,5 @@ mt7915e-y := pci.o init.o dma.o eeprom.o main.o mcu.o mac.o \ ...@@ -6,5 +6,5 @@ mt7915e-y := pci.o init.o dma.o eeprom.o main.o mcu.o mac.o \
debugfs.o mmio.o debugfs.o mmio.o
mt7915e-$(CONFIG_NL80211_TESTMODE) += testmode.o mt7915e-$(CONFIG_NL80211_TESTMODE) += testmode.o
mt7915e-$(CONFIG_MT7986_WMAC) += soc.o mt7915e-$(CONFIG_MT798X_WMAC) += soc.o
mt7915e-$(CONFIG_DEV_COREDUMP) += coredump.o mt7915e-$(CONFIG_DEV_COREDUMP) += coredump.o
...@@ -52,7 +52,7 @@ static const struct mt7915_mem_region mt7916_mem_regions[] = { ...@@ -52,7 +52,7 @@ static const struct mt7915_mem_region mt7916_mem_regions[] = {
}, },
}; };
static const struct mt7915_mem_region mt7986_mem_regions[] = { static const struct mt7915_mem_region mt798x_mem_regions[] = {
{ {
.start = 0x00800000, .start = 0x00800000,
.len = 0x0005ffff, .len = 0x0005ffff,
...@@ -92,9 +92,10 @@ mt7915_coredump_get_mem_layout(struct mt7915_dev *dev, u32 *num) ...@@ -92,9 +92,10 @@ mt7915_coredump_get_mem_layout(struct mt7915_dev *dev, u32 *num)
case 0x7915: case 0x7915:
*num = ARRAY_SIZE(mt7915_mem_regions); *num = ARRAY_SIZE(mt7915_mem_regions);
return &mt7915_mem_regions[0]; return &mt7915_mem_regions[0];
case 0x7981:
case 0x7986: case 0x7986:
*num = ARRAY_SIZE(mt7986_mem_regions); *num = ARRAY_SIZE(mt798x_mem_regions);
return &mt7986_mem_regions[0]; return &mt798x_mem_regions[0];
case 0x7916: case 0x7916:
*num = ARRAY_SIZE(mt7916_mem_regions); *num = ARRAY_SIZE(mt7916_mem_regions);
return &mt7916_mem_regions[0]; return &mt7916_mem_regions[0];
......
...@@ -11,7 +11,7 @@ mt7915_init_tx_queues(struct mt7915_phy *phy, int idx, int n_desc, int ring_base ...@@ -11,7 +11,7 @@ mt7915_init_tx_queues(struct mt7915_phy *phy, int idx, int n_desc, int ring_base
struct mt7915_dev *dev = phy->dev; struct mt7915_dev *dev = phy->dev;
if (mtk_wed_device_active(&phy->dev->mt76.mmio.wed)) { if (mtk_wed_device_active(&phy->dev->mt76.mmio.wed)) {
if (is_mt7986(&dev->mt76)) if (is_mt798x(&dev->mt76))
ring_base += MT_TXQ_ID(0) * MT_RING_SIZE; ring_base += MT_TXQ_ID(0) * MT_RING_SIZE;
else else
ring_base = MT_WED_TX_RING_BASE; ring_base = MT_WED_TX_RING_BASE;
...@@ -370,7 +370,7 @@ static int mt7915_dma_enable(struct mt7915_dev *dev) ...@@ -370,7 +370,7 @@ static int mt7915_dma_enable(struct mt7915_dev *dev)
int ret; int ret;
wed_irq_mask |= MT_INT_TX_DONE_BAND0 | MT_INT_TX_DONE_BAND1; wed_irq_mask |= MT_INT_TX_DONE_BAND0 | MT_INT_TX_DONE_BAND1;
if (!is_mt7986(&dev->mt76)) if (!is_mt798x(&dev->mt76))
mt76_wr(dev, MT_INT_WED_MASK_CSR, wed_irq_mask); mt76_wr(dev, MT_INT_WED_MASK_CSR, wed_irq_mask);
else else
mt76_wr(dev, MT_INT_MASK_CSR, wed_irq_mask); mt76_wr(dev, MT_INT_MASK_CSR, wed_irq_mask);
...@@ -404,7 +404,7 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2) ...@@ -404,7 +404,7 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
mt7915_dma_disable(dev, true); mt7915_dma_disable(dev, true);
if (mtk_wed_device_active(&mdev->mmio.wed)) { if (mtk_wed_device_active(&mdev->mmio.wed)) {
if (!is_mt7986(mdev)) { if (!is_mt798x(mdev)) {
u8 wed_control_rx1 = is_mt7915(mdev) ? 1 : 2; u8 wed_control_rx1 = is_mt7915(mdev) ? 1 : 2;
mt76_set(dev, MT_WFDMA_HOST_CONFIG, mt76_set(dev, MT_WFDMA_HOST_CONFIG,
......
...@@ -39,6 +39,8 @@ static int mt7915_check_eeprom(struct mt7915_dev *dev) ...@@ -39,6 +39,8 @@ static int mt7915_check_eeprom(struct mt7915_dev *dev)
return CHECK_EEPROM_ERR(is_mt7915(&dev->mt76)); return CHECK_EEPROM_ERR(is_mt7915(&dev->mt76));
case 0x7916: case 0x7916:
return CHECK_EEPROM_ERR(is_mt7916(&dev->mt76)); return CHECK_EEPROM_ERR(is_mt7916(&dev->mt76));
case 0x7981:
return CHECK_EEPROM_ERR(is_mt7981(&dev->mt76));
case 0x7986: case 0x7986:
return CHECK_EEPROM_ERR(is_mt7986(&dev->mt76)); return CHECK_EEPROM_ERR(is_mt7986(&dev->mt76));
default: default:
...@@ -52,6 +54,9 @@ static char *mt7915_eeprom_name(struct mt7915_dev *dev) ...@@ -52,6 +54,9 @@ static char *mt7915_eeprom_name(struct mt7915_dev *dev)
case 0x7915: case 0x7915:
return dev->dbdc_support ? return dev->dbdc_support ?
MT7915_EEPROM_DEFAULT_DBDC : MT7915_EEPROM_DEFAULT; MT7915_EEPROM_DEFAULT_DBDC : MT7915_EEPROM_DEFAULT;
case 0x7981:
/* mt7981 only supports mt7976 and only in DBDC mode */
return MT7981_EEPROM_MT7976_DEFAULT_DBDC;
case 0x7986: case 0x7986:
switch (mt7915_check_adie(dev, true)) { switch (mt7915_check_adie(dev, true)) {
case MT7976_ONE_ADIE_DBDC: case MT7976_ONE_ADIE_DBDC:
...@@ -215,7 +220,7 @@ void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev, ...@@ -215,7 +220,7 @@ void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev,
eeprom[MT_EE_WIFI_CONF + 2 + band]); eeprom[MT_EE_WIFI_CONF + 2 + band]);
} }
if (!is_mt7986(&dev->mt76)) if (!is_mt798x(&dev->mt76))
nss_max = 2; nss_max = 2;
} }
......
...@@ -740,7 +740,7 @@ void mt7915_wfsys_reset(struct mt7915_dev *dev) ...@@ -740,7 +740,7 @@ void mt7915_wfsys_reset(struct mt7915_dev *dev)
mt76_clear(dev, MT_TOP_MISC, MT_TOP_MISC_FW_STATE); mt76_clear(dev, MT_TOP_MISC, MT_TOP_MISC_FW_STATE);
msleep(100); msleep(100);
} else if (is_mt7986(&dev->mt76)) { } else if (is_mt798x(&dev->mt76)) {
mt7986_wmac_disable(dev); mt7986_wmac_disable(dev);
msleep(20); msleep(20);
...@@ -761,7 +761,7 @@ static bool mt7915_band_config(struct mt7915_dev *dev) ...@@ -761,7 +761,7 @@ static bool mt7915_band_config(struct mt7915_dev *dev)
dev->phy.mt76->band_idx = 0; dev->phy.mt76->band_idx = 0;
if (is_mt7986(&dev->mt76)) { if (is_mt798x(&dev->mt76)) {
u32 sku = mt7915_check_adie(dev, true); u32 sku = mt7915_check_adie(dev, true);
/* /*
...@@ -1170,7 +1170,7 @@ static void mt7915_stop_hardware(struct mt7915_dev *dev) ...@@ -1170,7 +1170,7 @@ static void mt7915_stop_hardware(struct mt7915_dev *dev)
mt7915_dma_cleanup(dev); mt7915_dma_cleanup(dev);
tasklet_disable(&dev->mt76.irq_tasklet); tasklet_disable(&dev->mt76.irq_tasklet);
if (is_mt7986(&dev->mt76)) if (is_mt798x(&dev->mt76))
mt7986_wmac_disable(dev); mt7986_wmac_disable(dev);
} }
......
...@@ -1594,7 +1594,7 @@ void mt7915_mac_reset_work(struct work_struct *work) ...@@ -1594,7 +1594,7 @@ void mt7915_mac_reset_work(struct work_struct *work)
if (mtk_wed_device_active(&dev->mt76.mmio.wed)) { if (mtk_wed_device_active(&dev->mt76.mmio.wed)) {
mtk_wed_device_stop(&dev->mt76.mmio.wed); mtk_wed_device_stop(&dev->mt76.mmio.wed);
if (!is_mt7986(&dev->mt76)) if (!is_mt798x(&dev->mt76))
mt76_wr(dev, MT_INT_WED_MASK_CSR, 0); mt76_wr(dev, MT_INT_WED_MASK_CSR, 0);
} }
......
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
case 0x7915: \ case 0x7915: \
_fw = MT7915_##name; \ _fw = MT7915_##name; \
break; \ break; \
case 0x7981: \
_fw = MT7981_##name; \
break; \
case 0x7986: \ case 0x7986: \
_fw = MT7986_##name##__VA_ARGS__; \ _fw = MT7986_##name##__VA_ARGS__; \
break; \ break; \
......
...@@ -417,7 +417,7 @@ static u32 mt7915_reg_map_l1(struct mt7915_dev *dev, u32 addr) ...@@ -417,7 +417,7 @@ static u32 mt7915_reg_map_l1(struct mt7915_dev *dev, u32 addr)
u32 base = FIELD_GET(MT_HIF_REMAP_L1_BASE, addr); u32 base = FIELD_GET(MT_HIF_REMAP_L1_BASE, addr);
u32 l1_remap; u32 l1_remap;
if (is_mt7986(&dev->mt76)) if (is_mt798x(&dev->mt76))
return MT_CONN_INFRA_OFFSET(addr); return MT_CONN_INFRA_OFFSET(addr);
l1_remap = is_mt7915(&dev->mt76) ? l1_remap = is_mt7915(&dev->mt76) ?
...@@ -447,7 +447,7 @@ static u32 mt7915_reg_map_l2(struct mt7915_dev *dev, u32 addr) ...@@ -447,7 +447,7 @@ static u32 mt7915_reg_map_l2(struct mt7915_dev *dev, u32 addr)
/* use read to push write */ /* use read to push write */
dev->bus_ops->rr(&dev->mt76, MT_HIF_REMAP_L2); dev->bus_ops->rr(&dev->mt76, MT_HIF_REMAP_L2);
} else { } else {
u32 ofs = is_mt7986(&dev->mt76) ? 0x400000 : 0; u32 ofs = is_mt798x(&dev->mt76) ? 0x400000 : 0;
offset = FIELD_GET(MT_HIF_REMAP_L2_OFFSET_MT7916, addr); offset = FIELD_GET(MT_HIF_REMAP_L2_OFFSET_MT7916, addr);
base = FIELD_GET(MT_HIF_REMAP_L2_BASE_MT7916, addr); base = FIELD_GET(MT_HIF_REMAP_L2_BASE_MT7916, addr);
...@@ -759,7 +759,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr, ...@@ -759,7 +759,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
wed->wlan.nbuf = MT7915_HW_TOKEN_SIZE; wed->wlan.nbuf = MT7915_HW_TOKEN_SIZE;
wed->wlan.tx_tbit[0] = is_mt7915(&dev->mt76) ? 4 : 30; wed->wlan.tx_tbit[0] = is_mt7915(&dev->mt76) ? 4 : 30;
wed->wlan.tx_tbit[1] = is_mt7915(&dev->mt76) ? 5 : 31; wed->wlan.tx_tbit[1] = is_mt7915(&dev->mt76) ? 5 : 31;
wed->wlan.txfree_tbit = is_mt7986(&dev->mt76) ? 2 : 1; wed->wlan.txfree_tbit = is_mt798x(&dev->mt76) ? 2 : 1;
wed->wlan.token_start = MT7915_TOKEN_SIZE - wed->wlan.nbuf; wed->wlan.token_start = MT7915_TOKEN_SIZE - wed->wlan.nbuf;
wed->wlan.wcid_512 = !is_mt7915(&dev->mt76); wed->wlan.wcid_512 = !is_mt7915(&dev->mt76);
...@@ -769,7 +769,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr, ...@@ -769,7 +769,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
if (is_mt7915(&dev->mt76)) { if (is_mt7915(&dev->mt76)) {
wed->wlan.rx_tbit[0] = 16; wed->wlan.rx_tbit[0] = 16;
wed->wlan.rx_tbit[1] = 17; wed->wlan.rx_tbit[1] = 17;
} else if (is_mt7986(&dev->mt76)) { } else if (is_mt798x(&dev->mt76)) {
wed->wlan.rx_tbit[0] = 22; wed->wlan.rx_tbit[0] = 22;
wed->wlan.rx_tbit[1] = 23; wed->wlan.rx_tbit[1] = 23;
} else { } else {
...@@ -827,6 +827,7 @@ static int mt7915_mmio_init(struct mt76_dev *mdev, ...@@ -827,6 +827,7 @@ static int mt7915_mmio_init(struct mt76_dev *mdev,
dev->reg.map = mt7916_reg_map; dev->reg.map = mt7916_reg_map;
dev->reg.map_size = ARRAY_SIZE(mt7916_reg_map); dev->reg.map_size = ARRAY_SIZE(mt7916_reg_map);
break; break;
case 0x7981:
case 0x7986: case 0x7986:
dev->reg.reg_rev = mt7986_reg; dev->reg.reg_rev = mt7986_reg;
dev->reg.offs_rev = mt7916_offs; dev->reg.offs_rev = mt7916_offs;
...@@ -1036,8 +1037,8 @@ static int __init mt7915_init(void) ...@@ -1036,8 +1037,8 @@ static int __init mt7915_init(void)
if (ret) if (ret)
goto error_pci; goto error_pci;
if (IS_ENABLED(CONFIG_MT7986_WMAC)) { if (IS_ENABLED(CONFIG_MT798X_WMAC)) {
ret = platform_driver_register(&mt7986_wmac_driver); ret = platform_driver_register(&mt798x_wmac_driver);
if (ret) if (ret)
goto error_wmac; goto error_wmac;
} }
...@@ -1054,8 +1055,8 @@ static int __init mt7915_init(void) ...@@ -1054,8 +1055,8 @@ static int __init mt7915_init(void)
static void __exit mt7915_exit(void) static void __exit mt7915_exit(void)
{ {
if (IS_ENABLED(CONFIG_MT7986_WMAC)) if (IS_ENABLED(CONFIG_MT798X_WMAC))
platform_driver_unregister(&mt7986_wmac_driver); platform_driver_unregister(&mt798x_wmac_driver);
pci_unregister_driver(&mt7915_pci_driver); pci_unregister_driver(&mt7915_pci_driver);
pci_unregister_driver(&mt7915_hif_driver); pci_unregister_driver(&mt7915_hif_driver);
......
...@@ -34,6 +34,10 @@ ...@@ -34,6 +34,10 @@
#define MT7916_FIRMWARE_WM "mediatek/mt7916_wm.bin" #define MT7916_FIRMWARE_WM "mediatek/mt7916_wm.bin"
#define MT7916_ROM_PATCH "mediatek/mt7916_rom_patch.bin" #define MT7916_ROM_PATCH "mediatek/mt7916_rom_patch.bin"
#define MT7981_FIRMWARE_WA "mediatek/mt7981_wa.bin"
#define MT7981_FIRMWARE_WM "mediatek/mt7981_wm.bin"
#define MT7981_ROM_PATCH "mediatek/mt7981_rom_patch.bin"
#define MT7986_FIRMWARE_WA "mediatek/mt7986_wa.bin" #define MT7986_FIRMWARE_WA "mediatek/mt7986_wa.bin"
#define MT7986_FIRMWARE_WM "mediatek/mt7986_wm.bin" #define MT7986_FIRMWARE_WM "mediatek/mt7986_wm.bin"
#define MT7986_FIRMWARE_WM_MT7975 "mediatek/mt7986_wm_mt7975.bin" #define MT7986_FIRMWARE_WM_MT7975 "mediatek/mt7986_wm_mt7975.bin"
...@@ -43,6 +47,9 @@ ...@@ -43,6 +47,9 @@
#define MT7915_EEPROM_DEFAULT "mediatek/mt7915_eeprom.bin" #define MT7915_EEPROM_DEFAULT "mediatek/mt7915_eeprom.bin"
#define MT7915_EEPROM_DEFAULT_DBDC "mediatek/mt7915_eeprom_dbdc.bin" #define MT7915_EEPROM_DEFAULT_DBDC "mediatek/mt7915_eeprom_dbdc.bin"
#define MT7916_EEPROM_DEFAULT "mediatek/mt7916_eeprom.bin" #define MT7916_EEPROM_DEFAULT "mediatek/mt7916_eeprom.bin"
#define MT7981_EEPROM_MT7976_DEFAULT_DBDC "mediatek/mt7981_eeprom_mt7976_dbdc.bin"
#define MT7986_EEPROM_MT7975_DEFAULT "mediatek/mt7986_eeprom_mt7975.bin" #define MT7986_EEPROM_MT7975_DEFAULT "mediatek/mt7986_eeprom_mt7975.bin"
#define MT7986_EEPROM_MT7975_DUAL_DEFAULT "mediatek/mt7986_eeprom_mt7975_dual.bin" #define MT7986_EEPROM_MT7975_DUAL_DEFAULT "mediatek/mt7986_eeprom_mt7975_dual.bin"
#define MT7986_EEPROM_MT7976_DEFAULT "mediatek/mt7986_eeprom_mt7976.bin" #define MT7986_EEPROM_MT7976_DEFAULT "mediatek/mt7986_eeprom_mt7976.bin"
...@@ -359,8 +366,7 @@ mt7915_ext_phy(struct mt7915_dev *dev) ...@@ -359,8 +366,7 @@ mt7915_ext_phy(struct mt7915_dev *dev)
static inline u32 mt7915_check_adie(struct mt7915_dev *dev, bool sku) static inline u32 mt7915_check_adie(struct mt7915_dev *dev, bool sku)
{ {
u32 mask = sku ? MT_CONNINFRA_SKU_MASK : MT_ADIE_TYPE_MASK; u32 mask = sku ? MT_CONNINFRA_SKU_MASK : MT_ADIE_TYPE_MASK;
if (!is_mt798x(&dev->mt76))
if (!is_mt7986(&dev->mt76))
return 0; return 0;
return mt76_rr(dev, MT_CONNINFRA_SKU_DEC_ADDR) & mask; return mt76_rr(dev, MT_CONNINFRA_SKU_DEC_ADDR) & mask;
...@@ -370,9 +376,9 @@ extern const struct ieee80211_ops mt7915_ops; ...@@ -370,9 +376,9 @@ extern const struct ieee80211_ops mt7915_ops;
extern const struct mt76_testmode_ops mt7915_testmode_ops; extern const struct mt76_testmode_ops mt7915_testmode_ops;
extern struct pci_driver mt7915_pci_driver; extern struct pci_driver mt7915_pci_driver;
extern struct pci_driver mt7915_hif_driver; extern struct pci_driver mt7915_hif_driver;
extern struct platform_driver mt7986_wmac_driver; extern struct platform_driver mt798x_wmac_driver;
#ifdef CONFIG_MT7986_WMAC #ifdef CONFIG_MT798X_WMAC
int mt7986_wmac_enable(struct mt7915_dev *dev); int mt7986_wmac_enable(struct mt7915_dev *dev);
void mt7986_wmac_disable(struct mt7915_dev *dev); void mt7986_wmac_disable(struct mt7915_dev *dev);
#else #else
......
...@@ -874,7 +874,12 @@ enum offs_rev { ...@@ -874,7 +874,12 @@ enum offs_rev {
#define MT_AFE_RG_WBG_EN_WPLL_UP_MASK BIT(20) #define MT_AFE_RG_WBG_EN_WPLL_UP_MASK BIT(20)
#define MT_AFE_RG_WBG_EN_PLL_UP_MASK (MT_AFE_RG_WBG_EN_BPLL_UP_MASK | \ #define MT_AFE_RG_WBG_EN_PLL_UP_MASK (MT_AFE_RG_WBG_EN_BPLL_UP_MASK | \
MT_AFE_RG_WBG_EN_WPLL_UP_MASK) MT_AFE_RG_WBG_EN_WPLL_UP_MASK)
#define MT_AFE_RG_WBG_EN_TXCAL_MASK GENMASK(21, 17) #define MT_AFE_RG_WBG_EN_TXCAL_WF4 BIT(29)
#define MT_AFE_RG_WBG_EN_TXCAL_BT BIT(21)
#define MT_AFE_RG_WBG_EN_TXCAL_WF3 BIT(20)
#define MT_AFE_RG_WBG_EN_TXCAL_WF2 BIT(19)
#define MT_AFE_RG_WBG_EN_TXCAL_WF1 BIT(18)
#define MT_AFE_RG_WBG_EN_TXCAL_WF0 BIT(17)
#define MT_ADIE_SLP_CTRL_BASE(_band) (0x18005000 + ((_band) << 19)) #define MT_ADIE_SLP_CTRL_BASE(_band) (0x18005000 + ((_band) << 19))
#define MT_ADIE_SLP_CTRL(_band, ofs) (MT_ADIE_SLP_CTRL_BASE(_band) + (ofs)) #define MT_ADIE_SLP_CTRL(_band, ofs) (MT_ADIE_SLP_CTRL_BASE(_band) + (ofs))
...@@ -1099,6 +1104,12 @@ enum offs_rev { ...@@ -1099,6 +1104,12 @@ enum offs_rev {
#define MT_TOP_MCU_EMI_BASE MT_TOP(0x1c4) #define MT_TOP_MCU_EMI_BASE MT_TOP(0x1c4)
#define MT_TOP_MCU_EMI_BASE_MASK GENMASK(19, 0) #define MT_TOP_MCU_EMI_BASE_MASK GENMASK(19, 0)
#define MT_TOP_WF_AP_PERI_BASE MT_TOP(0x1c8)
#define MT_TOP_WF_AP_PERI_BASE_MASK GENMASK(19, 0)
#define MT_TOP_EFUSE_BASE MT_TOP(0x1cc)
#define MT_TOP_EFUSE_BASE_MASK GENMASK(19, 0)
#define MT_TOP_CONN_INFRA_WAKEUP MT_TOP(0x1a0) #define MT_TOP_CONN_INFRA_WAKEUP MT_TOP(0x1a0)
#define MT_TOP_CONN_INFRA_WAKEUP_MASK BIT(0) #define MT_TOP_CONN_INFRA_WAKEUP_MASK BIT(0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment