blob: 6abebe82d4e93ed0329f271cd54e2af5c1bc38d2 [file] [log] [blame]
Kyle Swenson8d8f6542021-03-15 11:02:55 -06001/*
2 * Copyright 2004-2010 Analog Devices Inc.
3 *
4 * Licensed under the GPL-2 or later.
5 */
6
7#ifndef _BFIN_IO_H
8#define _BFIN_IO_H
9
10#include <linux/compiler.h>
11#include <linux/types.h>
12#include <asm/byteorder.h>
13#include <asm/def_LPBlackfin.h>
14
15#define __raw_readb bfin_read8
16#define __raw_readw bfin_read16
17#define __raw_readl bfin_read32
18#define __raw_writeb(val, addr) bfin_write8(addr, val)
19#define __raw_writew(val, addr) bfin_write16(addr, val)
20#define __raw_writel(val, addr) bfin_write32(addr, val)
21
22extern void outsb(unsigned long port, const void *addr, unsigned long count);
23extern void outsw(unsigned long port, const void *addr, unsigned long count);
24extern void outsw_8(unsigned long port, const void *addr, unsigned long count);
25extern void outsl(unsigned long port, const void *addr, unsigned long count);
26#define outsb outsb
27#define outsw outsw
28#define outsl outsl
29
30extern void insb(unsigned long port, void *addr, unsigned long count);
31extern void insw(unsigned long port, void *addr, unsigned long count);
32extern void insw_8(unsigned long port, void *addr, unsigned long count);
33extern void insl(unsigned long port, void *addr, unsigned long count);
34extern void insl_16(unsigned long port, void *addr, unsigned long count);
35#define insb insb
36#define insw insw
37#define insl insl
38
39/**
40 * I/O write barrier
41 *
42 * Ensure ordering of I/O space writes. This will make sure that writes
43 * following the barrier will arrive after all previous writes.
44 */
45#define mmiowb() do { SSYNC(); wmb(); } while (0)
46
47#include <asm-generic/io.h>
48
49#endif