1 /* Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved. 2 3 * Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in 4 * the the People's Republic of China and other countries. 5 * All Allwinner Technology Co.,Ltd. trademarks are used with permission. 6 7 * DISCLAIMER 8 * THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT. 9 * IF YOU NEED TO INTEGRATE THIRD PARTY’S TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.) 10 * IN ALLWINNERS’SDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN 11 * ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES. 12 * ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS 13 * COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE. 14 * YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTY’S TECHNOLOGY. 15 16 17 * THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT 18 * PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND, 19 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING 20 * THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE 21 * OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 22 * IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 24 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 * LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 27 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 29 * OF THE POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 #ifndef __HAL_LRADC_H__ 33 #define __HAL_LRADC_H__ 34 35 #include <sunxi_hal_common.h> 36 #include <interrupt.h> 37 #include <hal_interrupt.h> 38 #include <lradc/platform_lradc.h> 39 #include <lradc/common_lradc.h> 40 41 #ifdef __cplusplus 42 extern "C" { 43 #endif 44 45 typedef void (*lradc_callback_t)(uint32_t irq_status, uint32_t data); 46 47 typedef struct { 48 lradc_callback_t func; 49 void *arg; 50 } lradc_func_data; 51 52 /***************************************************************************** 53 * Enums 54 *****************************************************************************/ 55 typedef enum{ 56 HAL_ADC_STATUS_ERROR_PARAMETER = -3, 57 HAL_ADC_STATUS_ERROR_CHANNEL = -2, 58 HAL_ADC_STATUS_ERROR = -1, 59 HAL_ADC_STATUS_OK = 0 60 } hal_lradc_status_t; 61 62 /***************************************************************************** 63 * Functions 64 *****************************************************************************/ 65 hal_lradc_status_t hal_lradc_init(void); 66 67 hal_lradc_status_t hal_lradc_deinit(void); 68 69 hal_lradc_status_t hal_lradc_register_callback(lradc_callback_t callback); 70 71 #ifdef __cplusplus 72 } 73 #endif 74 75 #endif /*__HAL_LRADC_H__*/ 76