diff options
Diffstat (limited to 'arch/tile/include/gxio')
-rw-r--r-- | arch/tile/include/gxio/common.h | 40 | ||||
-rw-r--r-- | arch/tile/include/gxio/iorpc_globals.h | 38 | ||||
-rw-r--r-- | arch/tile/include/gxio/kiorpc.h | 29 |
3 files changed, 107 insertions, 0 deletions
diff --git a/arch/tile/include/gxio/common.h b/arch/tile/include/gxio/common.h new file mode 100644 index 000000000000..724595a24d04 --- /dev/null +++ b/arch/tile/include/gxio/common.h | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Tilera Corporation. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation, version 2. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, but | ||
9 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
11 | * NON INFRINGEMENT. See the GNU General Public License for | ||
12 | * more details. | ||
13 | */ | ||
14 | |||
15 | #ifndef _GXIO_COMMON_H_ | ||
16 | #define _GXIO_COMMON_H_ | ||
17 | |||
18 | /* | ||
19 | * Routines shared between the various GXIO device components. | ||
20 | */ | ||
21 | |||
22 | #include <hv/iorpc.h> | ||
23 | |||
24 | #include <linux/types.h> | ||
25 | #include <linux/compiler.h> | ||
26 | #include <linux/io.h> | ||
27 | |||
28 | /* Define the standard gxio MMIO functions using kernel functions. */ | ||
29 | #define __gxio_mmio_read8(addr) readb(addr) | ||
30 | #define __gxio_mmio_read16(addr) readw(addr) | ||
31 | #define __gxio_mmio_read32(addr) readl(addr) | ||
32 | #define __gxio_mmio_read64(addr) readq(addr) | ||
33 | #define __gxio_mmio_write8(addr, val) writeb((val), (addr)) | ||
34 | #define __gxio_mmio_write16(addr, val) writew((val), (addr)) | ||
35 | #define __gxio_mmio_write32(addr, val) writel((val), (addr)) | ||
36 | #define __gxio_mmio_write64(addr, val) writeq((val), (addr)) | ||
37 | #define __gxio_mmio_read(addr) __gxio_mmio_read64(addr) | ||
38 | #define __gxio_mmio_write(addr, val) __gxio_mmio_write64((addr), (val)) | ||
39 | |||
40 | #endif /* !_GXIO_COMMON_H_ */ | ||
diff --git a/arch/tile/include/gxio/iorpc_globals.h b/arch/tile/include/gxio/iorpc_globals.h new file mode 100644 index 000000000000..52c721f8dad9 --- /dev/null +++ b/arch/tile/include/gxio/iorpc_globals.h | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Tilera Corporation. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation, version 2. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, but | ||
9 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
11 | * NON INFRINGEMENT. See the GNU General Public License for | ||
12 | * more details. | ||
13 | */ | ||
14 | |||
15 | /* This file is machine-generated; DO NOT EDIT! */ | ||
16 | #ifndef __IORPC_LINUX_RPC_H__ | ||
17 | #define __IORPC_LINUX_RPC_H__ | ||
18 | |||
19 | #include <hv/iorpc.h> | ||
20 | |||
21 | #include <linux/string.h> | ||
22 | #include <linux/module.h> | ||
23 | #include <asm/pgtable.h> | ||
24 | |||
25 | #define IORPC_OP_ARM_POLLFD IORPC_OPCODE(IORPC_FORMAT_KERNEL_POLLFD, 0x9000) | ||
26 | #define IORPC_OP_CLOSE_POLLFD IORPC_OPCODE(IORPC_FORMAT_KERNEL_POLLFD, 0x9001) | ||
27 | #define IORPC_OP_GET_MMIO_BASE IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x8000) | ||
28 | #define IORPC_OP_CHECK_MMIO_OFFSET IORPC_OPCODE(IORPC_FORMAT_NONE_NOUSER, 0x8001) | ||
29 | |||
30 | int __iorpc_arm_pollfd(int fd, int pollfd_cookie); | ||
31 | |||
32 | int __iorpc_close_pollfd(int fd, int pollfd_cookie); | ||
33 | |||
34 | int __iorpc_get_mmio_base(int fd, HV_PTE *base); | ||
35 | |||
36 | int __iorpc_check_mmio_offset(int fd, unsigned long offset, unsigned long size); | ||
37 | |||
38 | #endif /* !__IORPC_LINUX_RPC_H__ */ | ||
diff --git a/arch/tile/include/gxio/kiorpc.h b/arch/tile/include/gxio/kiorpc.h new file mode 100644 index 000000000000..ee5820979ff3 --- /dev/null +++ b/arch/tile/include/gxio/kiorpc.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Tilera Corporation. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation, version 2. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, but | ||
9 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
11 | * NON INFRINGEMENT. See the GNU General Public License for | ||
12 | * more details. | ||
13 | * | ||
14 | * Support routines for kernel IORPC drivers. | ||
15 | */ | ||
16 | |||
17 | #ifndef _GXIO_KIORPC_H | ||
18 | #define _GXIO_KIORPC_H | ||
19 | |||
20 | #include <linux/types.h> | ||
21 | #include <asm/page.h> | ||
22 | #include <arch/chip.h> | ||
23 | |||
24 | #if CHIP_HAS_MMIO() | ||
25 | void __iomem *iorpc_ioremap(int hv_fd, resource_size_t offset, | ||
26 | unsigned long size); | ||
27 | #endif | ||
28 | |||
29 | #endif /* _GXIO_KIORPC_H */ | ||