On Sun, 2014-03-30 at 00:27 +0000, Mark Brown wrote:
From: Mark Brown broonie@linaro.org
The core implementation of cs_change didn't follow the documentation which says that cs_change in the middle of the transfer means to briefly deassert chip select, instead it followed buggy drivers which change the polarity of chip select. Use a delay of 10us between deassert and reassert simply from pulling numbers out of a hat.
Reported-by: Gerhard Sittig gsi@denx.de Signed-off-by: Mark Brown broonie@linaro.org
The change looks good to me. The resulting behaviour now is what the documentation suggests (brief deassertion of the CS signal). The previous inversion was unexpected.
The delay between deassertion and re-assertion looks good, too. It allows for propagation of the change through the hardware. Those who need longer pauses still can construct individual messages. There's probably no need to change the boolean "cs_change" into a numerical "deassertion pause length" spec.
virtually yours Gerhard Sittig