1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 *  linux/include/asm-parisc/ide.h
4 *
5 *  Copyright (C) 1994-1996  Linus Torvalds & authors
6 */
7
8/*
9 *  This file contains the PARISC architecture specific IDE code.
10 */
11
12#ifndef __ASM_PARISC_IDE_H
13#define __ASM_PARISC_IDE_H
14
15/* Generic I/O and MEMIO string operations.  */
16
17#define __ide_insw	insw
18#define __ide_insl	insl
19#define __ide_outsw	outsw
20#define __ide_outsl	outsl
21
22static __inline__ void __ide_mm_insw(void __iomem *port, void *addr, u32 count)
23{
24	while (count--) {
25		*(u16 *)addr = __raw_readw(port);
26		addr += 2;
27	}
28}
29
30static __inline__ void __ide_mm_insl(void __iomem *port, void *addr, u32 count)
31{
32	while (count--) {
33		*(u32 *)addr = __raw_readl(port);
34		addr += 4;
35	}
36}
37
38static __inline__ void __ide_mm_outsw(void __iomem *port, void *addr, u32 count)
39{
40	while (count--) {
41		__raw_writew(*(u16 *)addr, port);
42		addr += 2;
43	}
44}
45
46static __inline__ void __ide_mm_outsl(void __iomem *port, void *addr, u32 count)
47{
48	while (count--) {
49		__raw_writel(*(u32 *)addr, port);
50		addr += 4;
51	}
52}
53
54#endif /* __ASM_PARISC_IDE_H */
55