xref: /openbmc/linux/drivers/net/wireless/realtek/rtl818x/rtl8180/rtl8225se.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2f1d2b4d3SLarry Finger 
3f1d2b4d3SLarry Finger /* Definitions for RTL8187SE hardware
4f1d2b4d3SLarry Finger  *
5f1d2b4d3SLarry Finger  * Copyright 2009 Larry Finger <Larry.Finger@lwfinger.net>
6f1d2b4d3SLarry Finger  * Copyright 2014 Andrea Merello <andrea.merello@gmail.com>
7f1d2b4d3SLarry Finger  *
8f1d2b4d3SLarry Finger  * Based on the r8180 and Realtek r8187se drivers, which are:
9f1d2b4d3SLarry Finger  * Copyright 2004-2005 Andrea Merello <andrea.merello@gmail.com>, et al.
10f1d2b4d3SLarry Finger  *
11f1d2b4d3SLarry Finger  * Also based on the rtl8187 driver, which is:
12f1d2b4d3SLarry Finger  * Copyright 2007 Michael Wu <flamingice@sourmilk.net>
13f1d2b4d3SLarry Finger  * Copyright 2007 Andrea Merello <andrea.merello@gmail.com>
14f1d2b4d3SLarry Finger  */
15f1d2b4d3SLarry Finger 
16f1d2b4d3SLarry Finger #ifndef RTL8187SE_RTL8225_H
17f1d2b4d3SLarry Finger #define RTL8187SE_RTL8225_H
18f1d2b4d3SLarry Finger 
19f1d2b4d3SLarry Finger #define RTL8225SE_ANAPARAM_ON	0xb0054d00
20f1d2b4d3SLarry Finger #define RTL8225SE_ANAPARAM2_ON	0x000004c6
21f1d2b4d3SLarry Finger 
22f1d2b4d3SLarry Finger /* all off except PLL */
23f1d2b4d3SLarry Finger #define RTL8225SE_ANAPARAM_OFF	0xb0054dec
24f1d2b4d3SLarry Finger /* all on including PLL */
25f1d2b4d3SLarry Finger #define RTL8225SE_ANAPARAM_OFF2	0xb0054dfc
26f1d2b4d3SLarry Finger 
27f1d2b4d3SLarry Finger #define RTL8225SE_ANAPARAM2_OFF	0x00ff04c6
28f1d2b4d3SLarry Finger 
29f1d2b4d3SLarry Finger #define RTL8225SE_ANAPARAM3	0x10
30f1d2b4d3SLarry Finger 
31f1d2b4d3SLarry Finger enum rtl8187se_power_state {
32f1d2b4d3SLarry Finger 	RTL8187SE_POWER_ON,
33f1d2b4d3SLarry Finger 	RTL8187SE_POWER_OFF,
34f1d2b4d3SLarry Finger 	RTL8187SE_POWER_SLEEP
35f1d2b4d3SLarry Finger };
36f1d2b4d3SLarry Finger 
rtl8225se_write_phy_ofdm(struct ieee80211_hw * dev,u8 addr,u8 data)37f1d2b4d3SLarry Finger static inline void rtl8225se_write_phy_ofdm(struct ieee80211_hw *dev,
38f1d2b4d3SLarry Finger 					  u8 addr, u8 data)
39f1d2b4d3SLarry Finger {
40f1d2b4d3SLarry Finger 	rtl8180_write_phy(dev, addr, data);
41f1d2b4d3SLarry Finger }
42f1d2b4d3SLarry Finger 
rtl8225se_write_phy_cck(struct ieee80211_hw * dev,u8 addr,u8 data)43f1d2b4d3SLarry Finger static inline void rtl8225se_write_phy_cck(struct ieee80211_hw *dev,
44f1d2b4d3SLarry Finger 					 u8 addr, u8 data)
45f1d2b4d3SLarry Finger {
46f1d2b4d3SLarry Finger 	rtl8180_write_phy(dev, addr, data | 0x10000);
47f1d2b4d3SLarry Finger }
48f1d2b4d3SLarry Finger 
49f1d2b4d3SLarry Finger 
50f1d2b4d3SLarry Finger const struct rtl818x_rf_ops *rtl8187se_detect_rf(struct ieee80211_hw *);
51f1d2b4d3SLarry Finger void rtl8225se_rf_stop(struct ieee80211_hw *dev);
52f1d2b4d3SLarry Finger void rtl8225se_rf_set_channel(struct ieee80211_hw *dev,
53f1d2b4d3SLarry Finger 				     struct ieee80211_conf *conf);
54f1d2b4d3SLarry Finger void rtl8225se_rf_conf_erp(struct ieee80211_hw *dev,
55f1d2b4d3SLarry Finger 				  struct ieee80211_bss_conf *info);
56f1d2b4d3SLarry Finger void rtl8225se_rf_init(struct ieee80211_hw *dev);
57f1d2b4d3SLarry Finger 
58f1d2b4d3SLarry Finger #endif /* RTL8187SE_RTL8225_H */
59