From 44fb7affcfa4e968e9c2ede023ef0e15f06d8209 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Wed, 17 Nov 2021 12:06:02 +0000 Subject: comedi: Move "comedi_8254.h" to Some of the header files in "drivers/comedi/drivers/" are common enough to be useful to out-of-tree comedi driver modules. Using them for out-of-tree module builds is hampered by the headers being outside the "include/" directory so it is desirable to move them. There are about a couple of dozen or so Comedi device drivers that use the "comedi_8254" module to add timers based on the venerable 8254 Programmable Interval Timer chip. The macros and declarations to use that module are in the "comedi_8254.h" header file in the comedi "drivers" directory. Move it into "include/linux/comedi/". Signed-off-by: Ian Abbott Link: https://lore.kernel.org/r/20211117120604.117740-5-abbotti@mev.co.uk Signed-off-by: Greg Kroah-Hartman --- drivers/comedi/drivers/adl_pci9111.c | 2 +- drivers/comedi/drivers/adl_pci9118.c | 2 +- drivers/comedi/drivers/adv_pci1710.c | 2 +- drivers/comedi/drivers/adv_pci_dio.c | 3 +- drivers/comedi/drivers/aio_aio12_8.c | 3 +- drivers/comedi/drivers/amplc_dio200_common.c | 2 +- drivers/comedi/drivers/amplc_pci224.c | 3 +- drivers/comedi/drivers/amplc_pci230.c | 3 +- drivers/comedi/drivers/cb_das16_cs.c | 3 +- drivers/comedi/drivers/cb_pcidas.c | 2 +- drivers/comedi/drivers/cb_pcimdas.c | 2 +- drivers/comedi/drivers/comedi_8254.c | 3 +- drivers/comedi/drivers/comedi_8254.h | 134 --------------------------- drivers/comedi/drivers/das08.c | 2 +- drivers/comedi/drivers/das16.c | 2 +- drivers/comedi/drivers/das16m1.c | 3 +- drivers/comedi/drivers/das1800.c | 2 +- drivers/comedi/drivers/das6402.c | 3 +- drivers/comedi/drivers/das800.c | 3 +- drivers/comedi/drivers/me4000.c | 2 +- drivers/comedi/drivers/ni_at_a2150.c | 2 +- drivers/comedi/drivers/ni_at_ao.c | 3 +- drivers/comedi/drivers/ni_labpc_common.c | 2 +- drivers/comedi/drivers/pcl711.c | 3 +- drivers/comedi/drivers/pcl812.c | 2 +- drivers/comedi/drivers/pcl816.c | 2 +- drivers/comedi/drivers/pcl818.c | 2 +- drivers/comedi/drivers/rtd520.c | 2 +- 28 files changed, 27 insertions(+), 172 deletions(-) delete mode 100644 drivers/comedi/drivers/comedi_8254.h (limited to 'drivers/comedi') diff --git a/drivers/comedi/drivers/adl_pci9111.c b/drivers/comedi/drivers/adl_pci9111.c index 65454f3ecc91..c50f94272a74 100644 --- a/drivers/comedi/drivers/adl_pci9111.c +++ b/drivers/comedi/drivers/adl_pci9111.c @@ -43,9 +43,9 @@ #include #include #include +#include #include "plx9052.h" -#include "comedi_8254.h" #define PCI9111_FIFO_HALF_SIZE 512 diff --git a/drivers/comedi/drivers/adl_pci9118.c b/drivers/comedi/drivers/adl_pci9118.c index 248cec3d894f..9a816c718303 100644 --- a/drivers/comedi/drivers/adl_pci9118.c +++ b/drivers/comedi/drivers/adl_pci9118.c @@ -79,9 +79,9 @@ #include #include #include +#include #include "amcc_s5933.h" -#include "comedi_8254.h" /* * PCI BAR2 Register map (dev->iobase) diff --git a/drivers/comedi/drivers/adv_pci1710.c b/drivers/comedi/drivers/adv_pci1710.c index 47a800d72e58..4f2639968260 100644 --- a/drivers/comedi/drivers/adv_pci1710.c +++ b/drivers/comedi/drivers/adv_pci1710.c @@ -31,8 +31,8 @@ #include #include #include +#include -#include "comedi_8254.h" #include "amcc_s5933.h" /* diff --git a/drivers/comedi/drivers/adv_pci_dio.c b/drivers/comedi/drivers/adv_pci_dio.c index 1ec602f8c6e1..efa3e46b554b 100644 --- a/drivers/comedi/drivers/adv_pci_dio.c +++ b/drivers/comedi/drivers/adv_pci_dio.c @@ -25,8 +25,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * Register offset definitions diff --git a/drivers/comedi/drivers/aio_aio12_8.c b/drivers/comedi/drivers/aio_aio12_8.c index cd797dc0f828..30b8a32204d8 100644 --- a/drivers/comedi/drivers/aio_aio12_8.c +++ b/drivers/comedi/drivers/aio_aio12_8.c @@ -24,8 +24,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * Register map diff --git a/drivers/comedi/drivers/amplc_dio200_common.c b/drivers/comedi/drivers/amplc_dio200_common.c index 26b4049b366c..ff651f2eb86c 100644 --- a/drivers/comedi/drivers/amplc_dio200_common.c +++ b/drivers/comedi/drivers/amplc_dio200_common.c @@ -14,9 +14,9 @@ #include #include #include /* only for register defines */ +#include #include "amplc_dio200.h" -#include "comedi_8254.h" /* 200 series registers */ #define DIO200_IO_SIZE 0x20 diff --git a/drivers/comedi/drivers/amplc_pci224.c b/drivers/comedi/drivers/amplc_pci224.c index 3cf1b7fa565d..5a04e55daeea 100644 --- a/drivers/comedi/drivers/amplc_pci224.c +++ b/drivers/comedi/drivers/amplc_pci224.c @@ -97,8 +97,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * PCI224/234 i/o space 1 (PCIBAR2) registers. diff --git a/drivers/comedi/drivers/amplc_pci230.c b/drivers/comedi/drivers/amplc_pci230.c index 93f7057d5b3f..92ba8b8c0172 100644 --- a/drivers/comedi/drivers/amplc_pci230.c +++ b/drivers/comedi/drivers/amplc_pci230.c @@ -176,8 +176,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * PCI230 PCI configuration register information diff --git a/drivers/comedi/drivers/cb_das16_cs.c b/drivers/comedi/drivers/cb_das16_cs.c index 190d73a7d12c..8e0d2fa5f95d 100644 --- a/drivers/comedi/drivers/cb_das16_cs.c +++ b/drivers/comedi/drivers/cb_das16_cs.c @@ -28,8 +28,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * Register I/O map diff --git a/drivers/comedi/drivers/cb_pcidas.c b/drivers/comedi/drivers/cb_pcidas.c index 75ff02b47959..0c7576b967fc 100644 --- a/drivers/comedi/drivers/cb_pcidas.c +++ b/drivers/comedi/drivers/cb_pcidas.c @@ -56,8 +56,8 @@ #include #include #include +#include -#include "comedi_8254.h" #include "amcc_s5933.h" #define AI_BUFFER_SIZE 1024 /* max ai fifo size */ diff --git a/drivers/comedi/drivers/cb_pcimdas.c b/drivers/comedi/drivers/cb_pcimdas.c index 7bc0805c69e2..8bdb00774f11 100644 --- a/drivers/comedi/drivers/cb_pcimdas.c +++ b/drivers/comedi/drivers/cb_pcimdas.c @@ -36,8 +36,8 @@ #include #include #include +#include -#include "comedi_8254.h" #include "plx9052.h" /* diff --git a/drivers/comedi/drivers/comedi_8254.c b/drivers/comedi/drivers/comedi_8254.c index fac81567133d..b4185c1b2695 100644 --- a/drivers/comedi/drivers/comedi_8254.c +++ b/drivers/comedi/drivers/comedi_8254.c @@ -117,8 +117,7 @@ #include #include #include - -#include "comedi_8254.h" +#include static unsigned int __i8254_read(struct comedi_8254 *i8254, unsigned int reg) { diff --git a/drivers/comedi/drivers/comedi_8254.h b/drivers/comedi/drivers/comedi_8254.h deleted file mode 100644 index d8264417e53c..000000000000 --- a/drivers/comedi/drivers/comedi_8254.h +++ /dev/null @@ -1,134 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * comedi_8254.h - * Generic 8254 timer/counter support - * Copyright (C) 2014 H Hartley Sweeten - * - * COMEDI - Linux Control and Measurement Device Interface - * Copyright (C) 2000 David A. Schleef - */ - -#ifndef _COMEDI_8254_H -#define _COMEDI_8254_H - -#include - -struct comedi_device; -struct comedi_insn; -struct comedi_subdevice; - -/* - * Common oscillator base values in nanoseconds - */ -#define I8254_OSC_BASE_10MHZ 100 -#define I8254_OSC_BASE_5MHZ 200 -#define I8254_OSC_BASE_4MHZ 250 -#define I8254_OSC_BASE_2MHZ 500 -#define I8254_OSC_BASE_1MHZ 1000 -#define I8254_OSC_BASE_100KHZ 10000 -#define I8254_OSC_BASE_10KHZ 100000 -#define I8254_OSC_BASE_1KHZ 1000000 - -/* - * I/O access size used to read/write registers - */ -#define I8254_IO8 1 -#define I8254_IO16 2 -#define I8254_IO32 4 - -/* - * Register map for generic 8254 timer (I8254_IO8 with 0 regshift) - */ -#define I8254_COUNTER0_REG 0x00 -#define I8254_COUNTER1_REG 0x01 -#define I8254_COUNTER2_REG 0x02 -#define I8254_CTRL_REG 0x03 -#define I8254_CTRL_SEL_CTR(x) ((x) << 6) -#define I8254_CTRL_READBACK(x) (I8254_CTRL_SEL_CTR(3) | BIT(x)) -#define I8254_CTRL_READBACK_COUNT I8254_CTRL_READBACK(4) -#define I8254_CTRL_READBACK_STATUS I8254_CTRL_READBACK(5) -#define I8254_CTRL_READBACK_SEL_CTR(x) (2 << (x)) -#define I8254_CTRL_RW(x) (((x) & 0x3) << 4) -#define I8254_CTRL_LATCH I8254_CTRL_RW(0) -#define I8254_CTRL_LSB_ONLY I8254_CTRL_RW(1) -#define I8254_CTRL_MSB_ONLY I8254_CTRL_RW(2) -#define I8254_CTRL_LSB_MSB I8254_CTRL_RW(3) - -/* counter maps zero to 0x10000 */ -#define I8254_MAX_COUNT 0x10000 - -/** - * struct comedi_8254 - private data used by this module - * @iobase: PIO base address of the registers (in/out) - * @mmio: MMIO base address of the registers (read/write) - * @iosize: I/O size used to access the registers (b/w/l) - * @regshift: register gap shift - * @osc_base: cascaded oscillator speed in ns - * @divisor: divisor for single counter - * @divisor1: divisor loaded into first cascaded counter - * @divisor2: divisor loaded into second cascaded counter - * #next_div: next divisor for single counter - * @next_div1: next divisor to use for first cascaded counter - * @next_div2: next divisor to use for second cascaded counter - * @clock_src; current clock source for each counter (driver specific) - * @gate_src; current gate source for each counter (driver specific) - * @busy: flags used to indicate that a counter is "busy" - * @insn_config: driver specific (*insn_config) callback - */ -struct comedi_8254 { - unsigned long iobase; - void __iomem *mmio; - unsigned int iosize; - unsigned int regshift; - unsigned int osc_base; - unsigned int divisor; - unsigned int divisor1; - unsigned int divisor2; - unsigned int next_div; - unsigned int next_div1; - unsigned int next_div2; - unsigned int clock_src[3]; - unsigned int gate_src[3]; - bool busy[3]; - - int (*insn_config)(struct comedi_device *dev, - struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data); -}; - -unsigned int comedi_8254_status(struct comedi_8254 *i8254, - unsigned int counter); -unsigned int comedi_8254_read(struct comedi_8254 *i8254, unsigned int counter); -void comedi_8254_write(struct comedi_8254 *i8254, - unsigned int counter, unsigned int val); - -int comedi_8254_set_mode(struct comedi_8254 *i8254, - unsigned int counter, unsigned int mode); -int comedi_8254_load(struct comedi_8254 *i8254, - unsigned int counter, unsigned int val, unsigned int mode); - -void comedi_8254_pacer_enable(struct comedi_8254 *i8254, - unsigned int counter1, unsigned int counter2, - bool enable); -void comedi_8254_update_divisors(struct comedi_8254 *i8254); -void comedi_8254_cascade_ns_to_timer(struct comedi_8254 *i8254, - unsigned int *nanosec, unsigned int flags); -void comedi_8254_ns_to_timer(struct comedi_8254 *i8254, - unsigned int *nanosec, unsigned int flags); - -void comedi_8254_set_busy(struct comedi_8254 *i8254, - unsigned int counter, bool busy); - -void comedi_8254_subdevice_init(struct comedi_subdevice *s, - struct comedi_8254 *i8254); - -struct comedi_8254 *comedi_8254_init(unsigned long iobase, - unsigned int osc_base, - unsigned int iosize, - unsigned int regshift); -struct comedi_8254 *comedi_8254_mm_init(void __iomem *mmio, - unsigned int osc_base, - unsigned int iosize, - unsigned int regshift); - -#endif /* _COMEDI_8254_H */ diff --git a/drivers/comedi/drivers/das08.c b/drivers/comedi/drivers/das08.c index bab868de2967..f8ab3af2e391 100644 --- a/drivers/comedi/drivers/das08.c +++ b/drivers/comedi/drivers/das08.c @@ -12,8 +12,8 @@ #include #include #include +#include -#include "comedi_8254.h" #include "das08.h" /* diff --git a/drivers/comedi/drivers/das16.c b/drivers/comedi/drivers/das16.c index 338396736936..f6649ffa9670 100644 --- a/drivers/comedi/drivers/das16.c +++ b/drivers/comedi/drivers/das16.c @@ -65,9 +65,9 @@ #include #include #include +#include #include "comedi_isadma.h" -#include "comedi_8254.h" #define DAS16_DMA_SIZE 0xff00 /* size in bytes of allocated dma buffer */ diff --git a/drivers/comedi/drivers/das16m1.c b/drivers/comedi/drivers/das16m1.c index ea55024d8c5a..275effb77746 100644 --- a/drivers/comedi/drivers/das16m1.c +++ b/drivers/comedi/drivers/das16m1.c @@ -44,8 +44,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * Register map (dev->iobase) diff --git a/drivers/comedi/drivers/das1800.c b/drivers/comedi/drivers/das1800.c index 768803742350..a43d3414a122 100644 --- a/drivers/comedi/drivers/das1800.c +++ b/drivers/comedi/drivers/das1800.c @@ -74,9 +74,9 @@ #include #include #include +#include #include "comedi_isadma.h" -#include "comedi_8254.h" /* misc. defines */ #define DAS1800_SIZE 16 /* uses 16 io addresses */ diff --git a/drivers/comedi/drivers/das6402.c b/drivers/comedi/drivers/das6402.c index d411ab7cf37c..1af394591e74 100644 --- a/drivers/comedi/drivers/das6402.c +++ b/drivers/comedi/drivers/das6402.c @@ -25,8 +25,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * Register I/O map diff --git a/drivers/comedi/drivers/das800.c b/drivers/comedi/drivers/das800.c index c95e0fcb94a4..4ca33f46eaa7 100644 --- a/drivers/comedi/drivers/das800.c +++ b/drivers/comedi/drivers/das800.c @@ -47,8 +47,7 @@ #include #include #include - -#include "comedi_8254.h" +#include #define N_CHAN_AI 8 /* number of analog input channels */ diff --git a/drivers/comedi/drivers/me4000.c b/drivers/comedi/drivers/me4000.c index c5dc8199771f..9aea02b86ed9 100644 --- a/drivers/comedi/drivers/me4000.c +++ b/drivers/comedi/drivers/me4000.c @@ -33,8 +33,8 @@ #include #include #include +#include -#include "comedi_8254.h" #include "plx9052.h" #define ME4000_FIRMWARE "me4000_firmware.bin" diff --git a/drivers/comedi/drivers/ni_at_a2150.c b/drivers/comedi/drivers/ni_at_a2150.c index ce5de58c499f..9942d770add8 100644 --- a/drivers/comedi/drivers/ni_at_a2150.c +++ b/drivers/comedi/drivers/ni_at_a2150.c @@ -40,9 +40,9 @@ #include #include #include +#include #include "comedi_isadma.h" -#include "comedi_8254.h" #define A2150_DMA_BUFFER_SIZE 0xff00 /* size in bytes of dma buffer */ diff --git a/drivers/comedi/drivers/ni_at_ao.c b/drivers/comedi/drivers/ni_at_ao.c index a06dfb9da329..9f3147b72aa8 100644 --- a/drivers/comedi/drivers/ni_at_ao.c +++ b/drivers/comedi/drivers/ni_at_ao.c @@ -26,8 +26,7 @@ #include #include - -#include "comedi_8254.h" +#include /* * Register map diff --git a/drivers/comedi/drivers/ni_labpc_common.c b/drivers/comedi/drivers/ni_labpc_common.c index 4a1269aeb371..763249653228 100644 --- a/drivers/comedi/drivers/ni_labpc_common.c +++ b/drivers/comedi/drivers/ni_labpc_common.c @@ -14,8 +14,8 @@ #include #include #include +#include -#include "comedi_8254.h" #include "ni_labpc.h" #include "ni_labpc_regs.h" #include "ni_labpc_isadma.h" diff --git a/drivers/comedi/drivers/pcl711.c b/drivers/comedi/drivers/pcl711.c index f1c383bd9d87..05172c553c8a 100644 --- a/drivers/comedi/drivers/pcl711.c +++ b/drivers/comedi/drivers/pcl711.c @@ -30,8 +30,7 @@ #include #include #include - -#include "comedi_8254.h" +#include /* * I/O port register map diff --git a/drivers/comedi/drivers/pcl812.c b/drivers/comedi/drivers/pcl812.c index f00976ddfc2a..790f54476a91 100644 --- a/drivers/comedi/drivers/pcl812.c +++ b/drivers/comedi/drivers/pcl812.c @@ -115,9 +115,9 @@ #include #include #include +#include #include "comedi_isadma.h" -#include "comedi_8254.h" /* * Register I/O map diff --git a/drivers/comedi/drivers/pcl816.c b/drivers/comedi/drivers/pcl816.c index c5acdc8913f8..77b30246d966 100644 --- a/drivers/comedi/drivers/pcl816.c +++ b/drivers/comedi/drivers/pcl816.c @@ -36,9 +36,9 @@ #include #include #include +#include #include "comedi_isadma.h" -#include "comedi_8254.h" /* * Register I/O map diff --git a/drivers/comedi/drivers/pcl818.c b/drivers/comedi/drivers/pcl818.c index 20fcd6d588f8..e5b7793cce05 100644 --- a/drivers/comedi/drivers/pcl818.c +++ b/drivers/comedi/drivers/pcl818.c @@ -98,9 +98,9 @@ #include #include #include +#include #include "comedi_isadma.h" -#include "comedi_8254.h" /* * Register I/O map diff --git a/drivers/comedi/drivers/rtd520.c b/drivers/comedi/drivers/rtd520.c index ee5bca2b1c09..7e0ec1a2a2ca 100644 --- a/drivers/comedi/drivers/rtd520.c +++ b/drivers/comedi/drivers/rtd520.c @@ -86,8 +86,8 @@ #include #include #include +#include -#include "comedi_8254.h" #include "plx9080.h" /* -- cgit v1.2.3