diff options
| -rw-r--r-- | drivers/spi/bfin_spi.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/spi/bfin_spi.c b/drivers/spi/bfin_spi.c index 093166efe..f28d42b48 100644 --- a/drivers/spi/bfin_spi.c +++ b/drivers/spi/bfin_spi.c @@ -85,6 +85,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,  		unsigned int max_hz, unsigned int mode)  {  	struct bfin_spi_slave *bss; +	ulong sclk;  	u32 mmr_base;  	u32 baud; @@ -105,7 +106,11 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,  		default: return NULL;  	} -	baud = get_sclk() / (2 * max_hz); +	sclk = get_sclk(); +	baud = sclk / (2 * max_hz); +	/* baud should be rounded up */ +	if (sclk % (2 * max_hz)) +		baud += 1;  	if (baud < 2)  		baud = 2;  	else if (baud > (u16)-1) |