From: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] cmd: sspi: Add an additional argument to set the bus frequency
Date: Fri, 17 Feb 2017 19:10:08 +0100 [thread overview]
Message-ID: <1487355008-15826-1-git-send-email-philipp.tomsich@theobroma-systems.com> (raw)
In-Reply-To: <20170217173640.GS26129@bill-the-cat>
The spi command is rather useful for board verification, bring-up and
software testing. One use in our lab is the testing of the clock
code, which requires the ability to send data at different SPI clocks.
The changeset adds an additional (optional) positional argument to the
'spi' command that allows the selection of a SPI clock for
communication (the previous default of 1MHz is retained, if the
argument is omitted).
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
---
cmd/spi.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/cmd/spi.c b/cmd/spi.c
index f16ef9a..1cd2ebc 100644
--- a/cmd/spi.c
+++ b/cmd/spi.c
@@ -30,6 +30,8 @@
# define CONFIG_DEFAULT_SPI_MODE SPI_MODE_0
#endif
+#define SSPI_DEFAULT_HZ 1000000
+
/*
* Values from last command.
*/
@@ -40,7 +42,7 @@ static int bitlen;
static uchar dout[MAX_SPI_BYTES];
static uchar din[MAX_SPI_BYTES];
-static int do_spi_xfer(int bus, int cs)
+static int do_spi_xfer(int bus, int cs, unsigned int hz)
{
struct spi_slave *slave;
int ret = 0;
@@ -53,12 +55,12 @@ static int do_spi_xfer(int bus, int cs)
str = strdup(name);
if (!str)
return -ENOMEM;
- ret = spi_get_bus_and_cs(bus, cs, 1000000, mode, "spi_generic_drv",
+ ret = spi_get_bus_and_cs(bus, cs, hz, mode, "spi_generic_drv",
str, &dev, &slave);
if (ret)
return ret;
#else
- slave = spi_setup_slave(bus, cs, 1000000, mode);
+ slave = spi_setup_slave(bus, cs, hz, mode);
if (!slave) {
printf("Invalid device %d:%d\n", bus, cs);
return -EINVAL;
@@ -109,6 +111,7 @@ int do_spi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
char *cp = 0;
uchar tmp;
int j;
+ unsigned int hz = SSPI_DEFAULT_HZ;
/*
* We use the last specified parameters, unless new ones are
@@ -149,6 +152,8 @@ int do_spi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
dout[j / 2] |= tmp;
}
}
+ if (argc >= 5)
+ hz = simple_strtoul(argv[4], NULL, 10);
}
if ((bitlen < 0) || (bitlen > (MAX_SPI_BYTES * 8))) {
@@ -156,7 +161,7 @@ int do_spi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 1;
}
- if (do_spi_xfer(bus, cs))
+ if (do_spi_xfer(bus, cs, hz))
return 1;
return 0;
@@ -165,12 +170,13 @@ int do_spi (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
/***************************************************/
U_BOOT_CMD(
- sspi, 5, 1, do_spi,
+ sspi, 6, 1, do_spi,
"SPI utility command",
- "[<bus>:]<cs>[.<mode>] <bit_len> <dout> - Send and receive bits\n"
+ "[<bus>:]<cs>[.<mode>] <bit_len> <dout> [<hz>] - Send and receive bits\n"
"<bus> - Identifies the SPI bus\n"
"<cs> - Identifies the chip select\n"
"<mode> - Identifies the SPI mode to use\n"
"<bit_len> - Number of bits to send (base 10)\n"
- "<dout> - Hexadecimal string that gets sent"
+ "<dout> - Hexadecimal string that gets sent\n"
+ "[<clk>] - Bus clock in Hz (defaults to 1 MHz)"
);
--
1.9.1
next prev parent reply other threads:[~2017-02-17 18:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-17 17:27 [U-Boot] [PATCH v1] cmd: sspi: Add an additional argument to set the bus frequency Philipp Tomsich
2017-02-17 17:36 ` Tom Rini
2017-02-17 18:10 ` Philipp Tomsich [this message]
2017-02-17 22:56 ` [U-Boot] [PATCH v2] " Tom Rini
2017-02-25 8:54 ` Jagan Teki
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=1487355008-15826-1-git-send-email-philipp.tomsich@theobroma-systems.com \
--to=philipp.tomsich@theobroma-systems.com \
--cc=u-boot@lists.denx.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.