• Hui Wang's avatar
    can: flexcan: add hardware controller version support · 30c1e672
    Hui Wang authored
    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: default avatarHui Wang <jason77.wang@gmail.com>
    [mkl: add id_table support]
    Tested-by: default avatarHui Wang <jason77.wang@gmail.com>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    30c1e672
flexcan.c 28.7 KB