xref: /openbmc/linux/drivers/nfc/s3fwrn5/phy_common.h (revision cdd38c5f1ce4398ec58fec95904b75824daab7b5)
1b3799d59SBongsu Jeon /* SPDX-License-Identifier: GPL-2.0-or-later
2b3799d59SBongsu Jeon  *
3b3799d59SBongsu Jeon  * Link Layer for Samsung S3FWRN5 NCI based Driver
4b3799d59SBongsu Jeon  *
5b3799d59SBongsu Jeon  * Copyright (C) 2015 Samsung Electrnoics
6b3799d59SBongsu Jeon  * Robert Baldyga <r.baldyga@samsung.com>
7b3799d59SBongsu Jeon  * Copyright (C) 2020 Samsung Electrnoics
8b3799d59SBongsu Jeon  * Bongsu Jeon <bongsu.jeon@samsung.com>
9b3799d59SBongsu Jeon  */
10b3799d59SBongsu Jeon 
11b3799d59SBongsu Jeon #ifndef __NFC_S3FWRN5_PHY_COMMON_H
12b3799d59SBongsu Jeon #define __NFC_S3FWRN5_PHY_COMMON_H
13b3799d59SBongsu Jeon 
14b3799d59SBongsu Jeon #include <linux/mutex.h>
15b3799d59SBongsu Jeon #include <net/nfc/nci_core.h>
16b3799d59SBongsu Jeon 
17b3799d59SBongsu Jeon #include "s3fwrn5.h"
18b3799d59SBongsu Jeon 
19b3799d59SBongsu Jeon #define S3FWRN5_EN_WAIT_TIME 20
20b3799d59SBongsu Jeon 
21b3799d59SBongsu Jeon struct phy_common {
22b3799d59SBongsu Jeon 	struct nci_dev *ndev;
23b3799d59SBongsu Jeon 
24b3799d59SBongsu Jeon 	int gpio_en;
25b3799d59SBongsu Jeon 	int gpio_fw_wake;
26b3799d59SBongsu Jeon 
27b3799d59SBongsu Jeon 	struct mutex mutex;
28b3799d59SBongsu Jeon 
29b3799d59SBongsu Jeon 	enum s3fwrn5_mode mode;
30b3799d59SBongsu Jeon };
31b3799d59SBongsu Jeon 
32b3799d59SBongsu Jeon void s3fwrn5_phy_set_wake(void *phy_id, bool wake);
33b3799d59SBongsu Jeon bool s3fwrn5_phy_power_ctrl(struct phy_common *phy, enum s3fwrn5_mode mode);
34*3f52c2cbSBongsu Jeon void s3fwrn5_phy_set_mode(void *phy_id, enum s3fwrn5_mode mode);
35b3799d59SBongsu Jeon enum s3fwrn5_mode s3fwrn5_phy_get_mode(void *phy_id);
36b3799d59SBongsu Jeon 
37b3799d59SBongsu Jeon #endif /* __NFC_S3FWRN5_PHY_COMMON_H */
38