123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /******************************************************************************
- *
- * Copyright (C) 2012-2020 NXP Semiconductors
- * *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- ******************************************************************************/
- #ifndef _P73_H_
- #define _P73_H_
- #define P61_MAGIC 0xEB
- #define P61_SET_PWR _IOW(P61_MAGIC, 0x01, long)
- #define P61_SET_DBG _IOW(P61_MAGIC, 0x02, long)
- #define P61_SET_POLL _IOW(P61_MAGIC, 0x03, long)
- /*
- * SPI Request NFCC to enable p61 power, only in param
- * Only for SPI
- * level 1 = Enable power
- * level 0 = Disable power
- */
- #define P61_SET_SPM_PWR _IOW(P61_MAGIC, 0x04, long)
- /* SPI or DWP can call this ioctl to get the current
- * power state of P61
- *
- */
- #define P61_GET_SPM_STATUS _IOR(P61_MAGIC, 0x05, long)
- /* throughput measurement is deprecated */
- /* #define P61_SET_THROUGHPUT _IOW(P61_MAGIC, 0x06, long) */
- #define P61_GET_ESE_ACCESS _IOW(P61_MAGIC, 0x07, long)
- #define P61_SET_POWER_SCHEME _IOW(P61_MAGIC, 0x08, long)
- #define P61_SET_DWNLD_STATUS _IOW(P61_MAGIC, 0x09, long)
- #define P61_INHIBIT_PWR_CNTRL _IOW(P61_MAGIC, 0x0A, long)
- /* SPI can call this IOCTL to perform the eSE COLD_RESET
- * via NFC driver.
- */
- #define ESE_PERFORM_COLD_RESET _IOW(P61_MAGIC, 0x0C, long)
- #define PERFORM_RESET_PROTECTION _IOW(P61_MAGIC, 0x0D, long)
- #define ESE_SET_TRUSTED_ACCESS _IOW(P61_MAGIC, 0x0B, long)
- #define P61_RW_SPI_DATA _IOWR(P61_MAGIC, 0x0F, unsigned long)
- #ifdef CONFIG_COMPAT
- #define P61_SET_PWR_COMPAT _IOW(P61_MAGIC, 0x01, unsigned int)
- #define P61_SET_DBG_COMPAT _IOW(P61_MAGIC, 0x02, unsigned int)
- #define P61_SET_POLL_COMPAT _IOW(P61_MAGIC, 0x03, unsigned int)
- #define P61_SET_SPM_PWR_COMPAT _IOW(P61_MAGIC, 0x04, unsigned int)
- #define P61_GET_SPM_STATUS_COMPAT _IOR(P61_MAGIC, 0x05, unsigned int)
- /* throughput measurement is deprecated */
- /* #define P61_SET_THROUGHPUT_COMPAT _IOW(P61_MAGIC, 0x06, unsigned int) */
- #define P61_GET_ESE_ACCESS_COMPAT _IOW(P61_MAGIC, 0x07, unsigned int)
- #define P61_SET_POWER_SCHEME_COMPAT _IOW(P61_MAGIC, 0x08, unsigned int)
- #define P61_SET_DWNLD_STATUS_COMPAT _IOW(P61_MAGIC, 0x09, unsigned int)
- #define P61_INHIBIT_PWR_CNTRL_COMPAT _IOW(P61_MAGIC, 0x0A, unsigned int)
- #define P61_RW_SPI_DATA_COMPAT _IOWR(P61_MAGIC, 0x0F, unsigned int)
- #define ESE_PERFORM_COLD_RESET_COMPAT _IOW(P61_MAGIC, 0x0C, unsigned int)
- #define PERFORM_RESET_PROTECTION_COMPAT _IOW(P61_MAGIC, 0x0D, unsigned int)
- #endif
- typedef enum ese_spi_transition_state {
- ESE_SPI_IDLE = 0x00,
- ESE_SPI_BUSY
- } ese_spi_transition_state_t;
- struct p61_spi_platform_data {
- int irq_gpio;
- int rst_gpio;
- int trusted_ese_gpio;
- bool gpio_coldreset;
- #if IS_ENABLED(CONFIG_SAMSUNG_NFC)
- int ap_vendor;
- #endif
- };
- struct p61_ioctl_transfer {
- unsigned char *rx_buffer;
- unsigned char *tx_buffer;
- unsigned int len;
- };
- #ifdef CONFIG_COMPAT
- struct p61_ioctl_transfer32 {
- u32 rx_buffer;
- u32 tx_buffer;
- u32 len;
- };
- #endif
- #if IS_ENABLED(CONFIG_SAMSUNG_NFC)
- void store_nfc_i2c_device(struct device *nfc_i2c_dev);
- void p61_print_status(const char *func_name);
- #endif
- #endif
|