18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *  Copyright (C) 1994-1996  Linus Torvalds & authors
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci/* Copyright(c) 1996 Kars de Jong */
78c2ecf20Sopenharmony_ci/* Based on the ide driver from 1.2.13pl8 */
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/*
108c2ecf20Sopenharmony_ci * Credits (alphabetical):
118c2ecf20Sopenharmony_ci *
128c2ecf20Sopenharmony_ci *  - Bjoern Brauel
138c2ecf20Sopenharmony_ci *  - Kars de Jong
148c2ecf20Sopenharmony_ci *  - Torsten Ebeling
158c2ecf20Sopenharmony_ci *  - Dwight Engen
168c2ecf20Sopenharmony_ci *  - Thorsten Floeck
178c2ecf20Sopenharmony_ci *  - Roman Hodek
188c2ecf20Sopenharmony_ci *  - Guenther Kelleter
198c2ecf20Sopenharmony_ci *  - Chris Lawrence
208c2ecf20Sopenharmony_ci *  - Michael Rausch
218c2ecf20Sopenharmony_ci *  - Christian Sauer
228c2ecf20Sopenharmony_ci *  - Michael Schmitz
238c2ecf20Sopenharmony_ci *  - Jes Soerensen
248c2ecf20Sopenharmony_ci *  - Michael Thurm
258c2ecf20Sopenharmony_ci *  - Geert Uytterhoeven
268c2ecf20Sopenharmony_ci */
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci#ifndef _M68K_IDE_H
298c2ecf20Sopenharmony_ci#define _M68K_IDE_H
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci#ifdef __KERNEL__
328c2ecf20Sopenharmony_ci#include <asm/setup.h>
338c2ecf20Sopenharmony_ci#include <asm/io.h>
348c2ecf20Sopenharmony_ci#include <asm/irq.h>
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci#ifdef CONFIG_MMU
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci/*
398c2ecf20Sopenharmony_ci * Get rid of defs from io.h - ide has its private and conflicting versions
408c2ecf20Sopenharmony_ci * Since so far no single m68k platform uses ISA/PCI I/O space for IDE, we
418c2ecf20Sopenharmony_ci * always use the `raw' MMIO versions
428c2ecf20Sopenharmony_ci */
438c2ecf20Sopenharmony_ci#undef readb
448c2ecf20Sopenharmony_ci#undef readw
458c2ecf20Sopenharmony_ci#undef writeb
468c2ecf20Sopenharmony_ci#undef writew
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#define readb				in_8
498c2ecf20Sopenharmony_ci#define readw				in_be16
508c2ecf20Sopenharmony_ci#define __ide_mm_insw(port, addr, n)	raw_insw((u16 *)port, addr, n)
518c2ecf20Sopenharmony_ci#define __ide_mm_insl(port, addr, n)	raw_insl((u32 *)port, addr, n)
528c2ecf20Sopenharmony_ci#define writeb(val, port)		out_8(port, val)
538c2ecf20Sopenharmony_ci#define writew(val, port)		out_be16(port, val)
548c2ecf20Sopenharmony_ci#define __ide_mm_outsw(port, addr, n)	raw_outsw((u16 *)port, addr, n)
558c2ecf20Sopenharmony_ci#define __ide_mm_outsl(port, addr, n)	raw_outsl((u32 *)port, addr, n)
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci#else
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci#define __ide_mm_insw(port, addr, n)	io_insw((unsigned int)port, addr, n)
608c2ecf20Sopenharmony_ci#define __ide_mm_insl(port, addr, n)	io_insl((unsigned int)port, addr, n)
618c2ecf20Sopenharmony_ci#define __ide_mm_outsw(port, addr, n)	io_outsw((unsigned int)port, addr, n)
628c2ecf20Sopenharmony_ci#define __ide_mm_outsl(port, addr, n)	io_outsl((unsigned int)port, addr, n)
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci#endif /* CONFIG_MMU */
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci#endif /* __KERNEL__ */
678c2ecf20Sopenharmony_ci#endif /* _M68K_IDE_H */
68