Fixes and updates for SECO M437 provided by Philippe Corbes
The SECO M437 has not been used from pre LinCAn driver days
so there has been accumulated more bugs in its support.
Thanks to Philippe Corbes, email:philippe.corbes _AT_ logibag.com
for providing fixes and testing.
termitt [Tue, 20 Nov 2007 21:47:41 +0000 (21:47 +0000)]
Added support for HCAN2 controllers integrated in SH7760.
The code has been developed during diploma thesis work at the Department of Control Engineering, FEL, CTU and has been tested on EMX32 SH7760 based board produced by MSC.
termitt [Tue, 20 Nov 2007 21:24:49 +0000 (21:24 +0000)]
Added support for HCAN2 controllers integrated in SH7760.
The code has been developed during diploma thesis work at the Department of Process Controll, FEL, CTU and has been tested on EMX32 SH7760 based board produced by MSC.
ppisa [Tue, 30 Oct 2007 11:40:13 +0000 (11:40 +0000)]
Corrected typo in legacy PCA82C200 (SJA1000 std) chip driver.
Thanks to Terence Soh for noticing the problem.
Important notice, if the board is equipped by real SJA1000
CAN controller chip, then PeliCAN mode is much much better
choice and sja1000p_register() function should be used
instead of bare standard sja1000_register() chip support.
ppisa [Wed, 15 Aug 2007 20:06:04 +0000 (20:06 +0000)]
Changes in CAN/PCI-200 card sources to be more clean in types
The newer kernels are very picky about diferentiate of numbers,
virtual and IO afddresses types. Try to follow rules and allow
compatability with older kernels is little csardas.
ppisa [Tue, 7 Aug 2007 13:09:43 +0000 (13:09 +0000)]
Minor correction in PEAK PCI can support.
Some first tests worked on DigitalLogic's MSMCA104+
card clone. But interrupt handling requires
more testing. PITA documentation is unclear and real
behavior of IRQ status has to be analyzed and code
has to be adjusted accordingly.
ppisa [Mon, 1 Jan 2007 23:52:54 +0000 (23:52 +0000)]
The first round of I/O space pointers separation.
The new 2.6.x Linux kernels separates I/O space
addresses from kernel and user space ones.
They are defined as (void __iomem *).
To follow this rule and suppress some warnings
LinCAN defines type can_ioptr_t now which allows
to keep code compatible between 2.4.x and 2.6.x kernels.
These changes exposes more other inconsistencies
in some boards support code which should be corrected
one by one later.
The code requires testing and checking on more hardware.
ppisa [Fri, 6 Oct 2006 18:41:05 +0000 (18:41 +0000)]
The non-OMK stand-alone build updated to work with 2.6.18+ kernels.
The linux/version.h file no longer provides information about
kernel release. This information can be found in the linux/utsrelease.h
include file.
The problem reported and correction suggested by Francesco Monica,
but little different solution tested in other drivers has been
included at the end.
ppisa [Wed, 16 Aug 2006 20:49:37 +0000 (20:49 +0000)]
Corrected incorrect use of mutex initializer for semaphore used in support code for IPCI165 card.
The mismatch prevented build of IPCI165 card support for fully preemptive kernel.
ppisa [Mon, 5 Jun 2006 00:55:45 +0000 (00:55 +0000)]
Unified module parameters style to new one for 2.6.x kernels.
Old one style left for 2.4 kernels.
This prevents error:
Ignoring new-style parameters in presence of obsolete ones.
Base board frequency specification moved to main.c and parameter
unified under name "clockfreq".
ppisa [Sun, 21 May 2006 22:50:24 +0000 (22:50 +0000)]
Correction of false i82527 IRQ stuck problem reported by Terence Soh.
The interrupt pending flag has to be clean even, if we cannot process
synchronous activities. The flags ensures, that they are processed
later in such case. The change requires testing, I have not get
to testing yet.
ppisa [Sun, 26 Mar 2006 23:45:15 +0000 (23:45 +0000)]
Added "chip_info" entry to the /proc/can/channelX, contributed by Sergei Sharonov.
Code is compatible with 2.6.x and 2.4.x Linux kernels.
It would fail on 2.2.x version. If its functionality is required,
can_remove_proc_entry() has to be used on pointer stored in
the new field and code emulating create_proc_read_entry()
has to be added.
ppisa [Wed, 18 Jan 2006 01:20:07 +0000 (01:20 +0000)]
Deep rewrite of TSCAN1 and TS7KV boards support.
Result requires tests on real hardware and probability
of breakage is very likely. The main aim of the rewrite
is to simplify register access code. The LinCAN driver
does not require more than first 32 byte ports to control
SJA1000 in pelican mode. With this simplification, no windowing
is required for TSCAN1 and only minimal support for access
of SJACDR has been left for TS7KV. The boards lookup checks
for IO range availability and TSCAN1 window can be placed
automatically as well. The "canio" parameter changed to "tscanio".
ppisa [Wed, 28 Dec 2005 16:04:06 +0000 (16:04 +0000)]
Added more detailed SJA1000 error reporting and primitive report rate limiting.
The detailed SJA1000 error reporting is enabled by adding next line
into config.omk file
CONFIG_OC_LINCAN_DETAILED_ERRORS=y
ppisa [Thu, 17 Nov 2005 15:36:37 +0000 (15:36 +0000)]
Ronald Gomes from Technologic Systemscontributed support for TS-CAN1 and TS-7KV cards.
This is initial version and would require more cleanups and optimizations.
ppisa [Sun, 6 Nov 2005 00:20:47 +0000 (00:20 +0000)]
LinCAN driver updated to work on Real-Time Preemption enabled kernel.
Code tested on SJA1000 controller on the ARM based system
with Linux kernel 2.6.14 and Ingo Molnar's 2.6.14-rt5 patch.
ppisa [Tue, 11 Oct 2005 15:41:38 +0000 (15:41 +0000)]
SJA1000 driver interrupts processing modified to not rely on interrupt register for Rx and Tx.
The information about free chip ready condition for Tx message is now
obtained from status register. This solution enables us to equip SJA1000
driver by irq_accept method. Then only this part has to be run in real IRQ
handler and rest of ISR can be done in other thread. This is required
for possible porting to QNX as well. Change should helps to better
recover form bus-off mode as well.
ppisa [Tue, 30 Aug 2005 22:42:33 +0000 (22:42 +0000)]
Fixed bug message objects indexing introduced by previous driver changes.
This indicates, that i82527 requires more testing after 0.3.x driver
changes.
ppisa [Wed, 15 Jun 2005 12:02:30 +0000 (12:02 +0000)]
Committed IXXAT iPC-I 165 (PCI) implemented by Radim Kalas from Unicontrols.cz.
This is initial unmodified code prepared against 0.3 version of the driver.
Small updates to mimic LinCAN core changes are required now.
ppisa [Tue, 7 Jun 2005 01:43:14 +0000 (01:43 +0000)]
More updates in the C_CAN support, but locking not reworked still.
The filters setup should work this time. But separation of CCIF1
only from IRQ and CCIF2 from other places and locking not redone yet.
ppisa [Thu, 2 Jun 2005 04:06:13 +0000 (04:06 +0000)]
Added attach_to_chip() and release_chip() functions for each chip.
This enables correct stopping and IRQ disable before driver unload.
This is required to get rid of problematic handling of shut down
for C_CAN ARM in ns_dev_release_io().
ppisa [Wed, 1 Jun 2005 15:46:04 +0000 (15:46 +0000)]
The MAX_MSGOBJS limit increased to 32 due to requirements of C_CAN chip.
This wastes 68-124 bytes for other chips. Some better solution should be
considered.
ppisa [Wed, 1 Jun 2005 03:58:45 +0000 (03:58 +0000)]
Changes to prepare work area for C_CAN testing and rethinking
Neil Bryan from embebidos.com works on C_CAN support
and he has contributed or initiated most of these changes.
There seems to be more problems to solve proper locking yet.
ppisa [Tue, 31 May 2005 00:45:49 +0000 (00:45 +0000)]
The CR line ending characters removed.
It seems, that Windows and OS9 version of the driver
is frozen and there has not been provided intention
or effort to do future synchronization of versions.
ppisa [Sat, 14 May 2005 21:24:49 +0000 (21:24 +0000)]
Message declaration updated to match VCA provided version.
The in memory layout is not changed. It is preparation for
changes required for future compatibility with 32 bit user
space on 64 bit systems.
ppisa [Thu, 3 Feb 2005 16:18:55 +0000 (16:18 +0000)]
Changes, which should enable to handle more VME Unican cards under RT-Linux.
Solution is not fully clean and it is not consistent with RT-Linux
way to handle regular ISA and PCI interrupts. The deeper analysis is
required, how to use this approach with regular Linux. May it be, that Linux 2.6.x
with latest IRQ threads and mutexes instead of spin-lock patches from Ingo
Molnar could profit from this in future too.
ppisa [Thu, 3 Feb 2005 15:38:46 +0000 (15:38 +0000)]
Added CAN chip specific irq_accept routine for fast interrupt acknowledge.
Required to prepare space for solution of problem with multiple VME Unican
cards used with RT-Linux enabled LinCAN driver.
ppisa [Fri, 21 Jan 2005 23:41:05 +0000 (23:41 +0000)]
Changed baudrate calculation to consider DSC selection.
This affects only PIPx cards, because only these use
crystal <10MHz (8 MHz in the case) and i82527 chip.
ppisa [Thu, 25 Nov 2004 21:45:00 +0000 (21:45 +0000)]
Separated normal read and RTR assisted read transfer.
I have that long time on in my mind. RTR based transfer
in in its own IOCTL, where it belongs. This simplified
normal read and made ABI more POSIX compliant.
RTR code should be rewritten to be really functional.
We are starting new development period now.
Changed SJA1000 chip IRQ handling to loop until all requests are served
This is not proven to be required for Linux kernel,
but it can be possible source of problems for ISA based cards
under RT-Linux.
Added support for oscar CAN interface.
It is SJA1000 based card connected to ARM LH7A400 SoC.
Support contributed by Michael Moedt xemc _AT_ yahoo _DOT_ com