Commit a8bb19df authored by Stephane Grosjean's avatar Stephane Grosjean Committed by Marc Kleine-Budde

can: pcan_usb: Document the commands sent to the device

This patch documents the functions and numbers of the commands sent by the
driver to the PCAN-USB CAN device from PEAK-System GmbH.
Signed-off-by: default avatarStephane Grosjean <s.grosjean@peak-system.com>
Link: https://lore.kernel.org/r/20191206153803.17725-2-s.grosjean@peak-system.comSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 306df0b0
...@@ -34,6 +34,22 @@ MODULE_SUPPORTED_DEVICE("PEAK-System PCAN-USB adapter"); ...@@ -34,6 +34,22 @@ MODULE_SUPPORTED_DEVICE("PEAK-System PCAN-USB adapter");
#define PCAN_USB_CMD_LEN (PCAN_USB_CMD_ARGS + \ #define PCAN_USB_CMD_LEN (PCAN_USB_CMD_ARGS + \
PCAN_USB_CMD_ARGS_LEN) PCAN_USB_CMD_ARGS_LEN)
/* PCAN-USB commands */
#define PCAN_USB_CMD_BITRATE 1
#define PCAN_USB_CMD_SET_BUS 3
#define PCAN_USB_CMD_DEVID 4
#define PCAN_USB_CMD_SN 6
#define PCAN_USB_CMD_REGISTER 9
#define PCAN_USB_CMD_EXT_VCC 10
/* PCAN_USB_CMD_SET_BUS number arg */
#define PCAN_USB_BUS_XCVER 2
#define PCAN_USB_BUS_SILENT_MODE 3
/* PCAN_USB_CMD_xxx functions */
#define PCAN_USB_GET 1
#define PCAN_USB_SET 2
/* PCAN-USB command timeout (ms.) */ /* PCAN-USB command timeout (ms.) */
#define PCAN_USB_COMMAND_TIMEOUT 1000 #define PCAN_USB_COMMAND_TIMEOUT 1000
...@@ -172,7 +188,8 @@ static int pcan_usb_set_sja1000(struct peak_usb_device *dev, u8 mode) ...@@ -172,7 +188,8 @@ static int pcan_usb_set_sja1000(struct peak_usb_device *dev, u8 mode)
[1] = mode, [1] = mode,
}; };
return pcan_usb_send_cmd(dev, 9, 2, args); return pcan_usb_send_cmd(dev, PCAN_USB_CMD_REGISTER, PCAN_USB_SET,
args);
} }
static int pcan_usb_set_bus(struct peak_usb_device *dev, u8 onoff) static int pcan_usb_set_bus(struct peak_usb_device *dev, u8 onoff)
...@@ -181,7 +198,8 @@ static int pcan_usb_set_bus(struct peak_usb_device *dev, u8 onoff) ...@@ -181,7 +198,8 @@ static int pcan_usb_set_bus(struct peak_usb_device *dev, u8 onoff)
[0] = !!onoff, [0] = !!onoff,
}; };
return pcan_usb_send_cmd(dev, 3, 2, args); return pcan_usb_send_cmd(dev, PCAN_USB_CMD_SET_BUS, PCAN_USB_BUS_XCVER,
args);
} }
static int pcan_usb_set_silent(struct peak_usb_device *dev, u8 onoff) static int pcan_usb_set_silent(struct peak_usb_device *dev, u8 onoff)
...@@ -190,7 +208,8 @@ static int pcan_usb_set_silent(struct peak_usb_device *dev, u8 onoff) ...@@ -190,7 +208,8 @@ static int pcan_usb_set_silent(struct peak_usb_device *dev, u8 onoff)
[0] = !!onoff, [0] = !!onoff,
}; };
return pcan_usb_send_cmd(dev, 3, 3, args); return pcan_usb_send_cmd(dev, PCAN_USB_CMD_SET_BUS,
PCAN_USB_BUS_SILENT_MODE, args);
} }
static int pcan_usb_set_ext_vcc(struct peak_usb_device *dev, u8 onoff) static int pcan_usb_set_ext_vcc(struct peak_usb_device *dev, u8 onoff)
...@@ -199,7 +218,7 @@ static int pcan_usb_set_ext_vcc(struct peak_usb_device *dev, u8 onoff) ...@@ -199,7 +218,7 @@ static int pcan_usb_set_ext_vcc(struct peak_usb_device *dev, u8 onoff)
[0] = !!onoff, [0] = !!onoff,
}; };
return pcan_usb_send_cmd(dev, 10, 2, args); return pcan_usb_send_cmd(dev, PCAN_USB_CMD_EXT_VCC, PCAN_USB_SET, args);
} }
/* /*
...@@ -223,7 +242,7 @@ static int pcan_usb_set_bittiming(struct peak_usb_device *dev, ...@@ -223,7 +242,7 @@ static int pcan_usb_set_bittiming(struct peak_usb_device *dev,
args[0] = btr1; args[0] = btr1;
args[1] = btr0; args[1] = btr0;
return pcan_usb_send_cmd(dev, 1, 2, args); return pcan_usb_send_cmd(dev, PCAN_USB_CMD_BITRATE, PCAN_USB_SET, args);
} }
/* /*
...@@ -307,7 +326,7 @@ static int pcan_usb_get_serial(struct peak_usb_device *dev, u32 *serial_number) ...@@ -307,7 +326,7 @@ static int pcan_usb_get_serial(struct peak_usb_device *dev, u32 *serial_number)
u8 args[PCAN_USB_CMD_ARGS_LEN]; u8 args[PCAN_USB_CMD_ARGS_LEN];
int err; int err;
err = pcan_usb_wait_rsp(dev, 6, 1, args); err = pcan_usb_wait_rsp(dev, PCAN_USB_CMD_SN, PCAN_USB_GET, args);
if (err) { if (err) {
netdev_err(dev->netdev, "getting serial failure: %d\n", err); netdev_err(dev->netdev, "getting serial failure: %d\n", err);
} else if (serial_number) { } else if (serial_number) {
...@@ -328,7 +347,7 @@ static int pcan_usb_get_device_id(struct peak_usb_device *dev, u32 *device_id) ...@@ -328,7 +347,7 @@ static int pcan_usb_get_device_id(struct peak_usb_device *dev, u32 *device_id)
u8 args[PCAN_USB_CMD_ARGS_LEN]; u8 args[PCAN_USB_CMD_ARGS_LEN];
int err; int err;
err = pcan_usb_wait_rsp(dev, 4, 1, args); err = pcan_usb_wait_rsp(dev, PCAN_USB_CMD_DEVID, PCAN_USB_GET, args);
if (err) if (err)
netdev_err(dev->netdev, "getting device id failure: %d\n", err); netdev_err(dev->netdev, "getting device id failure: %d\n", err);
else if (device_id) else if (device_id)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment