kernel_samsung_a34x-permissive/drivers/nfc/ese_p3.h
2024-04-28 15:51:13 +02:00

82 lines
2.3 KiB
C

/*
*
* Copyright (C) 2015 Samsung Electronics. All rights reserved.
*
* 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;
*
*/
#define DEFAULT_BUFFER_SIZE 260
#define FEATURE_ESE_WAKELOCK
/* #define FEATURE_ESE_SPI_DUMMY_ENABLE */
enum coldrst_type {
COLDRST_NONE,
COLDRST_GPIO,
COLDRST_POWER_ONOFF,
COLDRST_ERR
};
#define P3_MAGIC 0xED
#define P3_SET_PWR _IOW(P3_MAGIC, 0x01, unsigned long)
#define P3_SET_DBG _IOW(P3_MAGIC, 0x02, unsigned long)
#define P3_SET_POLL _IOW(P3_MAGIC, 0x03, unsigned long)
/* To set SPI configurations like gpio, clks */
#define P3_SET_SPI_CONFIG _IO(P3_MAGIC, 0x04)
/*To prepare spi clock */
#define P3_ENABLE_SPI_CLK _IO(P3_MAGIC, 0x05)
/* To unprepare spi clock */
#define P3_DISABLE_SPI_CLK _IO(P3_MAGIC, 0x06)
/* only nonTZ +++++*/
/* Transmit data to the device and retrieve data from it simultaneously.*/
#define P3_RW_SPI_DATA _IOWR(P3_MAGIC, 0x07, unsigned long)
/* only nonTZ -----*/
/* To change SPI clock */
#define P3_SET_SPI_CLK _IOW(P3_MAGIC, 0x08, unsigned long)
/* To enable spi cs pin (make low) */
#define P3_ENABLE_SPI_CS _IO(P3_MAGIC, 0x09)
/* To disable spi cs pin */
#define P3_DISABLE_SPI_CS _IO(P3_MAGIC, 0x0A)
/* To enable spi clock & cs */
#define P3_ENABLE_CLK_CS _IO(P3_MAGIC, 0x0B)
/* To disable spi clock & cs */
#define P3_DISABLE_CLK_CS _IO(P3_MAGIC, 0x0C)
/* To swing(shake) cs */
#define P3_SWING_CS _IOW(P3_MAGIC, 0x0D, unsigned long)
#ifdef CONFIG_ESE_COLDRESET
#define P3_WR_RESET _IOW(P3_MAGIC, 0xE, __s32)
#endif
#ifdef CONFIG_COMPAT
/*#define P3_RW_SPI_DATA_32 _IOWR(P3_MAGIC, 0x07, unsigned int)*/
struct spip3_ioc_transfer_32 {
unsigned int rx_buffer;
unsigned int tx_buffer;
unsigned short len;
};
#endif
struct p3_ioctl_transfer {
unsigned char *rx_buffer;
unsigned char *tx_buffer;
unsigned int len;
};
struct p3_spi_platform_data {
unsigned int irq_gpio;
unsigned int rst_gpio;
};
#if IS_ENABLED(CONFIG_BATTERY_SAMSUNG) && !defined(CONFIG_NFC_PVDD_LATE_ENABLE) && !IS_ENABLED(CONFIG_SAMSUNG_ESE_ONLY)
extern unsigned int lpcharge; /*for power off charge*/
#endif