aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/can
diff options
context:
space:
mode:
authorStephane Grosjean <s.grosjean@peak-system.com>2015-01-23 05:31:23 -0500
committerMarc Kleine-Budde <mkl@pengutronix.de>2015-01-28 08:47:06 -0500
commit1114be1e5ca43d465e2da95a2118672f7d4110fb (patch)
tree112cdda7f6f9578c381ae67f6b4950ef32c26e54 /drivers/net/can
parent2b0861e8cb51a6ace26da466d04eb5d535263cd4 (diff)
can: peak_usb: export pcan_usb_pro functions
Add support for the following new PEAK-System technik CANFD USB adapters: PCAN-USB FD single CANFD channel USB adapter PCAN-USB Pro FD dual CANFD channels USB adapter The communication protocol has been developed using some mechanisms that did exist in the PCAN-USB Pro, thus, this patch also changes some previously static functions and data into global ones. Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can')
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_pro.c16
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_pro.h13
2 files changed, 17 insertions, 12 deletions
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
index 03f517160a67..dec51717635e 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_pro.c
@@ -27,14 +27,6 @@
27 27
28MODULE_SUPPORTED_DEVICE("PEAK-System PCAN-USB Pro adapter"); 28MODULE_SUPPORTED_DEVICE("PEAK-System PCAN-USB Pro adapter");
29 29
30/* PCAN-USB Pro Endpoints */
31#define PCAN_USBPRO_EP_CMDOUT 1
32#define PCAN_USBPRO_EP_CMDIN (PCAN_USBPRO_EP_CMDOUT | USB_DIR_IN)
33#define PCAN_USBPRO_EP_MSGOUT_0 2
34#define PCAN_USBPRO_EP_MSGIN (PCAN_USBPRO_EP_MSGOUT_0 | USB_DIR_IN)
35#define PCAN_USBPRO_EP_MSGOUT_1 3
36#define PCAN_USBPRO_EP_UNUSED (PCAN_USBPRO_EP_MSGOUT_1 | USB_DIR_IN)
37
38#define PCAN_USBPRO_CHANNEL_COUNT 2 30#define PCAN_USBPRO_CHANNEL_COUNT 2
39 31
40/* PCAN-USB Pro adapter internal clock (MHz) */ 32/* PCAN-USB Pro adapter internal clock (MHz) */
@@ -322,8 +314,8 @@ static int pcan_usb_pro_wait_rsp(struct peak_usb_device *dev,
322 return (i >= PCAN_USBPRO_RSP_SUBMIT_MAX) ? -ERANGE : err; 314 return (i >= PCAN_USBPRO_RSP_SUBMIT_MAX) ? -ERANGE : err;
323} 315}
324 316
325static int pcan_usb_pro_send_req(struct peak_usb_device *dev, int req_id, 317int pcan_usb_pro_send_req(struct peak_usb_device *dev, int req_id,
326 int req_value, void *req_addr, int req_size) 318 int req_value, void *req_addr, int req_size)
327{ 319{
328 int err; 320 int err;
329 u8 req_type; 321 u8 req_type;
@@ -475,7 +467,7 @@ static int pcan_usb_pro_set_bittiming(struct peak_usb_device *dev,
475 return pcan_usb_pro_set_bitrate(dev, ccbt); 467 return pcan_usb_pro_set_bitrate(dev, ccbt);
476} 468}
477 469
478static void pcan_usb_pro_restart_complete(struct urb *urb) 470void pcan_usb_pro_restart_complete(struct urb *urb)
479{ 471{
480 /* can delete usb resources */ 472 /* can delete usb resources */
481 peak_usb_async_complete(urb); 473 peak_usb_async_complete(urb);
@@ -978,7 +970,7 @@ static void pcan_usb_pro_free(struct peak_usb_device *dev)
978/* 970/*
979 * probe function for new PCAN-USB Pro usb interface 971 * probe function for new PCAN-USB Pro usb interface
980 */ 972 */
981static int pcan_usb_pro_probe(struct usb_interface *intf) 973int pcan_usb_pro_probe(struct usb_interface *intf)
982{ 974{
983 struct usb_host_interface *if_desc; 975 struct usb_host_interface *if_desc;
984 int i; 976 int i;
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_pro.h b/drivers/net/can/usb/peak_usb/pcan_usb_pro.h
index 837cee267132..a62f7ab8980f 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_pro.h
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_pro.h
@@ -27,6 +27,14 @@
27#define PCAN_USBPRO_INFO_BL 0 27#define PCAN_USBPRO_INFO_BL 0
28#define PCAN_USBPRO_INFO_FW 1 28#define PCAN_USBPRO_INFO_FW 1
29 29
30/* PCAN-USB Pro (FD) Endpoints */
31#define PCAN_USBPRO_EP_CMDOUT 1
32#define PCAN_USBPRO_EP_CMDIN (PCAN_USBPRO_EP_CMDOUT | USB_DIR_IN)
33#define PCAN_USBPRO_EP_MSGOUT_0 2
34#define PCAN_USBPRO_EP_MSGIN (PCAN_USBPRO_EP_MSGOUT_0 | USB_DIR_IN)
35#define PCAN_USBPRO_EP_MSGOUT_1 3
36#define PCAN_USBPRO_EP_UNUSED (PCAN_USBPRO_EP_MSGOUT_1 | USB_DIR_IN)
37
30/* Vendor Request value for XXX_FCT */ 38/* Vendor Request value for XXX_FCT */
31#define PCAN_USBPRO_FCT_DRVLD 5 /* tell device driver is loaded */ 39#define PCAN_USBPRO_FCT_DRVLD 5 /* tell device driver is loaded */
32#define PCAN_USBPRO_FCT_DRVLD_REQ_LEN 16 40#define PCAN_USBPRO_FCT_DRVLD_REQ_LEN 16
@@ -176,4 +184,9 @@ union pcan_usb_pro_rec {
176 struct pcan_usb_pro_txmsg tx_msg; 184 struct pcan_usb_pro_txmsg tx_msg;
177}; 185};
178 186
187int pcan_usb_pro_probe(struct usb_interface *intf);
188int pcan_usb_pro_send_req(struct peak_usb_device *dev, int req_id,
189 int req_value, void *req_addr, int req_size);
190void pcan_usb_pro_restart_complete(struct urb *urb);
191
179#endif 192#endif