e446630c96
Chip model can now be selected directly by matching the modalias name (instead of filling the .model field in platform_data), and allows the module to be auto-loaded. Previous behaviour is of course still supported. Convert the two in-tree users to this feature (icontrol & zeus). Tested on an Zeus platform (mcp2515). Signed-off-by: Marc Zyngier <maz@misterjones.org> Acked-by: Christian Pellegrin <chripell@fsfe.org> Cc: Edwin Peer <epeer@tmtservices.co.za> Acked-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: David S. Miller <davem@davemloft.net>
36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
#ifndef __CAN_PLATFORM_MCP251X_H__
|
|
#define __CAN_PLATFORM_MCP251X_H__
|
|
|
|
/*
|
|
*
|
|
* CAN bus driver for Microchip 251x CAN Controller with SPI Interface
|
|
*
|
|
*/
|
|
|
|
#include <linux/spi/spi.h>
|
|
|
|
/**
|
|
* struct mcp251x_platform_data - MCP251X SPI CAN controller platform data
|
|
* @oscillator_frequency: - oscillator frequency in Hz
|
|
* @model: - actual type of chip
|
|
* @board_specific_setup: - called before probing the chip (power,reset)
|
|
* @transceiver_enable: - called to power on/off the transceiver
|
|
* @power_enable: - called to power on/off the mcp *and* the
|
|
* transceiver
|
|
*
|
|
* Please note that you should define power_enable or transceiver_enable or
|
|
* none of them. Defining both of them is no use.
|
|
*
|
|
*/
|
|
|
|
struct mcp251x_platform_data {
|
|
unsigned long oscillator_frequency;
|
|
int model;
|
|
#define CAN_MCP251X_MCP2510 0x2510
|
|
#define CAN_MCP251X_MCP2515 0x2515
|
|
int (*board_specific_setup)(struct spi_device *spi);
|
|
int (*transceiver_enable)(int enable);
|
|
int (*power_enable) (int enable);
|
|
};
|
|
|
|
#endif /* __CAN_PLATFORM_MCP251X_H__ */
|