spi: Fix off-by-one error in calculating cycles per data frame
authorAlbert Ou <albert@sifive.com>
Tue, 2 May 2017 19:35:34 +0000 (12:35 -0700)
committerAlbert Ou <albert@sifive.com>
Tue, 2 May 2017 19:35:34 +0000 (12:35 -0700)
commit75d6a7c6eac209a32ecf2fc8d1b8cfc68450107d
tree055f5e21354a5242f123d64bf858589db0969fb2
parenteea10f51294af8529b278ea88660037d065495b4
spi: Fix off-by-one error in calculating cycles per data frame

Issue: Configuring the frame length to certain values causes incorrect
operation.

Symptoms: Certain frame lengths result in the master sending one extra
clock pulse.  The slave device may then become desynchronized.

Workaround: The following frame lengths are supported and can be used.
Do not use other frame lengths.
* Serial mode: 0, 2, 4, 6, 8
* Dual mode:   0, 1, 3, 5, 7, 8
* Quad mode:   0, 1, 2, 3, 5, 6, 7, 8
src/main/scala/devices/spi/SPIFIFO.scala