[U-Boot] [PATCH v2] cmd: sspi: Add an additional argument to set the bus frequency
Jagan Teki
jagan at amarulasolutions.com
Sat Feb 25 08:54:10 UTC 2017
On Fri, Feb 17, 2017 at 11:40 PM, Philipp Tomsich
<philipp.tomsich at 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 at 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!
--
Jagan Teki
Senior Linux Kernel Engineer | Amarula Solutions
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
More information about the U-Boot
mailing list