106 lines
3.3 KiB
C
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
|