18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * arch/arm/mach-s3c2410/include/mach/io.h
48c2ecf20Sopenharmony_ci *  from arch/arm/mach-rpc/include/mach/io.h
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * Copyright (C) 1997 Russell King
78c2ecf20Sopenharmony_ci *	     (C) 2003 Simtec Electronics
88c2ecf20Sopenharmony_ci*/
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#ifndef __ASM_ARM_ARCH_IO_S3C24XX_H
118c2ecf20Sopenharmony_ci#define __ASM_ARM_ARCH_IO_S3C24XX_H
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#include <mach/map-base.h>
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci/*
168c2ecf20Sopenharmony_ci * ISA style IO, for each machine to sort out mappings for,
178c2ecf20Sopenharmony_ci * if it implements it. We reserve two 16M regions for ISA,
188c2ecf20Sopenharmony_ci * so the PC/104 can use separate addresses for 8-bit and
198c2ecf20Sopenharmony_ci * 16-bit port I/O.
208c2ecf20Sopenharmony_ci */
218c2ecf20Sopenharmony_ci#define PCIO_BASE		S3C_ADDR(0x02000000)
228c2ecf20Sopenharmony_ci#define IO_SPACE_LIMIT		0x00ffffff
238c2ecf20Sopenharmony_ci#define S3C24XX_VA_ISA_WORD	(PCIO_BASE)
248c2ecf20Sopenharmony_ci#define S3C24XX_VA_ISA_BYTE	(PCIO_BASE + 0x01000000)
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#ifdef CONFIG_ISA
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci#define inb(p)		readb(S3C24XX_VA_ISA_BYTE + (p))
298c2ecf20Sopenharmony_ci#define inw(p)		readw(S3C24XX_VA_ISA_WORD + (p))
308c2ecf20Sopenharmony_ci#define inl(p)		readl(S3C24XX_VA_ISA_WORD + (p))
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#define outb(v,p)	writeb((v), S3C24XX_VA_ISA_BYTE + (p))
338c2ecf20Sopenharmony_ci#define outw(v,p)	writew((v), S3C24XX_VA_ISA_WORD + (p))
348c2ecf20Sopenharmony_ci#define outl(v,p)	writel((v), S3C24XX_VA_ISA_WORD + (p))
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci#define insb(p,d,l)	readsb(S3C24XX_VA_ISA_BYTE + (p),d,l)
378c2ecf20Sopenharmony_ci#define insw(p,d,l)	readsw(S3C24XX_VA_ISA_WORD + (p),d,l)
388c2ecf20Sopenharmony_ci#define insl(p,d,l)	readsl(S3C24XX_VA_ISA_WORD + (p),d,l)
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci#define outsb(p,d,l)	writesb(S3C24XX_VA_ISA_BYTE + (p),d,l)
418c2ecf20Sopenharmony_ci#define outsw(p,d,l)	writesw(S3C24XX_VA_ISA_WORD + (p),d,l)
428c2ecf20Sopenharmony_ci#define outsl(p,d,l)	writesl(S3C24XX_VA_ISA_WORD + (p),d,l)
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci#else
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci#define __io(x) (PCIO_BASE + (x))
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#endif
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci#endif
51