1895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/* 2895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall $License: 3895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall Copyright 2011 InvenSense, Inc. 4895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 5895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall Licensed under the Apache License, Version 2.0 (the "License"); 6895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall you may not use this file except in compliance with the License. 7895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall You may obtain a copy of the License at 8895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 9895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall http://www.apache.org/licenses/LICENSE-2.0 10895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 11895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall Unless required by applicable law or agreed to in writing, software 12895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall distributed under the License is distributed on an "AS IS" BASIS, 13895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall See the License for the specific language governing permissions and 15895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall limitations under the License. 16895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall $ 17895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */ 18895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#ifndef INVENSENSE_INV_FIFO_HW_H__ 19895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define INVENSENSE_INV_FIFO_HW_H__ 20895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 21895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mpu.h" 22895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mltypes.h" 23895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mlinclude.h" 24895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#ifdef INV_INCLUDE_LEGACY_HEADERS 25895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mlFIFOHW_legacy.h" 26895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#endif 27895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 28895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#ifdef __cplusplus 29895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallextern "C" { 30895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#endif 31895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 32895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall // This is the maximum amount of FIFO data we would read in one packet 33895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define MAX_FIFO_LENGTH (256) 34895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall // This is the hardware size of the FIFO 35895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FIFO_FOOTER_SIZE (2) 36895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 37895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall uint_fast16_t inv_get_fifo(uint_fast16_t length, unsigned char *buffer); 38895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall inv_error_t inv_get_fifo_status(void); 39895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall inv_error_t inv_get_fifo_length(uint_fast16_t * len); 40895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall short inv_get_fifo_count(void); 41895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall inv_error_t inv_reset_fifo(void); 42895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall void inv_init_fifo_hardare(); 43895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall inv_error_t inv_read_fifo(unsigned char *data, uint_fast16_t len); 44895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall 45895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#ifdef __cplusplus 46895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall} 47895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#endif 48895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#endif // INVENSENSE_INV_FIFO_HW_H__ 49