]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/include/main.h
Merge branch 'master' into can-usb1
[lincan.git] / lincan / include / main.h
index c85288e9ec079fb30ee153a1d0844c95588da906..f360dcf5b1539f69308a65e37ebde60f341a4808 100644 (file)
 #include "./can_queue.h"
 
 #ifdef CAN_DEBUG
 #include "./can_queue.h"
 
 #ifdef CAN_DEBUG
-       #define DEBUGMSG(fmt,args...) can_printk(KERN_ERR "can.o (debug): " fmt,\
+       #define DEBUGMSG(fmt,args...) can_printk(KERN_ERR "lincan (debug): " fmt,\
        ##args)
 #else
        #define DEBUGMSG(fmt,args...)
 #endif
 
        ##args)
 #else
        #define DEBUGMSG(fmt,args...)
 #endif
 
-#define CANMSG(fmt,args...) can_printk(KERN_ERR "can.o: " fmt,##args)
+#define CANMSG(fmt,args...) can_printk(KERN_ERR "lincan: " fmt,##args)
 
 
 extern can_spinlock_t canuser_manipulation_lock;
 
 
 extern can_spinlock_t canuser_manipulation_lock;
@@ -75,7 +75,8 @@ struct candevice_t {
        int candev_idx;                 /* board index in canhardware_t.candevice[] */
        unsigned long io_addr;          /* IO/physical MEM address */
        unsigned long res_addr;         /* optional reset register port */
        int candev_idx;                 /* board index in canhardware_t.candevice[] */
        unsigned long io_addr;          /* IO/physical MEM address */
        unsigned long res_addr;         /* optional reset register port */
-       unsigned long dev_base_addr;    /* CPU translated IO/virtual MEM address */
+       can_ioptr_t dev_base_addr;      /* CPU translated IO/virtual MEM address */
+       can_ioptr_t aux_base_addr;      /* CPU translated IO/virtual MEM address */
        unsigned int flags;
        int nr_all_chips;
        int nr_82527_chips;
        unsigned int flags;
        int nr_all_chips;
        int nr_82527_chips;
@@ -154,13 +155,13 @@ struct canchip_t {
        char *chip_type;
        int chip_idx;   /* chip index in candevice_t.chip[] */
        int chip_irq;
        char *chip_type;
        int chip_idx;   /* chip index in candevice_t.chip[] */
        int chip_irq;
-       unsigned long chip_base_addr;
+       can_ioptr_t chip_base_addr;
        unsigned int flags;
        long clock; /* Chip clock in Hz */
        long baudrate;
 
        unsigned int flags;
        long clock; /* Chip clock in Hz */
        long baudrate;
 
-       void (*write_register)(unsigned data,unsigned long address);
-       unsigned (*read_register)(unsigned long address);
+       void (*write_register)(unsigned data, can_ioptr_t address);
+       unsigned (*read_register)(can_ioptr_t address);
 
        void *chip_data;
 
 
        void *chip_data;
 
@@ -214,7 +215,7 @@ struct canchip_t {
  *              that reuse same object for TX
  */
 struct msgobj_t {
  *              that reuse same object for TX
  */
 struct msgobj_t {
-       unsigned long obj_base_addr;
+       can_ioptr_t obj_base_addr;
        unsigned int minor;     /* associated device minor number  */
        unsigned int object;    /* object number in canchip_t +1 for debug printk */
        unsigned long obj_flags;
        unsigned int minor;     /* associated device minor number  */
        unsigned int object;    /* object number in canchip_t +1 for debug printk */
        unsigned long obj_flags;
@@ -298,8 +299,8 @@ struct hwspecops_t {
        int (*init_chip_data)(struct candevice_t *candev, int chipnr);
        int (*init_obj_data)(struct canchip_t *chip, int objnr);
        int (*program_irq)(struct candevice_t *candev);
        int (*init_chip_data)(struct candevice_t *candev, int chipnr);
        int (*init_obj_data)(struct canchip_t *chip, int objnr);
        int (*program_irq)(struct candevice_t *candev);
-       void (*write_register)(unsigned data,unsigned long address);
-       unsigned (*read_register)(unsigned long address);
+       void (*write_register)(unsigned data, can_ioptr_t address);
+       unsigned (*read_register)(can_ioptr_t address);
 };
 
 /**
 };
 
 /**
@@ -379,9 +380,10 @@ extern int major;
 extern int minor[MAX_TOT_CHIPS];
 extern int extended;
 extern int baudrate[MAX_TOT_CHIPS];
 extern int minor[MAX_TOT_CHIPS];
 extern int extended;
 extern int baudrate[MAX_TOT_CHIPS];
-extern char *hw[MAX_HW_CARDS];
 extern int irq[MAX_IRQ];
 extern int irq[MAX_IRQ];
+extern char *hw[MAX_HW_CARDS];
 extern unsigned long io[MAX_HW_CARDS];
 extern unsigned long io[MAX_HW_CARDS];
+extern long clockfreq[MAX_HW_CARDS];
 extern int processlocal;
 
 extern struct canhardware_t *hardware_p;
 extern int processlocal;
 
 extern struct canhardware_t *hardware_p;
@@ -392,43 +394,43 @@ extern struct mem_addr *mem_head;
 
 
 #if defined(CONFIG_OC_LINCAN_PORTIO_ONLY)
 
 
 #if defined(CONFIG_OC_LINCAN_PORTIO_ONLY)
-extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned address)
+extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned reg_offs)
 {
 {
-       outb(data, chip->chip_base_addr+address);
+       can_outb(data, chip->chip_base_addr+reg_offs);
 }
 }
-extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned address)
+extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned reg_offs)
 {
 {
-       return inb(chip->chip_base_addr+address);
+       return can_inb(chip->chip_base_addr+reg_offs);
 }
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
 }
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned char data, unsigned address)
+                               unsigned char data, unsigned reg_offs)
 {
 {
-       outb(data, obj->obj_base_addr+address);
+       can_outb(data, obj->obj_base_addr+reg_offs);
 }
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
 }
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned address)
+                               unsigned reg_offs)
 {
 {
-       return inb(obj->obj_base_addr+address);
+       return can_inb(obj->obj_base_addr+reg_offs);
 }
 
 #elif defined(CONFIG_OC_LINCAN_MEMIO_ONLY)
 }
 
 #elif defined(CONFIG_OC_LINCAN_MEMIO_ONLY)
-extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned address)
+extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned reg_offs)
 {
 {
-       writeb(data, chip->chip_base_addr+address);
+       can_writeb(data, chip->chip_base_addr+reg_offs);
 }
 }
-extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned address)
+extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned reg_offs)
 {
 {
-       return readb(chip->chip_base_addr+address);
+       return can_readb(chip->chip_base_addr+reg_offs);
 }
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
 }
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned char data, unsigned address)
+                               unsigned char data, unsigned reg_offs)
 {
 {
-       writeb(data, obj->obj_base_addr+address);
+       can_writeb(data, obj->obj_base_addr+reg_offs);
 }
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
 }
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned address)
+                               unsigned reg_offs)
 {
 {
-       return readb(obj->obj_base_addr+address);
+       return can_readb(obj->obj_base_addr+reg_offs);
 }
 
 #else /*CONFIG_OC_LINCAN_DYNAMICIO*/
 }
 
 #else /*CONFIG_OC_LINCAN_DYNAMICIO*/
@@ -436,42 +438,42 @@ extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struc
 #define CONFIG_OC_LINCAN_DYNAMICIO
 #endif
 
 #define CONFIG_OC_LINCAN_DYNAMICIO
 #endif
 
-/* Inline function to write to the hardware registers. The argument address is
- * relative to the memory map of the chip and not the absolute memory address.
+/* Inline function to write to the hardware registers. The argument reg_offs is
+ * relative to the memory map of the chip and not the absolute memory reg_offs.
  */
  */
-extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned address)
+extern inline void can_write_reg(const struct canchip_t *chip, unsigned char data, unsigned reg_offs)
 {
 {
-       unsigned long address_to_write;
-       address_to_write = chip->chip_base_addr+address;
+       can_ioptr_t address_to_write;
+       address_to_write = chip->chip_base_addr+reg_offs;
        chip->write_register(data, address_to_write);
 }
 
        chip->write_register(data, address_to_write);
 }
 
-extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned address)
+extern inline unsigned can_read_reg(const struct canchip_t *chip, unsigned reg_offs)
 {
 {
-       unsigned long address_to_read;
-       address_to_read = chip->chip_base_addr+address;
+       can_ioptr_t address_to_read;
+       address_to_read = chip->chip_base_addr+reg_offs;
        return chip->read_register(address_to_read);
 }
 
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
        return chip->read_register(address_to_read);
 }
 
 extern inline void canobj_write_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned char data, unsigned address)
+                               unsigned char data, unsigned reg_offs)
 {
 {
-       unsigned long address_to_write;
-       address_to_write = obj->obj_base_addr+address;
+       can_ioptr_t address_to_write;
+       address_to_write = obj->obj_base_addr+reg_offs;
        chip->write_register(data, address_to_write);
 }
 
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
        chip->write_register(data, address_to_write);
 }
 
 extern inline unsigned canobj_read_reg(const struct canchip_t *chip, const struct msgobj_t *obj,
-                               unsigned address)
+                               unsigned reg_offs)
 {
 {
-       unsigned long address_to_read;
-       address_to_read = obj->obj_base_addr+address;
+       can_ioptr_t address_to_read;
+       address_to_read = obj->obj_base_addr+reg_offs;
        return chip->read_register(address_to_read);
 }
 
 #endif /*CONFIG_OC_LINCAN_DYNAMICIO*/
 
        return chip->read_register(address_to_read);
 }
 
 #endif /*CONFIG_OC_LINCAN_DYNAMICIO*/
 
-int can_base_addr_fixup(struct candevice_t *candev, unsigned long new_base);
+int can_base_addr_fixup(struct candevice_t *candev, can_ioptr_t new_base);
 int can_request_io_region(unsigned long start, unsigned long n, const char *name);
 void can_release_io_region(unsigned long start, unsigned long n);
 int can_request_mem_region(unsigned long start, unsigned long n, const char *name);
 int can_request_io_region(unsigned long start, unsigned long n, const char *name);
 void can_release_io_region(unsigned long start, unsigned long n);
 int can_request_mem_region(unsigned long start, unsigned long n, const char *name);