18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * linux/include/asm-parisc/ide.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 1994-1996 Linus Torvalds & authors 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci/* 98c2ecf20Sopenharmony_ci * This file contains the PARISC architecture specific IDE code. 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#ifndef __ASM_PARISC_IDE_H 138c2ecf20Sopenharmony_ci#define __ASM_PARISC_IDE_H 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#ifdef __KERNEL__ 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci/* Generic I/O and MEMIO string operations. */ 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#define __ide_insw insw 208c2ecf20Sopenharmony_ci#define __ide_insl insl 218c2ecf20Sopenharmony_ci#define __ide_outsw outsw 228c2ecf20Sopenharmony_ci#define __ide_outsl outsl 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic __inline__ void __ide_mm_insw(void __iomem *port, void *addr, u32 count) 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci while (count--) { 278c2ecf20Sopenharmony_ci *(u16 *)addr = __raw_readw(port); 288c2ecf20Sopenharmony_ci addr += 2; 298c2ecf20Sopenharmony_ci } 308c2ecf20Sopenharmony_ci} 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cistatic __inline__ void __ide_mm_insl(void __iomem *port, void *addr, u32 count) 338c2ecf20Sopenharmony_ci{ 348c2ecf20Sopenharmony_ci while (count--) { 358c2ecf20Sopenharmony_ci *(u32 *)addr = __raw_readl(port); 368c2ecf20Sopenharmony_ci addr += 4; 378c2ecf20Sopenharmony_ci } 388c2ecf20Sopenharmony_ci} 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_cistatic __inline__ void __ide_mm_outsw(void __iomem *port, void *addr, u32 count) 418c2ecf20Sopenharmony_ci{ 428c2ecf20Sopenharmony_ci while (count--) { 438c2ecf20Sopenharmony_ci __raw_writew(*(u16 *)addr, port); 448c2ecf20Sopenharmony_ci addr += 2; 458c2ecf20Sopenharmony_ci } 468c2ecf20Sopenharmony_ci} 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_cistatic __inline__ void __ide_mm_outsl(void __iomem *port, void *addr, u32 count) 498c2ecf20Sopenharmony_ci{ 508c2ecf20Sopenharmony_ci while (count--) { 518c2ecf20Sopenharmony_ci __raw_writel(*(u32 *)addr, port); 528c2ecf20Sopenharmony_ci addr += 4; 538c2ecf20Sopenharmony_ci } 548c2ecf20Sopenharmony_ci} 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci#endif /* __KERNEL__ */ 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci#endif /* __ASM_PARISC_IDE_H */ 59