access GIUIOSEL_REG and GIUINTEN_REG

only if these registers are not GIU_NO_REG_W.
This commit is contained in:
sato 2002-02-09 15:00:40 +00:00
parent a96c83ebbb
commit 86f2021f79
2 changed files with 37 additions and 21 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: vrgiu.c,v 1.32 2002/02/02 10:50:09 takemura Exp $ */
/* $NetBSD: vrgiu.c,v 1.33 2002/02/09 15:00:40 sato Exp $ */
/*-
* Copyright (c) 1999-2001
* Shin Takemura and PocketBSD Project. All rights reserved.
@ -98,11 +98,6 @@ int vrgiu_intr_led = 1;
#define LEGAL_INTR_PORT(x) ((x) >= 0 && (x) < MAX_GPIO_INOUT)
#define LEGAL_OUT_PORT(x) ((x) >= 0 && (x) < MAX_GPIO_OUT)
/* flags for variant chips */
#if !defined(VR4122) && !defined(VR4131)
#define VRGIU_HAVE_PULLUPDNREGS
#endif
/*
* type declarations
*/
@ -292,12 +287,15 @@ vrgiu_dump_iosetting(struct vrgiu_softc *sc)
edge = vrgiu_regread_4(sc, GIUINTTYP_REG);
hold = vrgiu_regread_4(sc, GIUINTHTSEL_REG);
level = vrgiu_regread_4(sc, GIUINTALSEL_REG);
#ifndef VRGIU_HAVE_PULLUPDNREGS
useupdn = termupdn = 0;
#else
useupdn = vrgiu_regread(sc, GIUUSEUPDN_REG_W);
termupdn = vrgiu_regread(sc, GIUTERMUPDN_REG_W);
#endif
if (GIUUSEUPDN_REG_W == GIU_NO_REG_W)
useupdn = 0;
else
useupdn = vrgiu_regread(sc, GIUUSEUPDN_REG_W);
if (GIUTERMUPDN_REG_W == GIU_NO_REG_W)
termupdn = 0;
else
termupdn = vrgiu_regread(sc, GIUTERMUPDN_REG_W);
for (m = 0x80000000; m; m >>=1)
printf ("%c", syms[
((useupdn&m) ? 32 : 0) +
@ -318,12 +316,14 @@ vrgiu_diff_iosetting()
iosel= vrgiu_regread_4(sc, GIUIOSEL_REG);
inten= vrgiu_regread_4(sc, GIUINTEN_REG);
#ifndef VRGIU_HAVE_PULLUPDNREGS
useupdn = termupdn = 0;
#else
useupdn = vrgiu_regread(sc, GIUUSEUPDN_REG_W);
termupdn = vrgiu_regread(sc, GIUTERMUPDN_REG_W);
#endif
if (GIUUSEUPDN_REG_W == GIU_NO_REG_W)
useupdn = 0;
else
useupdn = vrgiu_regread(sc, GIUUSEUPDN_REG_W);
if (GIUTERMUPDN_REG_W == GIU_NO_REG_W)
termupdn = 0;
else
termupdn = vrgiu_regread(sc, GIUTERMUPDN_REG_W);
if (oiosel != iosel || ointen != inten ||
ouseupdn != useupdn || otermupdn != termupdn) {
for (m = 0x80000000; m; m >>=1)

View File

@ -1,4 +1,4 @@
/* $NetBSD: vrgiureg.h,v 1.1.1.1 1999/09/16 12:23:32 takemura Exp $ */
/* $NetBSD: vrgiureg.h,v 1.2 2002/02/09 15:00:40 sato Exp $ */
/*-
* Copyright (c) 1999
@ -37,6 +37,7 @@
/*
* VR GIU (General Purpose I/O Unit) Registers.
*/
#define GIU_NO_REG_W 0xffffffff /* no register */
#define GIUIOSEL_REG 0x00
#define GIUIOSEL_L_REG_W 0x00
@ -62,8 +63,23 @@
#define GIUPODAT_REG 0x1c
#define GIUPODAT_L_REG_W 0x1c
#define GIUPODAT_H_REG_W 0x1e
#define GIUUSEUPDN_REG_W 0x1e0
#define GIUTERMUPDN_REG_W 0x1e2
#define VR4102_GIUUSEUPDN_REG_W 0x1e0
#define VR4102_GIUTERMUPDN_REG_W 0x1e2
#define VR4122_GIUUSEUPDN_REG_W GIU_NO_REG_W
#define VR4122_GIUTERMUPDN_REG_W GIU_NO_REG_W
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define GIUUSEUPDN_REG_W VR4102_GIUUSEUPDN_REG_W
#define GIUTERMUPDN_REG_W VR4102_GIUTERMUPDN_REG_W
#endif /* defined VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define GIUUSEUPDN_REG_W VR4122_GIUUSEUPDN_REG_W
#define GIUTERMUPDN_REG_W VR4122_GIUTERMUPDN_REG_W
#endif /* defined VRGROUP_4122_4131 */
#endif /* defined SINGLE_VRIP_BASE */
#define GIUINTTYP_EDGE 1
#define GIUINTTYP_LEVEL 0