25 #include <linux/sched.h>
57 retval = switch_clock(chip, spi->
spi_clock);
70 retval = spi_init(chip);
77 static int sf_polling_status(
struct rtsx_chip *chip,
int msec)
89 rtsx_clear_spi_error(chip);
114 rtsx_clear_spi_error(chip);
122 static int sf_disable_write(
struct rtsx_chip *chip,
u8 ins)
139 rtsx_clear_spi_error(chip);
184 rtsx_clear_spi_error(chip);
192 static int spi_init_eeprom(
struct rtsx_chip *chip)
205 retval = switch_clock(chip, clk);
224 static int spi_eeprom_program_enable(
struct rtsx_chip *chip)
246 retval = spi_init_eeprom(chip);
250 retval = spi_eeprom_program_enable(chip);
276 retval = spi_init_eeprom(chip);
280 retval = spi_eeprom_program_enable(chip);
310 retval = spi_init_eeprom(chip);
345 retval = spi_init_eeprom(chip);
349 retval = spi_eeprom_program_enable(chip);
381 scsi_set_resid(srb, scsi_bufflen(srb) - 1);
400 RTSX_DEBUGP(
"spi_set_parameter: spi_clock = %d, clk_div = %d, write_en = %d\n",
420 retval = spi_set_init_para(chip);
460 rtsx_clear_spi_error(chip);
478 scsi_set_resid(srb, 0);
500 slow_read = srb->
cmnd[9];
502 retval = spi_set_init_para(chip);
547 rtsx_clear_spi_error(chip);
558 scsi_set_resid(srb, 0);
567 u8 ins, program_mode;
578 program_mode = srb->
cmnd[9];
580 retval = spi_set_init_para(chip);
592 retval = sf_enable_write(chip,
SPI_WREN);
604 sf_program(chip, ins, 1, addr, 1);
609 rtsx_clear_spi_error(chip);
614 retval = sf_polling_status(chip, 100);
629 retval = sf_enable_write(chip,
SPI_WREN);
645 sf_program(chip, ins, 1, addr, 1);
648 sf_program(chip, ins, 0, 0, 1);
654 rtsx_clear_spi_error(chip);
659 retval = sf_polling_status(chip, 100);
670 retval = sf_disable_write(chip,
SPI_WRDI);
674 retval = sf_polling_status(chip, 100);
688 retval = sf_enable_write(chip,
SPI_WREN);
697 sf_program(chip, ins, 1, addr, pagelen);
706 rtsx_clear_spi_error(chip);
711 retval = sf_polling_status(chip, 100);
740 erase_mode = srb->
cmnd[9];
742 retval = spi_set_init_para(chip);
749 retval = sf_enable_write(chip,
SPI_WREN);
753 retval = sf_erase(chip, ins, 1, addr);
757 retval = sf_enable_write(chip,
SPI_WREN);
761 retval = sf_erase(chip, ins, 0, 0);
778 status = srb->
cmnd[4];
781 retval = spi_set_init_para(chip);
787 retval = sf_enable_write(chip, ewsr);
805 rtsx_clear_spi_error(chip);