spi: Implement spi_set_speed
This function is already defined in spi.h but no implementation of it currently exists in the tree. The implementation is based on the static function spi_set_speed_mode(). The function prototype is modified so that an success or error condition can be returned to the caller. Signed-off-by: Paul Barker <paul.barker@sancloud.com> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
0e49f5c26c
commit
c98f6fed93
@ -130,6 +130,21 @@ void spi_release_bus(struct spi_slave *slave)
|
|||||||
dm_spi_release_bus(slave->dev);
|
dm_spi_release_bus(slave->dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int spi_set_speed(struct spi_slave *slave, uint hz)
|
||||||
|
{
|
||||||
|
struct dm_spi_ops *ops;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ops = spi_get_ops(slave->dev->parent);
|
||||||
|
if (ops->set_speed)
|
||||||
|
ret = ops->set_speed(slave->dev->parent, hz);
|
||||||
|
else
|
||||||
|
ret = -EINVAL;
|
||||||
|
if (ret)
|
||||||
|
dev_err(slave->dev, "Cannot set speed (err=%d)\n", ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
|
int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
|
||||||
const void *dout, void *din, unsigned long flags)
|
const void *dout, void *din, unsigned long flags)
|
||||||
{
|
{
|
||||||
|
@ -352,8 +352,10 @@ void spi_cs_deactivate(struct spi_slave *slave);
|
|||||||
* This sets a new speed to be applied for next spi_xfer().
|
* This sets a new speed to be applied for next spi_xfer().
|
||||||
* @slave: The SPI slave
|
* @slave: The SPI slave
|
||||||
* @hz: The transfer speed
|
* @hz: The transfer speed
|
||||||
|
*
|
||||||
|
* Returns: 0 on success, or a negative value on error.
|
||||||
*/
|
*/
|
||||||
void spi_set_speed(struct spi_slave *slave, uint hz);
|
int spi_set_speed(struct spi_slave *slave, uint hz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write 8 bits, then read 8 bits.
|
* Write 8 bits, then read 8 bits.
|
||||||
|
Loading…
Reference in New Issue
Block a user