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: Stephane Grosjean <s.grosjean@peak-system.com> Link: https://lore.kernel.org/r/20191206153803.17725-2-s.grosjean@peak-system.com Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
306df0b00b
commit
a8bb19dfab
@ -34,6 +34,22 @@ MODULE_SUPPORTED_DEVICE("PEAK-System PCAN-USB adapter");
|
||||
#define PCAN_USB_CMD_LEN (PCAN_USB_CMD_ARGS + \
|
||||
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.) */
|
||||
#define PCAN_USB_COMMAND_TIMEOUT 1000
|
||||
|
||||
@ -172,7 +188,8 @@ static int pcan_usb_set_sja1000(struct peak_usb_device *dev, u8 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)
|
||||
@ -181,7 +198,8 @@ static int pcan_usb_set_bus(struct peak_usb_device *dev, u8 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)
|
||||
@ -190,7 +208,8 @@ static int pcan_usb_set_silent(struct peak_usb_device *dev, u8 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)
|
||||
@ -199,7 +218,7 @@ static int pcan_usb_set_ext_vcc(struct peak_usb_device *dev, u8 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,
|
||||
args[0] = btr1;
|
||||
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)
|
||||
u8 args[PCAN_USB_CMD_ARGS_LEN];
|
||||
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) {
|
||||
netdev_err(dev->netdev, "getting serial failure: %d\n", err);
|
||||
} else if (serial_number) {
|
||||
@ -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];
|
||||
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)
|
||||
netdev_err(dev->netdev, "getting device id failure: %d\n", err);
|
||||
else if (device_id)
|
||||
|
Loading…
x
Reference in New Issue
Block a user