rt-thread/bsp/allwinner/libraries/sunxi-hal/hal/source/cir/common_cir.h

106 lines
3.3 KiB
C

/*
* ===========================================================================================
*
* Filename: common_cir.h
*
* Description: IR HAL definition.
*
* Version: Melis3.0
* Create: 2021-01-15 11:11:56
* Revision: none
* Compiler: GCC:version 9.2.1
*
* Author: luruixiang@allwinnertech.com
* Organization: SWC-BPD
* Last Modified: 2021-01-15 16:02:11
*
* ===========================================================================================
*/
#ifndef _CIRCOMMON_H_
#define _CIRCOMMON_H_
#ifdef __cplusplus
extern "C"
{
#endif
/* Registers */
#define CIR_CTRL (0x00) /* IR Control */
#define CIR_RXCTRL (0x10) /* Rx Config */
#define CIR_RXFIFO (0x20) /* Rx Data */
#define CIR_RXINT (0x2C) /* Rx Interrupt Enable */
#define CIR_RXSTA (0x30) /* Rx Interrupt Status */
#define CIR_CONFIG (0x34) /* IR Sample Config */
/*CIR_CTRL*/
#define GEN_OFFSET 0
#define RXEN_OFFSET 1
#define CIR_ENABLE_OFFSET 4
#define CIR_MODE_OFFSET 6
/*global enable*/
#define GEN (0x01 << GEN_OFFSET)
/*receiver block enable*/
#define RXEN (0x01 << RXEN_OFFSET)
/*cir enable*/
#define CIR_ENABLE (0x03 << CIR_ENABLE_OFFSET)
/*active pulse accept mode*/
#define CIR_MODE (0x03 << CIR_MODE_OFFSET)
/*CIR_RXCTRL*/
#define RPPI_OFFSET 2
#define RPPI (0x01 << RPPI_OFFSET) /*receiver pulse polarity invert*/
/*CIR_RXINT*/
#define ROI_EN_OFFSET 0
#define PREI_EN_OFFSET 1
#define RAI_EN_OFFSET 4
#define DRQ_EN_OFFSET 5
#define RAL_OFFSET 8
/*receiver fifo overrun interrupt enable*/
#define ROI_EN (0x01 << ROI_EN_OFFSET)
/*receiver packet end interrupt enable*/
#define PREI_EN (0x01 << PREI_EN_OFFSET)
/*rx fifo available interrupt enable*/
#define RAI_EN (0x01 << RAI_EN_OFFSET)
/*rx fifo dma enable*/
#define DRQ_EN (0x01 << DRQ_EN_OFFSET)
/*rx fifo available received byte level*/
#define RAL (0x3f << RAL_OFFSET)
#define IRQ_MASK (0x3f)
/*CIR_RXSTA*/
#define ROI_OFFSET 0
#define RPE_OFFSET 1
#define RA_OFFSET 4
#define STAT_OFFSET 7
#define RAC_OFFSET 8
#define ROI (0x01 << ROI_OFFSET) /*receiver fifo overrun*/
#define RPE (0x01 << RPE_OFFSET) /*receiver packet end reg*/
#define RA (0x01 << RA_OFFSET) /*rx fifo available*/
#define STAT (0x01 << STAT_OFFSET) /*status of cir, 0:idle, 1:busy*/
#define RAC (0x7f << RAC_OFFSET) /*rx fifo available counter*/
/*CIR_CONFIG*/
#define SCS_OFFSET 0
#define NTHR_OFFSET 2
#define ITHR_OFFSET 8
#define ATHR_OFFSET 16
#define ATHC_OFFSET 23
#define SCS2_OFFSET 24
#define SCS (0x03 << SCS_OFFSET) /*sample clk select for cir*/
#define NTHR (0x3f << NTHR_OFFSET) /*noise threshold for cir*/
#define ITHR (0xff << ITHR_OFFSET) /*idle threshold for cir*/
#define ATHR (0x7f << ATHR_OFFSET) /*active threshold for cir*/
#define ATHC (0x01 << ATHC_OFFSET) /*active threshold control for cir*/
#define SCS2 (0x01 << SCS2_OFFSET) /*bit2 of sample clock select for cir*/
#define CIR_NOISE_THR_NEC 32
#define CIR_NOISE_THR_RC5 22
#ifdef __cplusplus
}
#endif
#endif