1 /* ns_dev_can.h - FPGA version of C_CAN ARM device specific code
2 * Linux CAN-bus device driver.
3 * Written by Sebastian Stolzenberg email:stolzi@sebastian-stolzenberg.de
4 * Based on code from Arnaud Westenberg email:arnaud@wanadoo.nl
5 * and Ake Hedman, eurosource, akhe@eurosource.se
6 * Rewritten for new CAN queues by Pavel Pisa - OCERA team member
7 * Ported to FS Forth-Systeme GmbH A9M9750DEVx development boards
8 * email:nbryan@embebidos.com
9 * This software is released under the GPL-License.
10 * Version lincan-0.3 17 Jun 2004
11 * This port 19 May 2005
15 #ifndef __NS_DEV_CAN__
16 #define __NS_DEV_CAN__
18 int ns_dev_init_hw_data(struct candevice_t *candev);
19 int ns_dev_init_chip_data(struct candevice_t *candev, int chipnr);
20 int ns_dev_request_io(struct candevice_t *candev);
21 int ns_dev_release_io(struct candevice_t *candev);
22 int ns_dev_reset(struct candevice_t *candev);
23 void ns_dev_write_register(unsigned data, unsigned long address);
24 unsigned ns_dev_read_register(unsigned long address);
26 int ns_dev_init_obj_data(struct canchip_t *chip, int objnr);
27 int ns_dev_program_irq(struct candevice_t *candev);
29 #define NS9750_PERIPHERAL_BASE_ADDRESS 0xA0700000
30 #define NS9750_PERIPHERAL_MAP_SIZE 0x400
31 #define NS9750_SYSTEM_CONTROLLER_OFFSET 0x240
33 #define BUS_WIDTH_16BIT 1
34 #define ACTIVE_LOW_CHIP_SELECT (1<<7)
36 #define C_CAN_CLOCK_INPUT_FREQUENCY 20000000
38 #endif /* __NS_DEV_CAN__ */