1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu * Copyright (C) 2009-2014 Broadcom Corporation 4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * you may not use this file except in compliance with the License. 7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * You may obtain a copy of the License at: 8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * See the License for the specific language governing permissions and 15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * limitations under the License. 16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Post NCI reset routines 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef NFC_HAL_POST_RESET_H 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFC_HAL_POST_RESET_H 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/***************************************************************************** 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Application control block definitions 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define NFA_APP_PATCHFILE_MAX_PATH 255 335c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen#define NFA_APP_MAX_NUM_REINIT 5 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 prm_file[NFA_APP_PATCHFILE_MAX_PATH+1]; /* Filename of patchram */ 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_prm_buf; /* Pointer to buffer for holding patchram data */ 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Patchfile for I2C fix */ 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 prm_i2c_patchfile[NFA_APP_PATCHFILE_MAX_PATH+1]; 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 *p_prm_i2c_buf; 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 userial_baud; 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tNFC_HAL_DEV_INIT_CFG dev_init_config; 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* snooze mode setting */ 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 snooze_mode; 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 idle_threshold_dh; 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 idle_threshold_nfcc; 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 nfc_wake_active_mode; 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 dh_wake_active_mode; 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 555c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen /* NVM detection retry (some platforms require re-attempts to detect NVM) */ 565c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen UINT8 spd_nvm_detection_max_count; /* max retry to get NVM type */ 575c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen UINT8 spd_nvm_detection_cur_count; /* current retry count */ 585c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen 595c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen /* handling for failure to download patch */ 605c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen BOOLEAN spd_debug_mode; /* debug mode for downloading patchram, report failure immediately and obviously */ 615c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen BOOLEAN spd_skip_on_power_cycle; /* skip downloading patchram after power cycle because of patch download failure */ 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tNFC_POST_RESET_CB; 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern tNFC_POST_RESET_CB nfc_post_reset_cb; 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/* 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Post NCI reset handler 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** This function is called to start device pre-initialization after NCI CORE-RESET. 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** When pre-initialization is completed, 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** HAL_NfcPreInitDone() must be called to proceed with stack start up. 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*/ 72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectvoid nfc_hal_post_reset_init (UINT32 brcm_hw_id, UINT8 nvm_type); 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* NFC_HAL_POST_RESET_H */ 75