drivers/net/wireless/realtek/rtw89/rtw8852c_rfk_table.c

Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk_table.c

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk_table.c
Extension
.c
Size
31096 bytes
Lines
782
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/* Copyright(c) 2019-2022  Realtek Corporation
 */

#include "rtw8852c_rfk_table.h"

static const struct rtw89_reg5_def rtw8852c_dack_reload_defs[] = {
	RTW89_DECL_RFK_WM(0xc004, BIT(17), 0x1),
	RTW89_DECL_RFK_WM(0xc024, BIT(17), 0x1),
	RTW89_DECL_RFK_WM(0xc104, BIT(17), 0x1),
	RTW89_DECL_RFK_WM(0xc124, BIT(17), 0x1),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_dack_reload_defs);

static const struct rtw89_reg5_def rtw8852c_dack_reset_defs_a[] = {
	RTW89_DECL_RFK_WM(0xc000, BIT(17), 0x0),
	RTW89_DECL_RFK_WM(0xc000, BIT(17), 0x1),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_dack_reset_defs_a);

static const struct rtw89_reg5_def rtw8852c_dack_reset_defs_b[] = {
	RTW89_DECL_RFK_WM(0xc100, BIT(17), 0x0),
	RTW89_DECL_RFK_WM(0xc100, BIT(17), 0x1),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_dack_reset_defs_b);

static const struct rtw89_reg5_def rtw8852c_dack_defs_s0[] = {
	RTW89_DECL_RFK_WM(0x12b8, BIT(30), 0x1),
	RTW89_DECL_RFK_WM(0x030c, BIT(28), 0x1),
	RTW89_DECL_RFK_WM(0x032c, 0x80000000, 0x0),
	RTW89_DECL_RFK_WM(0xc004, 0xfff00000, 0x30),
	RTW89_DECL_RFK_WM(0xc024, 0xfff00000, 0x30),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_dack_defs_s0);

static const struct rtw89_reg5_def rtw8852c_dack_defs_s1[] = {
	RTW89_DECL_RFK_WM(0x32b8, BIT(30), 0x1),
	RTW89_DECL_RFK_WM(0x030c, BIT(28), 0x1),
	RTW89_DECL_RFK_WM(0x032c, 0x80000000, 0x0),
	RTW89_DECL_RFK_WM(0xc104, 0xfff00000, 0x30),
	RTW89_DECL_RFK_WM(0xc124, 0xfff00000, 0x30),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_dack_defs_s1);

static const struct rtw89_reg5_def rtw8852c_drck_defs[] = {
	RTW89_DECL_RFK_WM(0xc0c4, BIT(6), 0x0),
	RTW89_DECL_RFK_WM(0xc094, BIT(9), 0x1),
	RTW89_DECL_RFK_DELAY(1),
	RTW89_DECL_RFK_WM(0xc094, BIT(9), 0x0),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_drck_defs);

static const struct rtw89_reg5_def rtw8852c_iqk_rxk_cfg_defs[] = {
	RTW89_DECL_RFK_WM(0x030c, 0xff000000, 0x0f),
	RTW89_DECL_RFK_WM(0x030c, 0xff000000, 0x03),
	RTW89_DECL_RFK_WM(0x032c, 0xffff0000, 0x0001),
	RTW89_DECL_RFK_WM(0x032c, 0xffff0000, 0x0041),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_iqk_rxk_cfg_defs);

static const struct rtw89_reg5_def rtw8852c_iqk_afebb_restore_defs_a[] = {
	RTW89_DECL_RFK_WM(0x12b8, 0x40000000, 0x0),
	RTW89_DECL_RFK_WM(0x20fc, 0x00010000, 0x1),
	RTW89_DECL_RFK_WM(0x20fc, 0x00100000, 0x0),
	RTW89_DECL_RFK_WM(0x20fc, 0x01000000, 0x1),
	RTW89_DECL_RFK_WM(0x20fc, 0x10000000, 0x0),
	RTW89_DECL_RFK_WM(0x5670, MASKDWORD, 0x00000000),
	RTW89_DECL_RFK_WM(0x12a0, 0x000ff000, 0x00),
	RTW89_DECL_RFK_WM(0x20fc, 0x00010000, 0x0),
	RTW89_DECL_RFK_WM(0x20fc, 0x01000000, 0x0),
	RTW89_DECL_RFK_WRF(RF_PATH_A, 0x10005, 0x00001, 0x1),
};

RTW89_DECLARE_RFK_TBL(rtw8852c_iqk_afebb_restore_defs_a);

static const struct rtw89_reg5_def rtw8852c_iqk_afebb_restore_defs_b[] = {
	RTW89_DECL_RFK_WM(0x32b8, 0x40000000, 0x0),
	RTW89_DECL_RFK_WM(0x20fc, 0x00020000, 0x1),
	RTW89_DECL_RFK_WM(0x20fc, 0x00200000, 0x0),
	RTW89_DECL_RFK_WM(0x20fc, 0x02000000, 0x1),
	RTW89_DECL_RFK_WM(0x20fc, 0x20000000, 0x0),
	RTW89_DECL_RFK_WM(0x7670, MASKDWORD, 0x00000000),
	RTW89_DECL_RFK_WM(0x32a0, 0x000ff000, 0x00),

Annotation

Implementation Notes