1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. 4 * All rights reserved. 5 * 6 * File: upc.h 7 * 8 * Purpose: Macros to access device 9 * 10 * Author: Tevin Chen 11 * 12 * Date: Mar 17, 1997 13 * 14 */ 15 16#ifndef __UPC_H__ 17#define __UPC_H__ 18 19#include "device.h" 20 21/*--------------------- Export Definitions -------------------------*/ 22 23/* For memory mapped IO */ 24 25#define VNSvInPortB(dwIOAddress, pbyData) \ 26 (*(pbyData) = ioread8(dwIOAddress)) 27 28#define VNSvInPortW(dwIOAddress, pwData) \ 29 (*(pwData) = ioread16(dwIOAddress)) 30 31#define VNSvInPortD(dwIOAddress, pdwData) \ 32 (*(pdwData) = ioread32(dwIOAddress)) 33 34#define VNSvOutPortB(dwIOAddress, byData) \ 35 iowrite8((u8)(byData), dwIOAddress) 36 37#define VNSvOutPortW(dwIOAddress, wData) \ 38 iowrite16((u16)(wData), dwIOAddress) 39 40#define VNSvOutPortD(dwIOAddress, dwData) \ 41 iowrite32((u32)(dwData), dwIOAddress) 42 43#define PCAvDelayByIO(uDelayUnit) \ 44do { \ 45 unsigned char byData; \ 46 unsigned long ii; \ 47 \ 48 if (uDelayUnit <= 50) { \ 49 udelay(uDelayUnit); \ 50 } else { \ 51 for (ii = 0; ii < (uDelayUnit); ii++) \ 52 byData = inb(0x61); \ 53 } \ 54} while (0) 55 56/*--------------------- Export Classes ----------------------------*/ 57 58/*--------------------- Export Variables --------------------------*/ 59 60/*--------------------- Export Functions --------------------------*/ 61 62#endif /* __UPC_H__ */ 63