1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | /* |
3 | * Driver for Realtek PCI-Express card reader |
4 | * |
5 | * Copyright(c) 2009-2013 Realtek Semiconductor Corp. All rights reserved. |
6 | * |
7 | * Author: |
8 | * Wei WANG (wei_wang@realsil.com.cn) |
9 | * Micky Ching (micky_ching@realsil.com.cn) |
10 | */ |
11 | |
12 | #ifndef __REALTEK_RTSX_SPI_H |
13 | #define __REALTEK_RTSX_SPI_H |
14 | |
15 | /* SPI operation error */ |
16 | #define SPI_NO_ERR 0x00 |
17 | #define SPI_HW_ERR 0x01 |
18 | #define SPI_INVALID_COMMAND 0x02 |
19 | #define SPI_READ_ERR 0x03 |
20 | #define SPI_WRITE_ERR 0x04 |
21 | #define SPI_ERASE_ERR 0x05 |
22 | #define SPI_BUSY_ERR 0x06 |
23 | |
24 | /* Serial flash instruction */ |
25 | #define SPI_READ 0x03 |
26 | #define SPI_FAST_READ 0x0B |
27 | #define SPI_WREN 0x06 |
28 | #define SPI_WRDI 0x04 |
29 | #define SPI_RDSR 0x05 |
30 | |
31 | #define SF_PAGE_LEN 256 |
32 | |
33 | #define BYTE_PROGRAM 0 |
34 | #define AAI_PROGRAM 1 |
35 | #define PAGE_PROGRAM 2 |
36 | |
37 | #define PAGE_ERASE 0 |
38 | #define CHIP_ERASE 1 |
39 | |
40 | int spi_erase_eeprom_chip(struct rtsx_chip *chip); |
41 | int spi_erase_eeprom_byte(struct rtsx_chip *chip, u16 addr); |
42 | int spi_read_eeprom(struct rtsx_chip *chip, u16 addr, u8 *val); |
43 | int spi_write_eeprom(struct rtsx_chip *chip, u16 addr, u8 val); |
44 | int spi_get_status(struct scsi_cmnd *srb, struct rtsx_chip *chip); |
45 | int spi_set_parameter(struct scsi_cmnd *srb, struct rtsx_chip *chip); |
46 | int spi_read_flash_id(struct scsi_cmnd *srb, struct rtsx_chip *chip); |
47 | int spi_read_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip); |
48 | int spi_write_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip); |
49 | int spi_erase_flash(struct scsi_cmnd *srb, struct rtsx_chip *chip); |
50 | int spi_write_flash_status(struct scsi_cmnd *srb, struct rtsx_chip *chip); |
51 | |
52 | #endif /* __REALTEK_RTSX_SPI_H */ |
53 | |