Re: [v2 2/2] fpga: Add support for Lattice iCE40 FPGAs

From: Joel Holdsworth
Date: Tue Oct 25 2016 - 00:52:36 EST




On 10/24/2016 04:28 PM, Moritz Fischer wrote:
Hi Joel,

Ha, finally someone beat me to submitting my driver,
I had an ugly hack to bitbang the SPI since I couldn't figure
out a good way to assert the creset after the CS.

Thanks!


Hi Moritz - yeah I figured someone might have a driver in the works.

I think my set_cs() function is ok-ish. It's copied from spi_set_cs() in drivers/spi/spi.c . This function is a static internal helper, so I copy/pasted the function into the ice40 driver. Given that it's only 4-lines of code, it didn't seem too bad - though I'm not exactly sure why spi_set_cs() isn't a public API. It seems like quite a common-place thing to need to do with certain devices.

However, perhaps the function is internal because the authors of the SPI framework foresaw how easy it would be to screw up a shared bus with that function. I had to take care to make sure the SPI bus was locked throughout.

Do you agree that it's the right thing to copy the function in? Or do you think it would be better to ask for spi_set_cs to be exposed publicly?

Best Regards
Joel