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