1 /* 2 * NCI based driver for Samsung S3FWRN5 NFC chip 3 * 4 * Copyright (C) 2015 Samsung Electrnoics 5 * Robert Baldyga <r.baldyga@samsung.com> 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms and conditions of the GNU General Public License, 9 * version 2 or later, as published by the Free Software Foundation. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef __LOCAL_S3FWRN5_NCI_H_ 21 #define __LOCAL_S3FWRN5_NCI_H_ 22 23 #include "s3fwrn5.h" 24 25 #define NCI_PROP_AGAIN 0x01 26 27 #define NCI_PROP_GET_RFREG 0x21 28 #define NCI_PROP_SET_RFREG 0x22 29 30 struct nci_prop_set_rfreg_cmd { 31 __u8 index; 32 __u8 data[252]; 33 }; 34 35 struct nci_prop_set_rfreg_rsp { 36 __u8 status; 37 }; 38 39 #define NCI_PROP_GET_RFREG_VER 0x24 40 41 struct nci_prop_get_rfreg_ver_rsp { 42 __u8 status; 43 __u8 data[8]; 44 }; 45 46 #define NCI_PROP_SET_RFREG_VER 0x25 47 48 struct nci_prop_set_rfreg_ver_cmd { 49 __u8 data[8]; 50 }; 51 52 struct nci_prop_set_rfreg_ver_rsp { 53 __u8 status; 54 }; 55 56 #define NCI_PROP_START_RFREG 0x26 57 58 struct nci_prop_start_rfreg_rsp { 59 __u8 status; 60 }; 61 62 #define NCI_PROP_STOP_RFREG 0x27 63 64 struct nci_prop_stop_rfreg_cmd { 65 __u16 checksum; 66 }; 67 68 struct nci_prop_stop_rfreg_rsp { 69 __u8 status; 70 }; 71 72 #define NCI_PROP_FW_CFG 0x28 73 74 struct nci_prop_fw_cfg_cmd { 75 __u8 clk_type; 76 __u8 clk_speed; 77 __u8 clk_req; 78 }; 79 80 struct nci_prop_fw_cfg_rsp { 81 __u8 status; 82 }; 83 84 #define NCI_PROP_WR_RESET 0x2f 85 86 void s3fwrn5_nci_get_prop_ops(struct nci_prop_ops **ops, size_t *n); 87 int s3fwrn5_nci_rf_configure(struct s3fwrn5_info *info, const char *fw_name); 88 89 #endif /* __LOCAL_S3FWRN5_NCI_H_ */ 90