w83977ef_gpio.c
字号:
#include <string.h>
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"
#include "w83977af.h"
#include "w83977ef_gpio.h"
static unsigned int efbase = W977_EFIO_BASE;
static unsigned int efio = W977_EFIO_BASE;
static unsigned int iobase[] = { 0x180, 0x280, ~0, ~0 };
int w83977ef_gpio_init(void)
{
int version;
int i=0;
unsigned char readchar;
w977_efm_enter(efbase);
readchar = w977_read_reg(0x20 ,efbase);
Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x20,readchar);
readchar = w977_read_reg(0x21 ,efbase);
Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x21,readchar);
readchar = w977_read_reg(0x23 ,efbase);
Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x23,readchar);
readchar = w977_read_reg(0x2a ,efbase);
Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x2a,readchar);
Uart_Printf("write Addr: %x, reg: %x, data: %x\n",efbase,0x2a,readchar);
w977_write_reg(0x2a ,0xd9, efbase);
readchar = w977_read_reg(0x2a ,efbase);
Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x2a,readchar);
Uart_Printf("write Addr: %x, reg: %x, data: %x\n",efbase,0x2c,readchar);
w977_write_reg(0x2c ,0x55, efbase);
readchar = w977_read_reg(0x2c ,efbase);
Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x2c,readchar);
//***************************************
//configure the GP14 OUTPUT
w977_select_device(W977_DEVICE_GPIO1, efbase);
/* Configure PnP port, */
w977_write_reg(0x60, (iobase[i] >> 8) & 0xff, efbase);
w977_write_reg(0x61, (iobase[i]) & 0xff, efbase);
// Configure GP1 BASIC OUTPUT
w977_write_reg(0xE0, 0x00, efbase);
w977_write_reg(0xE1, 0x00, efbase);
w977_write_reg(0xE2, 0x00, efbase);
w977_write_reg(0xE3, 0x00, efbase);
w977_write_reg(0xE4, 0x00, efbase);
w977_write_reg(0xE5, 0x00, efbase);
w977_write_reg(0xE6, 0x00, efbase);
w977_write_reg(0xE7, 0x00, efbase);
// Activate device */
w977_write_reg(0x30, 0x01, efbase);
w977_efm_exit(efbase);
return 1;
}
void w83977_gpio_write(unsigned char value)
{
outb(value,W977_BASE+iobase[0]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -