* Rewritten for new CAN queues by Pavel Pisa - OCERA team member
* email:pisa@cmp.felk.cvut.cz
* This software is released under the GPL-License.
- * Version lincan-0.2 9 Jul 2003
+ * Version lincan-0.3 17 Jun 2004
*/
#define __NO_VERSION__
* c_can_enable_configuration - enable chip configuration mode
* @pchip: pointer to chip state structure
*/
-int c_can_enable_configuration(struct chip_t *pchip)
+int c_can_enable_configuration(struct canchip_t *pchip)
{
int i=0;
u16 flags;
}
///////////////////////////////////////////////////////////////////////
-int c_can_disable_configuration(struct chip_t *pchip)
+int c_can_disable_configuration(struct canchip_t *pchip)
{
int i=0;
u16 flags;
}
///////////////////////////////////////////////////////////////////////
-int c_can_chip_config(struct chip_t *pchip)
+int c_can_chip_config(struct canchip_t *pchip)
{
DEBUGMSG("(c%d)calling c_can_chip_config(...)\n", pchip->chip_idx);
/*
* Checks if the Busy-Bit in the IF1-Command-Request Register is set
*/
-int c_can_if1_busycheck(struct chip_t *pchip)
+int c_can_if1_busycheck(struct canchip_t *pchip)
{
int i=0;
/*
* Checks if the Busy-Bit in the IF2-Command-Request Register is set
*/
-int c_can_if2_busycheck(struct chip_t *pchip)
+int c_can_if2_busycheck(struct canchip_t *pchip)
{
int i=0;
* param sampl_pt sample point in % (0-100) sets (TSEG1+2)/(TSEG1+TSEG2+3) ratio
* param flags fields BTR1_SAM, OCMODE, OCPOL, OCTP, OCTN, CLK_OFF, CBP
*/
-int c_can_baud_rate(struct chip_t *pchip, int rate, int clock,
+int c_can_baud_rate(struct canchip_t *pchip, int rate, int clock,
int sjw, int sampl_pt, int flags)
{
int best_error = 1000000000, error;
}
///////////////////////////////////////////////////////////////////////
-int c_can_clear_objects(struct chip_t *pchip)
+int c_can_clear_objects(struct canchip_t *pchip)
{
unsigned short i = 0;
unsigned short tempreg = 0;
}
///////////////////////////////////////////////////////////////////////
-int c_can_config_irqs(struct chip_t *pchip,
+int c_can_config_irqs(struct canchip_t *pchip,
u16 irqs)
{
u16 tempreg;
}
///////////////////////////////////////////////////////////////////////
-int c_can_pre_read_config(struct chip_t *pchip, struct msgobj_t *pmsgobj)
+int c_can_pre_read_config(struct canchip_t *pchip, struct msgobj_t *pmsgobj)
{
unsigned short readMaskCM = IFXCM_CNTRL | IFXCM_ARB;
unsigned short writeMaskCM = IFXCM_CNTRL | IFXCM_ARB | IFXCM_WRRD;
}
///////////////////////////////////////////////////////////////////////
-int c_can_pre_write_config(struct chip_t *chip, struct msgobj_t *obj,
+int c_can_pre_write_config(struct canchip_t *chip, struct msgobj_t *obj,
struct canmsg_t *msg)
{
return 0;
*In this version the method also sends the message.
*/
-int c_can_send_msg(struct chip_t *pchip, struct msgobj_t *pmsgobj,
+int c_can_send_msg(struct canchip_t *pchip, struct msgobj_t *pmsgobj,
struct canmsg_t *pmsg)
{
unsigned short readMaskCM = IFXCM_CNTRL | IFXCM_ARB | IFXCM_DA | IFXCM_DB;
}
//////////////////////////////////////////////////////////////////////
-int c_can_remote_request(struct chip_t *pchip, struct msgobj_t *pmsgobj )
+int c_can_remote_request(struct canchip_t *pchip, struct msgobj_t *pmsgobj )
{
unsigned short readMaskCM = IFXCM_CNTRL;// | IFXCM_ARB;
//unsigned short writeMaskCM = IFXCM_CNTRL | IFXCM_ARB | IFXCM_WRRD;
}
///////////////////////////////////////////////////////////////////////
-int c_can_set_btregs(struct chip_t *pchip,
+int c_can_set_btregs(struct canchip_t *pchip,
u16 btr0,
u16 btr1)
{
/*
* Starts the Chip, by setting the CAN Enable Bit
*/
-int c_can_start_chip(struct chip_t *pchip)
+int c_can_start_chip(struct canchip_t *pchip)
{
u16 flags = 0;
/*
* Stops the Chip, by deleting the CAN Enable Bit
*/
-int c_can_stop_chip(struct chip_t *pchip)
+int c_can_stop_chip(struct canchip_t *pchip)
{
u16 flags = 0;
/*
*Check the TxOK bit of the Status Register and resets it afterwards.
*/
-int c_can_check_tx_stat(struct chip_t *pchip)
+int c_can_check_tx_stat(struct canchip_t *pchip)
{
unsigned long tempstat = 0;
///////////////////////////////////////////////////////////////////////
-int c_can_wakeup_tx(struct chip_t *chip, struct msgobj_t *obj)
+int c_can_wakeup_tx(struct canchip_t *chip, struct msgobj_t *obj)
{
can_preempt_disable();
}
///////////////////////////////////////////////////////////////////////
-int c_can_filtch_rq(struct chip_t *chip, struct msgobj_t *obj)
+int c_can_filtch_rq(struct canchip_t *chip, struct msgobj_t *obj)
{
can_preempt_disable();
///////////////////////////////////////////////////////////////////////
-void c_can_registerdump(struct chip_t *pchip)
+void c_can_registerdump(struct canchip_t *pchip)
{
CANMSG("------------------------------------\n");
CANMSG("---------C-CAN Register Dump--------\n");
chipspecops->start_chip=c_can_start_chip;
chipspecops->stop_chip=c_can_stop_chip;
chipspecops->irq_handler=c_can_irq_handler;
+ chipspecops->irq_accept = NULL;
return 0;
}
-/*int c_can_register(struct chip_t *pchip)
+int c_can_fill_chipspecops(struct canchip_t *chip)
{
- DEBUGMSG("(c%d)call c_can_register\n", pchip->chip_idx);
-
- // Validate pointer
- if ( NULL == pchip ) return -1;
-
- pchip->chip_config = c_can_chip_config;
- pchip->set_baud_rate = c_can_baud_rate;
- pchip->set_mask = c_can_mask;
- pchip->set_use_mask = c_can_use_mask;
- //pchip->set_message15_mask = c_can_extended_mask;
- pchip->clear_objects = c_can_clear_objects;
- pchip->config_irqs = c_can_config_irqs;
- pchip->pre_read_config = c_can_pre_read_config;
- //pchip->pre_write_config = c_can_pre_write_config;
- pchip->send_msg = c_can_send_msg;
- pchip->check_tx_stat = c_can_check_tx_stat;
- pchip->remote_request = c_can_remote_request;
- pchip->enable_configuration = c_can_enable_configuration;
- pchip->disable_configuration = c_can_disable_configuration;
- pchip->set_btregs = c_can_set_btregs;
- pchip->start_chip = c_can_start_chip;
- pchip->stop_chip = c_can_stop_chip;
- pchip->register_dump = c_can_registerdump;
-
- DEBUGMSG("-> ok\n");
- return 0;
+ chip->chip_type="c_can";
+ chip->max_objects = 32;
+ c_can_register(chip->chipspecops);
+ return 0;
}
-*/