On Mon, Aug 29, 2022 at 11:27:40AM +0300, Ivan Bornyakov wrote: > On Mon, Aug 29, 2022 at 03:25:41PM +0800, Xu Yilun wrote: > > On 2022-08-25 at 14:24:32 +0300, Ivan Bornyakov wrote: > > > Add support to the FPGA manager for programming Lattice ECP5 and MachXO2 > > > FPGAs over slave SPI sysCONFIG interface. > > > > > > ... snip ... > > > > > > + > > > +static const struct spi_device_id sysconfig_spi_ids[] = { > > > + { > > > + .name = "ecp5-fpga-mgr", > > > + .driver_data = (kernel_ulong_t)ecp5_probe, > > > + }, { > > > + .name = "machxo2-fpga-mgr", > > > + .driver_data = (kernel_ulong_t)machxo2_probe, > > > > Putting the whole probe flow in driver_data is the same as providing 2 > > drivers. The purpose is not to put all the code in one file. > > > > Sorry, I don't understand what you suggest. Separate file for each > specific FPGA? > In v9 I was about to split this to sysconfig.c with sysCONFIG interface port functions independent of port type + sysconfig-spi.c with functions specific for SPI port. In this approach there is opportunity for Johannes to add sysconfig-i2c.c with MachXO2's I2C port while reusing fpga_manager_ops->state(), fpga_manager_ops->write_init() and fpga_manager_ops->write_complete(). IDs structs array in sysconfig-spi.c still contains data with FPGA specific probe, though.