Go to the documentation of this file.
32#ifndef NIDAS_LINUX_ISA_BUS_H
33#define NIDAS_LINUX_ISA_BUS_H
37#ifdef CONFIG_ARCH_VIPER
39#include <linux/version.h>
41#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
43#include <mach/viper.h>
45#include <asm/arch/viper.h>
48#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)
49#define SYSTEM_ISA_IOPORT_BASE 0
50#elif defined(VIPER_PC104IO_BASE)
51#define SYSTEM_ISA_IOPORT_BASE ((unsigned long)VIPER_PC104IO_BASE)
54#define SYSTEM_ISA_IOMEM_BASE 0x3c000000
56#define ISA_16BIT_ADDR_OFFSET 0
62#define inw_16o(a) inw(a)
63#define insw_16o(a,p,n) insw(a,p,n)
64#define outw_16o(v,a) outw(v,a)
66#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
87#define GET_SYSTEM_ISA_IRQ(x) \
89 const int irq_map[] = { -1, -1, -1, \
105 if ((x) >= 0 && (x) < sizeof(irq_map)/sizeof(irq_map[0])) \
118#define GET_SYSTEM_ISA_IRQ(x) \
120 const int irq_map[] = { -1, -1, -1, \
136 if ((x) >= 0 && (x) < sizeof(irq_map)/sizeof(irq_map[0])) \
143#elif defined(CONFIG_MACH_ARCOM_MERCURY) || defined(CONFIG_MACH_ARCOM_VULCAN)
146#define SYSTEM_ISA_IOPORT_BASE 0x0
147#define SYSTEM_ISA_IOMEM_BASE 0x049000000
155#define ISA_16BIT_ADDR_OFFSET 0x1000
162#define inw_16o(a) inw((a) + ISA_16BIT_ADDR_OFFSET )
163#define insw_16o(a,p,n) insw((a) + ISA_16BIT_ADDR_OFFSET ,p,n)
164#define outw_16o(v,a) outw(v,(a) + ISA_16BIT_ADDR_OFFSET )
171#define GET_SYSTEM_ISA_IRQ(x) \
173 const int irq_map[] = { -1, -1, -1, IRQ_IXP4XX_GPIO5, IRQ_IXP4XX_GPIO6,\
174 IRQ_IXP4XX_GPIO7, IRQ_IXP4XX_GPIO8, \
175 IRQ_IXP4XX_GPIO9, -1, -1, IRQ_IXP4XX_GPIO10,\
176 IRQ_IXP4XX_GPIO11, IRQ_IXP4XX_GPIO12}; \
178 if ((x) >= 0 && (x) < sizeof(irq_map)/sizeof(irq_map[0])) \
183#elif defined(CONFIG_MACH_ARCOM_TITAN)
185#include <linux/version.h>
187#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
188#include <mach/irqs.h>
189#include <mach/titan.h>
191#include <asm/arch/titan.h>
194#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)
195#define SYSTEM_ISA_IOPORT_BASE 0
196#elif defined(TITAN_PC104IO_BASE)
197#define SYSTEM_ISA_IOPORT_BASE ((unsigned long)TITAN_PC104IO_BASE)
198#elif defined(TITAN_PC104IO_VIRT)
199#define SYSTEM_ISA_IOPORT_BASE ((unsigned long)TITAN_PC104IO_VIRT)
202#define SYSTEM_ISA_IOMEM_BASE 0x3c000000
204#define ISA_16BIT_ADDR_OFFSET 0
210#define inw_16o(a) inw(a)
211#define insw_16o(a,p,n) insw(a,p,n)
212#define outw_16o(v,a) outw(v,a)
214#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
218#define GET_SYSTEM_ISA_IRQ(x) \
220 const int irq_map[] = { -1, -1, -1, \
236 if ((x) >= 0 && (x) < sizeof(irq_map)/sizeof(irq_map[0])) \
244#define GET_SYSTEM_ISA_IRQ(x) \
246 const int irq_map[] = { -1, -1, -1, \
262 if ((x) >= 0 && (x) < sizeof(irq_map)/sizeof(irq_map[0])) \
271#define SYSTEM_ISA_IOPORT_BASE 0x0
272#define SYSTEM_ISA_IOMEM_BASE 0x0
273#define GET_SYSTEM_ISA_IRQ(x) (x)
275#define ISA_16BIT_ADDR_OFFSET 0
276#define inw_16o(a) inw(a)
277#define insw_16o(a,p,n) insw(a,p,n)
278#define outw_16o(v,a) outw(v,a)