1/* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#ifndef ESE_HW_NXP_PN80T_COMMON_H_ 18#define ESE_HW_NXP_PN80T_COMMON_H_ 1 19 20#include "../../libese-teq1/include/ese/teq1.h" 21#include "../../libese/include/ese/ese.h" 22#include "../../libese/include/ese/log.h" 23#include "platform.h" 24 25/* Card state is _required_ to be at the front of eSE pad. */ 26struct NxpState { 27 void *handle; 28}; 29 30/* pad[0] is reserved for T=1. Lazily go to the middle. */ 31#define NXP_PN80T_STATE(ese) \ 32 ((struct NxpState *)(&ese->pad[ESE_INTERFACE_STATE_PAD / 2])) 33 34void nxp_pn80t_close(struct EseInterface *ese); 35uint32_t nxp_pn80t_transceive(struct EseInterface *ese, 36 const struct EseSgBuffer *tx_buf, uint32_t tx_len, 37 struct EseSgBuffer *rx_buf, uint32_t rx_len); 38int nxp_pn80t_poll(struct EseInterface *ese, uint8_t poll_for, float timeout, 39 int complete); 40int nxp_pn80t_reset(struct EseInterface *ese); 41int nxp_pn80t_open(struct EseInterface *ese, void *board); 42 43enum NxpPn80tError { 44 kNxpPn80tError = kTeq1ErrorMax, 45 kNxpPn80tErrorPlatformInit, 46 kNxpPn80tErrorPollRead, 47 kNxpPn80tErrorResetToggle, 48 kNxpPn80tErrorTransmit, 49 kNxpPn80tErrorTransmitSize, 50 kNxpPn80tErrorReceive, 51 kNxpPn80tErrorReceiveSize, 52 kNxpPn80tErrorMax, /* sizeof(kNxpPn80tErrorMessages) */ 53}; 54 55extern const char *kNxpPn80tErrorMessages[]; 56#endif /* ESE_HW_NXP_PN80T_COMMON_H_ */ 57