162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
262306a36Sopenharmony_ci/* Copyright(c) 2018-2019  Realtek Corporation
362306a36Sopenharmony_ci */
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#ifndef __RTW_EFUSE_H__
662306a36Sopenharmony_ci#define __RTW_EFUSE_H__
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#define EFUSE_HW_CAP_IGNORE		0
962306a36Sopenharmony_ci#define EFUSE_HW_CAP_PTCL_VHT		3
1062306a36Sopenharmony_ci#define EFUSE_HW_CAP_SUPP_BW80		7
1162306a36Sopenharmony_ci#define EFUSE_HW_CAP_SUPP_BW40		6
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#define EFUSE_READ_FAIL			0xff
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define GET_EFUSE_HW_CAP_HCI(hw_cap)					       \
1662306a36Sopenharmony_ci	le32_get_bits(*((__le32 *)(hw_cap) + 0x01), GENMASK(3, 0))
1762306a36Sopenharmony_ci#define GET_EFUSE_HW_CAP_BW(hw_cap)					       \
1862306a36Sopenharmony_ci	le32_get_bits(*((__le32 *)(hw_cap) + 0x01), GENMASK(18, 16))
1962306a36Sopenharmony_ci#define GET_EFUSE_HW_CAP_NSS(hw_cap)					       \
2062306a36Sopenharmony_ci	le32_get_bits(*((__le32 *)(hw_cap) + 0x01), GENMASK(20, 19))
2162306a36Sopenharmony_ci#define GET_EFUSE_HW_CAP_ANT_NUM(hw_cap)				       \
2262306a36Sopenharmony_ci	le32_get_bits(*((__le32 *)(hw_cap) + 0x01), GENMASK(23, 21))
2362306a36Sopenharmony_ci#define GET_EFUSE_HW_CAP_PTCL(hw_cap)					       \
2462306a36Sopenharmony_ci	le32_get_bits(*((__le32 *)(hw_cap) + 0x01), GENMASK(27, 26))
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciint rtw_parse_efuse_map(struct rtw_dev *rtwdev);
2762306a36Sopenharmony_ciint rtw_read8_physical_efuse(struct rtw_dev *rtwdev, u16 addr, u8 *data);
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci#endif
30