linux-can.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Kleine-Budde <mkl@pengutronix.de>
To: linux-can@vger.kernel.org
Cc: kernel@pengutronix.de,
	Stephane Grosjean <s.grosjean@peak-system.com>,
	Marc Kleine-Budde <mkl@pengutronix.de>
Subject: [PATCH 21/37] can: pcan_usb: Document the commands sent to the device
Date: Wed, 16 Sep 2020 00:35:11 +0200	[thread overview]
Message-ID: <20200915223527.1417033-22-mkl@pengutronix.de> (raw)
In-Reply-To: <20200915223527.1417033-1-mkl@pengutronix.de>

From: Stephane Grosjean <s.grosjean@peak-system.com>

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>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
 drivers/net/can/usb/peak_usb/pcan_usb.c | 33 +++++++++++++++++++------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/drivers/net/can/usb/peak_usb/pcan_usb.c b/drivers/net/can/usb/peak_usb/pcan_usb.c
index 66d0198e7834..76468250cabf 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb.c
@@ -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)
-- 
2.28.0


  parent reply	other threads:[~2020-09-15 22:37 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-15 22:34 [RFC]: can-next 2020-09-16 Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 01/37] can: grcan: fix spelling mistake "buss" -> "bus" Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 02/37] can: flexcan: fix spelling mistake "reserverd" -> "reserved" Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 03/37] can: include: fix spelling mistakes Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 04/37] can: net: " Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 05/37] can: drivers: " Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 06/37] can: raw: fix indention Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 07/37] can: slcan: update dead link Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 08/37] can: softing: " Marc Kleine-Budde
2020-09-15 22:34 ` [PATCH 09/37] can: remove "WITH Linux-syscall-note" from SPDX tag of C files Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 10/37] can: dev: can_put_echo_skb(): print number of echo_skb that is occupied Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 11/37] can: dev: can_put_echo_skb(): propagate error in case of errors Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 12/37] can: dev: can_change_state(): print human readable state change messages Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 13/37] can: dev: can_bus_off(): print scheduling of restart if activated Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 14/37] can: c_can: Remove unused inline function Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 15/37] can: mcba_usb: remove redundant initialization of variable err Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 16/37] can: mscan: mark expected switch fall-through Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 17/37] can: ti_hecc: convert to devm_platform_ioremap_resource_byname() Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 18/37] can: peak_usb: convert to use le32_add_cpu() Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 19/37] can: peak_canfd: Remove unused macros Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 20/37] can: pch_can: use generic power management Marc Kleine-Budde
2020-09-15 22:35 ` Marc Kleine-Budde [this message]
2020-09-15 22:35 ` [PATCH 22/37] can: pcan_usb: add support of rxerr/txerr counters Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 23/37] can: spi: Kconfig: remove unneeded dependencies form Kconfig symbols Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 24/37] dt-bindings: can: mcp251x: change example interrupt type to IRQ_TYPE_LEVEL_LOW Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 25/37] dt-bindings: can: mcp251x: document GPIO support Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 26/37] can: mcp251x: sort include files alphabetically Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 27/37] can: mcp251x: add GPIO support Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 28/37] can: mcp251x: Use readx_poll_timeout() helper Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 29/37] can: mcp251x: add support for half duplex controllers Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 30/37] can: mscan: mpc5xxx_can: update contact email Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 31/37] can: mscan: simplify clock enable/disable Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 32/37] can: rx-offload: can_rx_offload_add_manual(): add new initialization function Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 33/37] dt-binding: can: mcp25xxfd: document device tree bindings Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 34/37] can: mcp25xxfd: add regmap infrastructure Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 35/37] can: mcp25xxfd: add driver for Microchip MCP25xxFD SPI CAN Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 36/37] can: mcp25xxfd: add listen-only mode Marc Kleine-Budde
2020-09-15 22:35 ` [PATCH 37/37] MAINTAINERS: Add entry for Microchip MCP25XXFD SPI-CAN network driver Marc Kleine-Budde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200915223527.1417033-22-mkl@pengutronix.de \
    --to=mkl@pengutronix.de \
    --cc=kernel@pengutronix.de \
    --cc=linux-can@vger.kernel.org \
    --cc=s.grosjean@peak-system.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).