xref: /linux/arch/arm/kernel/isa.c (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
1*1da177e4SLinus Torvalds /*
2*1da177e4SLinus Torvalds  *  linux/arch/arm/kernel/isa.c
3*1da177e4SLinus Torvalds  *
4*1da177e4SLinus Torvalds  *  Copyright (C) 1999 Phil Blundell
5*1da177e4SLinus Torvalds  *
6*1da177e4SLinus Torvalds  *  ISA shared memory and I/O port support
7*1da177e4SLinus Torvalds  */
8*1da177e4SLinus Torvalds 
9*1da177e4SLinus Torvalds /*
10*1da177e4SLinus Torvalds  * This program is free software; you can redistribute it and/or
11*1da177e4SLinus Torvalds  * modify it under the terms of the GNU General Public License
12*1da177e4SLinus Torvalds  * as published by the Free Software Foundation; either version
13*1da177e4SLinus Torvalds  * 2 of the License, or (at your option) any later version.
14*1da177e4SLinus Torvalds  */
15*1da177e4SLinus Torvalds 
16*1da177e4SLinus Torvalds /*
17*1da177e4SLinus Torvalds  * Nothing about this is actually ARM specific.  One day we could move
18*1da177e4SLinus Torvalds  * it into kernel/resource.c or some place like that.
19*1da177e4SLinus Torvalds  */
20*1da177e4SLinus Torvalds 
21*1da177e4SLinus Torvalds #include <linux/stddef.h>
22*1da177e4SLinus Torvalds #include <linux/types.h>
23*1da177e4SLinus Torvalds #include <linux/fs.h>
24*1da177e4SLinus Torvalds #include <linux/sysctl.h>
25*1da177e4SLinus Torvalds #include <linux/init.h>
26*1da177e4SLinus Torvalds 
27*1da177e4SLinus Torvalds static unsigned int isa_membase, isa_portbase, isa_portshift;
28*1da177e4SLinus Torvalds 
29*1da177e4SLinus Torvalds static ctl_table ctl_isa_vars[4] = {
30*1da177e4SLinus Torvalds 	{BUS_ISA_MEM_BASE, "membase", &isa_membase,
31*1da177e4SLinus Torvalds 	 sizeof(isa_membase), 0444, NULL, &proc_dointvec},
32*1da177e4SLinus Torvalds 	{BUS_ISA_PORT_BASE, "portbase", &isa_portbase,
33*1da177e4SLinus Torvalds 	 sizeof(isa_portbase), 0444, NULL, &proc_dointvec},
34*1da177e4SLinus Torvalds 	{BUS_ISA_PORT_SHIFT, "portshift", &isa_portshift,
35*1da177e4SLinus Torvalds 	 sizeof(isa_portshift), 0444, NULL, &proc_dointvec},
36*1da177e4SLinus Torvalds 	{0}
37*1da177e4SLinus Torvalds };
38*1da177e4SLinus Torvalds 
39*1da177e4SLinus Torvalds static struct ctl_table_header *isa_sysctl_header;
40*1da177e4SLinus Torvalds 
41*1da177e4SLinus Torvalds static ctl_table ctl_isa[2] = {{CTL_BUS_ISA, "isa", NULL, 0, 0555, ctl_isa_vars},
42*1da177e4SLinus Torvalds 			       {0}};
43*1da177e4SLinus Torvalds static ctl_table ctl_bus[2] = {{CTL_BUS, "bus", NULL, 0, 0555, ctl_isa},
44*1da177e4SLinus Torvalds 			       {0}};
45*1da177e4SLinus Torvalds 
46*1da177e4SLinus Torvalds void __init
47*1da177e4SLinus Torvalds register_isa_ports(unsigned int membase, unsigned int portbase, unsigned int portshift)
48*1da177e4SLinus Torvalds {
49*1da177e4SLinus Torvalds 	isa_membase = membase;
50*1da177e4SLinus Torvalds 	isa_portbase = portbase;
51*1da177e4SLinus Torvalds 	isa_portshift = portshift;
52*1da177e4SLinus Torvalds 	isa_sysctl_header = register_sysctl_table(ctl_bus, 0);
53*1da177e4SLinus Torvalds }
54