can: flexcan: add hardware controller version support
authorHui Wang <jason77.wang@gmail.com>
Thu, 28 Jun 2012 08:21:35 +0000 (16:21 +0800)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 3 Jul 2012 07:33:00 +0000 (09:33 +0200)
commit30c1e672044d98e5c4cff5fcbdb34b55a2df0c0f
tree6b12a4975cb050ecc7eda4273a26d58ee92cb5bd
parentafc016d8360ceb19a1f37bf6579d5850d47d582d
can: flexcan: add hardware controller version support

At least in the i.MX series, the flexcan contrller divides into ver_3
and ver_10, current driver is for ver_3 controller.

i.MX6 has ver_10 controller, it has more reigsters than ver_3 has.
The rxfgmask (Rx FIFO Global Mask) register is one of the new added.
Its reset value is 0xffffffff, this means ID Filter Table must be
checked when receive a packet, but the driver is designed to accept
everything during the chip start, we need to clear this register to
follow this design.

Use the data entry of the struct of_device_id to point chip specific
info, we can set hardware version for each platform.

Cc: linux-can@vger.kernel.org
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Hui Wang <jason77.wang@gmail.com>
[mkl: add id_table support]
Tested-by: Hui Wang <jason77.wang@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/flexcan.c