
On Fri, Feb 17, 2017 at 11:40 PM, Philipp Tomsich philipp.tomsich@theobroma-systems.com wrote:
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;
Default value for DM_SPI is from DT, so assign 0 for DM_SPI.
thanks!