2 * include/asm-sh/io_snapgear.h
4 * Modified version of io_se.h for the snapgear-specific functions.
6 * May be copied or modified under the terms of the GNU General Public
7 * License. See linux/COPYING for more information.
9 * IO functions for a SnapGear
12 #ifndef _ASM_SH_IO_SNAPGEAR_H
13 #define _ASM_SH_IO_SNAPGEAR_H
19 * The external interrupt lines, these take up ints 0 - 15 inclusive
20 * depending on the priority for the interrupt. In fact the priority
21 * is the interrupt :-)
25 #define IRL0_IPR_ADDR INTC_IPRD
26 #define IRL0_IPR_POS 3
27 #define IRL0_PRIORITY 13
30 #define IRL1_IPR_ADDR INTC_IPRD
31 #define IRL1_IPR_POS 2
32 #define IRL1_PRIORITY 10
35 #define IRL2_IPR_ADDR INTC_IPRD
36 #define IRL2_IPR_POS 1
37 #define IRL2_PRIORITY 7
40 #define IRL3_IPR_ADDR INTC_IPRD
41 #define IRL3_IPR_POS 0
42 #define IRL3_PRIORITY 4
45 #include <asm/io_generic.h>
47 extern unsigned char snapgear_inb(unsigned long port);
48 extern unsigned short snapgear_inw(unsigned long port);
49 extern unsigned int snapgear_inl(unsigned long port);
51 extern void snapgear_outb(unsigned char value, unsigned long port);
52 extern void snapgear_outw(unsigned short value, unsigned long port);
53 extern void snapgear_outl(unsigned int value, unsigned long port);
55 extern unsigned char snapgear_inb_p(unsigned long port);
56 extern void snapgear_outb_p(unsigned char value, unsigned long port);
58 extern void snapgear_insb(unsigned long port, void *addr, unsigned long count);
59 extern void snapgear_insw(unsigned long port, void *addr, unsigned long count);
60 extern void snapgear_insl(unsigned long port, void *addr, unsigned long count);
61 extern void snapgear_outsb(unsigned long port, const void *addr, unsigned long count);
62 extern void snapgear_outsw(unsigned long port, const void *addr, unsigned long count);
63 extern void snapgear_outsl(unsigned long port, const void *addr, unsigned long count);
65 extern unsigned char snapgear_readb(unsigned long addr);
66 extern unsigned short snapgear_readw(unsigned long addr);
67 extern unsigned int snapgear_readl(unsigned long addr);
68 extern void snapgear_writeb(unsigned char b, unsigned long addr);
69 extern void snapgear_writew(unsigned short b, unsigned long addr);
70 extern void snapgear_writel(unsigned int b, unsigned long addr);
72 extern unsigned long snapgear_isa_port2addr(unsigned long offset);
76 # define __inb snapgear_inb
77 # define __inw snapgear_inw
78 # define __inl snapgear_inl
79 # define __outb snapgear_outb
80 # define __outw snapgear_outw
81 # define __outl snapgear_outl
83 # define __inb_p snapgear_inb_p
84 # define __inw_p snapgear_inw
85 # define __inl_p snapgear_inl
86 # define __outb_p snapgear_outb_p
87 # define __outw_p snapgear_outw
88 # define __outl_p snapgear_outl
90 # define __insb snapgear_insb
91 # define __insw snapgear_insw
92 # define __insl snapgear_insl
93 # define __outsb snapgear_outsb
94 # define __outsw snapgear_outsw
95 # define __outsl snapgear_outsl
97 # define __readb snapgear_readb
98 # define __readw snapgear_readw
99 # define __readl snapgear_readl
100 # define __writeb snapgear_writeb
101 # define __writew snapgear_writew
102 # define __writel snapgear_writel
104 # define __isa_port2addr snapgear_isa_port2addr
105 # define __ioremap generic_ioremap
106 # define __iounmap generic_iounmap
110 #ifdef CONFIG_SH_SECUREEDGE5410
112 * We need to remember what was written to the ioport as some bits
113 * are shared with other functions and you cannot read back what was
117 * -----------------------------------------------
118 * D0 DCD on ttySC1 power
119 * D1 Reset Switch heatbeat
120 * D2 ttySC0 CTS (7100) LAN
122 * D4 ttySC0 DCD (7100) CONSOLE
126 * D8 - ttySC0 RTS (7100)
127 * D9 - ttySC0 DTR (7100)
129 * D11 RTC DATA RTC DATA
133 #define SECUREEDGE_IOPORT_ADDR ((volatile short *) 0xb0000000)
134 extern unsigned short secureedge5410_ioport;
136 #define SECUREEDGE_WRITE_IOPORT(val, mask) (*SECUREEDGE_IOPORT_ADDR = \
137 (secureedge5410_ioport = \
138 ((secureedge5410_ioport & ~(mask)) | ((val) & (mask)))))
139 #define SECUREEDGE_READ_IOPORT() \
140 ((*SECUREEDGE_IOPORT_ADDR&0x0817) | (secureedge5410_ioport&~0x0817))
143 #endif /* _ASM_SH_IO_SNAPGEAR_H */