1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu * Copyright (C) 2010-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 19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Registration/deregistration functions for inter-module callbacks 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_sys.h" 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "nfa_sys_int.h" 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function nfa_sys_cback_reg_enable_complete 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 31552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** Description Called to register an initialization complete callback 32552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** function 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns void 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 376fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_sys_cback_reg_enable_complete(tNFA_SYS_ENABLE_CBACK* p_cback) { 386fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.p_enable_cback = p_cback; 396fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.enable_cplt_flags = 0; 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function nfa_sys_cback_notify_enable_complete 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Called by other NFA subsystems to notify initialization is 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** complete 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns void 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 526fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_sys_cback_notify_enable_complete(uint8_t id) { 536fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.enable_cplt_flags |= (0x0001 << id); 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 556fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi NFA_TRACE_DEBUG2( 566fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi "nfa_sys_cback_notify_enable_complete () enable_cplt_flags=0x%x, " 576fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi "enable_cplt_mask=0x%x", 586fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.enable_cplt_flags, nfa_sys_cb.enable_cplt_mask); 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 606fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi if ((nfa_sys_cb.enable_cplt_flags == nfa_sys_cb.enable_cplt_mask) && 616fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi (nfa_sys_cb.p_enable_cback)) { 626fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.p_enable_cback(); 636fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.p_enable_cback = NULL; 646fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi } 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function nfa_sys_cback_reg_nfcc_power_mode_proc_complete 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 71552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** Description Called to register a callback function for complete of 72552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** processing NFCC power mode change from NFA sub-systems 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns void 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 776fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_sys_cback_reg_nfcc_power_mode_proc_complete( 786fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi tNFA_SYS_PROC_NFCC_PWR_MODE_CMPL* p_cback) { 796fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback = p_cback; 806fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags = 0; 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function nfa_sys_cback_notify_nfcc_power_mode_proc_complete 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 87552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** Description Called by other NFA subsystems to notify processing NFCC 88552f2b745deddd35d9b75da9c9c09bd2f3f573a8Ruchi Kandoi** power mode is complete 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns void 91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 936fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoivoid nfa_sys_cback_notify_nfcc_power_mode_proc_complete(uint8_t id) { 946fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags |= (0x0001 << id); 95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 966fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi NFA_TRACE_DEBUG2( 976fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi "nfa_sys_cback_notify_nfcc_power_mode_proc_complete () flags=0x%x, " 986fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi "mask=0x%x", 996fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags, 1006fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.proc_nfcc_pwr_mode_cplt_mask); 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 1026fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi /* except SYS */ 1036fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi if ((nfa_sys_cb.proc_nfcc_pwr_mode_cplt_flags == 1046fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.proc_nfcc_pwr_mode_cplt_mask) && 1056fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi (nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback)) { 1066fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback(); 1076fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi nfa_sys_cb.p_proc_nfcc_pwr_mode_cmpl_cback = NULL; 1086fca02d5010de7bd31d83b853c32138021da5f29Ruchi Kandoi } 109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} 110