sdk-hwV1.3/lichee/brandy-2.0/spl/include/arch/physical_key.h

60 lines
1.8 KiB
C

/*
* * Copyright 2000-2009
* * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
* *
* */
#ifndef _SUNXI_KEY_H
#define _SUNXI_KEY_H
#include "arch/cpu.h"
struct sunxi_lradc {
volatile u32 ctrl; /* lradc control */
volatile u32 intc; /* interrupt control */
volatile u32 ints; /* interrupt status */
volatile u32 data0; /* lradc 0 data */
volatile u32 data1; /* lradc 1 data */
};
#define SUNXI_KEY_ADC_CRTL (SUNXI_KEYADC_BASE + 0x00)
#define SUNXI_KEY_ADC_INTC (SUNXI_KEYADC_BASE + 0x04)
#define SUNXI_KEY_ADC_INTS (SUNXI_KEYADC_BASE + 0x08)
#define SUNXI_KEY_ADC_DATA0 (SUNXI_KEYADC_BASE + 0x0C)
#define LRADC_EN (0x1) /* LRADC enable */
#define LRADC_SAMPLE_RATE 0x2 /* 32.25 Hz */
#define LEVELB_VOL 0x2 /* 0x33(~1.6v) */
#define LRADC_HOLD_EN (0x1 << 6) /* sample hold enable */
#define KEY_MODE_SELECT 0x0 /* normal mode */
#define ADC0_DATA_PENDING (1 << 0) /* adc0 has data */
#define ADC0_KEYDOWN_PENDING (1 << 1) /* key down */
#define ADC0_HOLDKEY_PENDING (1 << 2) /* key hold */
#define ADC0_ALRDY_HOLD_PENDING (1 << 3) /* key already hold */
#define ADC0_KEYUP_PENDING (1 << 4) /* key up */
#define GP_SR_CON (SUNXI_GPADC_BASE + 0x0)
#define GP_CTRL (SUNXI_GPADC_BASE+0x04)
#define GP_CS_EN (SUNXI_GPADC_BASE+0x08)
#define GP_DATA_INTC (SUNXI_GPADC_BASE+0x28)
#define GP_DATA_INTS (SUNXI_GPADC_BASE+0x38)
#define GP_CH0_DATA (SUNXI_GPADC_BASE+0x80)
#define GPADC0_DATA_PENDING (1 << 0) /* gpadc0 has data */
int sunxi_key_init(void);
int sunxi_key_exit(void);
int sunxi_key_read(void);
int sunxi_key_probe(void);
int sunxi_key_clock_open(void);
int sunxi_key_clock_close(void);
#endif