Lines Matching +full:isa +full:- +full:base
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * i2c-pca-isa.c driver for PCA9564 on ISA boards
17 #include <linux/isa.h>
19 #include <linux/i2c-algo-pca.h>
24 #define DRIVER "i2c-pca-isa"
27 static unsigned long base; variable
28 static int irq = -1;
42 base+reg, val); in pca_isa_writebyte()
44 outb(val, base+reg); in pca_isa_writebyte()
49 int res = inb(base+reg); in pca_isa_readbyte()
64 if (irq > -1) { in pca_isa_waitforcompletion()
95 /* .data intentionally left NULL, not needed with ISA */
105 .name = "PCA9564/PCA9665 ISA Adapter",
111 int match = base != 0; in pca_isa_match()
114 if (irq <= -1) in pca_isa_match()
117 dev_err(dev, "Please specify I/O base\n"); in pca_isa_match()
126 dev_info(dev, "i/o base %#08lx. irq %d\n", base, irq); in pca_isa_probe()
129 if (check_legacy_ioport(base)) { in pca_isa_probe()
130 dev_err(dev, "I/O address %#08lx is not available\n", base); in pca_isa_probe()
135 if (!request_region(base, IO_SIZE, "i2c-pca-isa")) { in pca_isa_probe()
136 dev_err(dev, "I/O address %#08lx is in use\n", base); in pca_isa_probe()
140 if (irq > -1) { in pca_isa_probe()
141 if (request_irq(irq, pca_handler, 0, "i2c-pca-isa", &pca_isa_ops) < 0) { in pca_isa_probe()
156 if (irq > -1) in pca_isa_probe()
159 release_region(base, IO_SIZE); in pca_isa_probe()
161 return -ENODEV; in pca_isa_probe()
168 if (irq > -1) { in pca_isa_remove()
172 release_region(base, IO_SIZE); in pca_isa_remove()
186 MODULE_DESCRIPTION("ISA base PCA9564/PCA9665 driver");
189 module_param_hw(base, ulong, ioport, 0);
190 MODULE_PARM_DESC(base, "I/O base address");
197 "\t\tFor PCA9665:\tStandard: 60300 - 100099\n"
198 "\t\t\t\tFast: 100100 - 400099\n"
199 "\t\t\t\tFast+: 400100 - 10000099\n"