1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/*
* Copyright c Realtek Semiconductor Corporation, 2009
* All rights reserved.
*
* Program : GPIO Header File
* Abstract :
* Author :
*
*/
#ifndef __GPIO_8972D_H__
#define __GPIO_8972D_H__
/* For 8954C V100 EV Board */
#if defined (CONFIG_RTK_VOIP_GPIO_8972D_V100)
#include "gpio_8972d_v100.h"
#endif
#ifdef CONFIG_RTK_VOIP_DRIVERS_PCM89xxD
/******** GPIO define ********/
/* define GPIO port */
enum GPIO_PORT
{
GPIO_PORT_A = 0,
GPIO_PORT_B,
GPIO_PORT_C,
GPIO_PORT_D,
GPIO_PORT_E,
GPIO_PORT_F,
GPIO_PORT_G,
GPIO_PORT_H,
GPIO_PORT_MAX,
GPIO_PORT_UNDEF,
};
/* define GPIO control pin */
enum GPIO_CONTROL
{
GPIO_CONT_GPIO = 0,
GPIO_CONT_PERI = 0x1,
};
/* define GPIO direction */
enum GPIO_DIRECTION
{
GPIO_DIR_IN = 0,
GPIO_DIR_OUT =1,
};
/* define GPIO Interrupt Type */
enum GPIO_INTERRUPT_TYPE
{
GPIO_INT_DISABLE = 0,
GPIO_INT_FALLING_EDGE,
GPIO_INT_RISING_EDGE,
GPIO_INT_BOTH_EDGE,
};
/*************** Define RTL8954C Family GPIO Register Set ************************/
#define GPABCDCNR 0xB8003500
#define GPABCDDIR 0xB8003508
#define GPABCDDATA 0xB800350C
#define GPABCDISR 0xB8003510
#define GPABIMR 0xB8003514
#define GPCDIMR 0xB8003518
#define GPEFGHCNR 0xB800351C
#define GPEFGHDIR 0xB8003524
#define GPEFGHDATA 0xB8003528
#define GPEFGHISR 0xB800352C
#define GPEFIMR 0xB8003530
#define GPGHIMR 0xB8003534
/**************************************************************************/
/* Register access macro (REG*()).*/
#define REG32(reg) (*((volatile uint32 *)(reg)))
#define REG16(reg) (*((volatile uint16 *)(reg)))
#define REG8(reg) (*((volatile uint8 *)(reg)))
/********************* Function Prototype in gpio.c ***********************/
int32 _rtl8972D_initGpioPin(uint32 gpioId, enum GPIO_CONTROL dedicate,
enum GPIO_DIRECTION,
enum GPIO_INTERRUPT_TYPE interruptEnable );
int32 _rtl8972D_getGpioDataBit( uint32 gpioId, uint32* pData );
int32 _rtl8972D_setGpioDataBit( uint32 gpioId, uint32 data );
#endif /* CONFIG_RTK_VOIP_DRIVERS_PCM89xxD */
#endif /* __GPIO_8972D_H__ */
|