mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 07:31:15 +00:00
sf: Tidy up public and private header files
Since spi_flash.h is supposed to be the public API for SPI flash, move private things to sf_internal.h. Also tidy up a few comment nits. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
This commit is contained in:
parent
0043b1faa7
commit
ff0960f9a0
9 changed files with 73 additions and 60 deletions
|
@ -13,11 +13,12 @@
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <netdev.h>
|
#include <netdev.h>
|
||||||
#include <miiphy.h>
|
#include <miiphy.h>
|
||||||
|
#include <spi.h>
|
||||||
|
#include <spi_flash.h>
|
||||||
#include <asm/arch/kirkwood.h>
|
#include <asm/arch/kirkwood.h>
|
||||||
#include <asm/arch/cpu.h>
|
#include <asm/arch/cpu.h>
|
||||||
#include <asm/arch/mpp.h>
|
#include <asm/arch/mpp.h>
|
||||||
#include <asm/arch/gpio.h>
|
#include <asm/arch/gpio.h>
|
||||||
#include <spi_flash.h>
|
|
||||||
|
|
||||||
#include "lsxl.h"
|
#include "lsxl.h"
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/mmc.h>
|
#include <asm/mmc.h>
|
||||||
|
#include <spi.h>
|
||||||
#include <spi_flash.h>
|
#include <spi_flash.h>
|
||||||
|
|
||||||
int checkboard(void)
|
int checkboard(void)
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/mmc.h>
|
#include <asm/mmc.h>
|
||||||
|
#include <spi.h>
|
||||||
#include <spi_flash.h>
|
#include <spi_flash.h>
|
||||||
|
|
||||||
int checkboard(void)
|
int checkboard(void)
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/mmc.h>
|
#include <asm/mmc.h>
|
||||||
|
#include <spi.h>
|
||||||
#include <spi_flash.h>
|
#include <spi_flash.h>
|
||||||
|
|
||||||
int checkboard(void)
|
int checkboard(void)
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <div64.h>
|
#include <div64.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
#include <spi.h>
|
||||||
#include <spi_flash.h>
|
#include <spi_flash.h>
|
||||||
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
#include <spi.h>
|
||||||
#include <spi_flash.h>
|
#include <spi_flash.h>
|
||||||
#include "sf_internal.h"
|
#include "sf_internal.h"
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,36 @@
|
||||||
#ifndef _SF_INTERNAL_H_
|
#ifndef _SF_INTERNAL_H_
|
||||||
#define _SF_INTERNAL_H_
|
#define _SF_INTERNAL_H_
|
||||||
|
|
||||||
|
#include <linux/types.h>
|
||||||
|
#include <linux/compiler.h>
|
||||||
|
|
||||||
|
/* Dual SPI flash memories - see SPI_COMM_DUAL_... */
|
||||||
|
enum spi_dual_flash {
|
||||||
|
SF_SINGLE_FLASH = 0,
|
||||||
|
SF_DUAL_STACKED_FLASH = 1 << 0,
|
||||||
|
SF_DUAL_PARALLEL_FLASH = 1 << 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Enum list - Full read commands */
|
||||||
|
enum spi_read_cmds {
|
||||||
|
ARRAY_SLOW = 1 << 0,
|
||||||
|
DUAL_OUTPUT_FAST = 1 << 1,
|
||||||
|
DUAL_IO_FAST = 1 << 2,
|
||||||
|
QUAD_OUTPUT_FAST = 1 << 3,
|
||||||
|
QUAD_IO_FAST = 1 << 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define RD_EXTN (ARRAY_SLOW | DUAL_OUTPUT_FAST | DUAL_IO_FAST)
|
||||||
|
#define RD_FULL (RD_EXTN | QUAD_OUTPUT_FAST | QUAD_IO_FAST)
|
||||||
|
|
||||||
|
/* sf param flags */
|
||||||
|
enum {
|
||||||
|
SECT_4K = 1 << 0,
|
||||||
|
SECT_32K = 1 << 1,
|
||||||
|
E_FSR = 1 << 2,
|
||||||
|
WR_QPP = 1 << 3,
|
||||||
|
};
|
||||||
|
|
||||||
#define SPI_FLASH_3B_ADDR_LEN 3
|
#define SPI_FLASH_3B_ADDR_LEN 3
|
||||||
#define SPI_FLASH_CMD_LEN (1 + SPI_FLASH_3B_ADDR_LEN)
|
#define SPI_FLASH_CMD_LEN (1 + SPI_FLASH_3B_ADDR_LEN)
|
||||||
#define SPI_FLASH_16MB_BOUN 0x1000000
|
#define SPI_FLASH_16MB_BOUN 0x1000000
|
||||||
|
@ -30,12 +60,12 @@
|
||||||
#define CMD_WRITE_STATUS 0x01
|
#define CMD_WRITE_STATUS 0x01
|
||||||
#define CMD_PAGE_PROGRAM 0x02
|
#define CMD_PAGE_PROGRAM 0x02
|
||||||
#define CMD_WRITE_DISABLE 0x04
|
#define CMD_WRITE_DISABLE 0x04
|
||||||
#define CMD_READ_STATUS 0x05
|
#define CMD_READ_STATUS 0x05
|
||||||
#define CMD_QUAD_PAGE_PROGRAM 0x32
|
#define CMD_QUAD_PAGE_PROGRAM 0x32
|
||||||
#define CMD_READ_STATUS1 0x35
|
#define CMD_READ_STATUS1 0x35
|
||||||
#define CMD_WRITE_ENABLE 0x06
|
#define CMD_WRITE_ENABLE 0x06
|
||||||
#define CMD_READ_CONFIG 0x35
|
#define CMD_READ_CONFIG 0x35
|
||||||
#define CMD_FLAG_STATUS 0x70
|
#define CMD_FLAG_STATUS 0x70
|
||||||
|
|
||||||
/* Read commands */
|
/* Read commands */
|
||||||
#define CMD_READ_ARRAY_SLOW 0x03
|
#define CMD_READ_ARRAY_SLOW 0x03
|
||||||
|
@ -57,7 +87,7 @@
|
||||||
/* Common status */
|
/* Common status */
|
||||||
#define STATUS_WIP (1 << 0)
|
#define STATUS_WIP (1 << 0)
|
||||||
#define STATUS_QEB_WINSPAN (1 << 1)
|
#define STATUS_QEB_WINSPAN (1 << 1)
|
||||||
#define STATUS_QEB_MXIC (1 << 6)
|
#define STATUS_QEB_MXIC (1 << 6)
|
||||||
#define STATUS_PEC (1 << 7)
|
#define STATUS_PEC (1 << 7)
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_SPI_ST_ENABLE_WP_PIN
|
#ifdef CONFIG_SYS_SPI_ST_ENABLE_WP_PIN
|
||||||
|
@ -66,19 +96,42 @@
|
||||||
|
|
||||||
/* Flash timeout values */
|
/* Flash timeout values */
|
||||||
#define SPI_FLASH_PROG_TIMEOUT (2 * CONFIG_SYS_HZ)
|
#define SPI_FLASH_PROG_TIMEOUT (2 * CONFIG_SYS_HZ)
|
||||||
#define SPI_FLASH_PAGE_ERASE_TIMEOUT (5 * CONFIG_SYS_HZ)
|
#define SPI_FLASH_PAGE_ERASE_TIMEOUT (5 * CONFIG_SYS_HZ)
|
||||||
#define SPI_FLASH_SECTOR_ERASE_TIMEOUT (10 * CONFIG_SYS_HZ)
|
#define SPI_FLASH_SECTOR_ERASE_TIMEOUT (10 * CONFIG_SYS_HZ)
|
||||||
|
|
||||||
/* SST specific */
|
/* SST specific */
|
||||||
#ifdef CONFIG_SPI_FLASH_SST
|
#ifdef CONFIG_SPI_FLASH_SST
|
||||||
# define SST_WP 0x01 /* Supports AAI word program */
|
# define SST_WP 0x01 /* Supports AAI word program */
|
||||||
# define CMD_SST_BP 0x02 /* Byte Program */
|
# define CMD_SST_BP 0x02 /* Byte Program */
|
||||||
# define CMD_SST_AAI_WP 0xAD /* Auto Address Incr Word Program */
|
# define CMD_SST_AAI_WP 0xAD /* Auto Address Incr Word Program */
|
||||||
|
|
||||||
int sst_write_wp(struct spi_flash *flash, u32 offset, size_t len,
|
int sst_write_wp(struct spi_flash *flash, u32 offset, size_t len,
|
||||||
const void *buf);
|
const void *buf);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct spi_flash_params - SPI/QSPI flash device params structure
|
||||||
|
*
|
||||||
|
* @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO])
|
||||||
|
* @jedec: Device jedec ID (0x[1byte_manuf_id][2byte_dev_id])
|
||||||
|
* @ext_jedec: Device ext_jedec ID
|
||||||
|
* @sector_size: Sector size of this device
|
||||||
|
* @nr_sectors: No.of sectors on this device
|
||||||
|
* @e_rd_cmd: Enum list for read commands
|
||||||
|
* @flags: Important param, for flash specific behaviour
|
||||||
|
*/
|
||||||
|
struct spi_flash_params {
|
||||||
|
const char *name;
|
||||||
|
u32 jedec;
|
||||||
|
u16 ext_jedec;
|
||||||
|
u32 sector_size;
|
||||||
|
u32 nr_sectors;
|
||||||
|
u8 e_rd_cmd;
|
||||||
|
u16 flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern const struct spi_flash_params spi_flash_params_table[];
|
||||||
|
|
||||||
/* Send a single-byte command to the device and read the response */
|
/* Send a single-byte command to the device and read the response */
|
||||||
int spi_flash_cmd(struct spi_slave *spi, u8 cmd, void *response, size_t len);
|
int spi_flash_cmd(struct spi_slave *spi, u8 cmd, void *response, size_t len);
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
#include <spi.h>
|
||||||
#include <spi_flash.h>
|
#include <spi_flash.h>
|
||||||
#include <spl.h>
|
#include <spl.h>
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,7 @@
|
||||||
#ifndef _SPI_FLASH_H_
|
#ifndef _SPI_FLASH_H_
|
||||||
#define _SPI_FLASH_H_
|
#define _SPI_FLASH_H_
|
||||||
|
|
||||||
#include <spi.h>
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/compiler.h>
|
|
||||||
|
|
||||||
#ifndef CONFIG_SF_DEFAULT_SPEED
|
#ifndef CONFIG_SF_DEFAULT_SPEED
|
||||||
# define CONFIG_SF_DEFAULT_SPEED 1000000
|
# define CONFIG_SF_DEFAULT_SPEED 1000000
|
||||||
|
@ -32,64 +30,19 @@
|
||||||
# define CONFIG_SF_DEFAULT_BUS 0
|
# define CONFIG_SF_DEFAULT_BUS 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* sf param flags */
|
struct spi_slave;
|
||||||
#define SECT_4K 1 << 1
|
|
||||||
#define SECT_32K 1 << 2
|
|
||||||
#define E_FSR 1 << 3
|
|
||||||
#define WR_QPP 1 << 4
|
|
||||||
|
|
||||||
/* Enum list - Full read commands */
|
|
||||||
enum spi_read_cmds {
|
|
||||||
ARRAY_SLOW = 1 << 0,
|
|
||||||
DUAL_OUTPUT_FAST = 1 << 1,
|
|
||||||
DUAL_IO_FAST = 1 << 2,
|
|
||||||
QUAD_OUTPUT_FAST = 1 << 3,
|
|
||||||
QUAD_IO_FAST = 1 << 4,
|
|
||||||
};
|
|
||||||
#define RD_EXTN ARRAY_SLOW | DUAL_OUTPUT_FAST | DUAL_IO_FAST
|
|
||||||
#define RD_FULL RD_EXTN | QUAD_OUTPUT_FAST | QUAD_IO_FAST
|
|
||||||
|
|
||||||
/* Dual SPI flash memories */
|
|
||||||
enum spi_dual_flash {
|
|
||||||
SF_SINGLE_FLASH = 0,
|
|
||||||
SF_DUAL_STACKED_FLASH = 1 << 0,
|
|
||||||
SF_DUAL_PARALLEL_FLASH = 1 << 1,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* struct spi_flash_params - SPI/QSPI flash device params structure
|
|
||||||
*
|
|
||||||
* @name: Device name ([MANUFLETTER][DEVTYPE][DENSITY][EXTRAINFO])
|
|
||||||
* @jedec: Device jedec ID (0x[1byte_manuf_id][2byte_dev_id])
|
|
||||||
* @ext_jedec: Device ext_jedec ID
|
|
||||||
* @sector_size: Sector size of this device
|
|
||||||
* @nr_sectors: No.of sectors on this device
|
|
||||||
* @e_rd_cmd: Enum list for read commands
|
|
||||||
* @flags: Important param, for flash specific behaviour
|
|
||||||
*/
|
|
||||||
struct spi_flash_params {
|
|
||||||
const char *name;
|
|
||||||
u32 jedec;
|
|
||||||
u16 ext_jedec;
|
|
||||||
u32 sector_size;
|
|
||||||
u32 nr_sectors;
|
|
||||||
u8 e_rd_cmd;
|
|
||||||
u16 flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern const struct spi_flash_params spi_flash_params_table[];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct spi_flash - SPI flash structure
|
* struct spi_flash - SPI flash structure
|
||||||
*
|
*
|
||||||
* @spi: SPI slave
|
* @spi: SPI slave
|
||||||
* @name: Name of SPI flash
|
* @name: Name of SPI flash
|
||||||
* @dual_flash: Indicates dual flash memories - dual stacked, parallel
|
* @dual_flash: Indicates dual flash memories - dual stacked, parallel
|
||||||
* @shift: Flash shift useful in dual parallel
|
* @shift: Flash shift useful in dual parallel
|
||||||
* @size: Total flash size
|
* @size: Total flash size
|
||||||
* @page_size: Write (page) size
|
* @page_size: Write (page) size
|
||||||
* @sector_size: Sector size
|
* @sector_size: Sector size
|
||||||
* @erase_size: Erase size
|
* @erase_size: Erase size
|
||||||
* @bank_read_cmd: Bank read cmd
|
* @bank_read_cmd: Bank read cmd
|
||||||
* @bank_write_cmd: Bank write cmd
|
* @bank_write_cmd: Bank write cmd
|
||||||
* @bank_curr: Current flash bank
|
* @bank_curr: Current flash bank
|
||||||
|
@ -97,8 +50,8 @@ extern const struct spi_flash_params spi_flash_params_table[];
|
||||||
* @erase_cmd: Erase cmd 4K, 32K, 64K
|
* @erase_cmd: Erase cmd 4K, 32K, 64K
|
||||||
* @read_cmd: Read cmd - Array Fast, Extn read and quad read.
|
* @read_cmd: Read cmd - Array Fast, Extn read and quad read.
|
||||||
* @write_cmd: Write cmd - page and quad program.
|
* @write_cmd: Write cmd - page and quad program.
|
||||||
* @dummy_byte: Dummy cycles for read operation.
|
* @dummy_byte: Dummy cycles for read operation.
|
||||||
* @memory_map: Address of read-only SPI flash access
|
* @memory_map: Address of read-only SPI flash access
|
||||||
* @read: Flash read ops: Read len bytes at offset into buf
|
* @read: Flash read ops: Read len bytes at offset into buf
|
||||||
* Supported cmds: Fast Array Read
|
* Supported cmds: Fast Array Read
|
||||||
* @write: Flash write ops: Write len bytes from buf into offset
|
* @write: Flash write ops: Write len bytes from buf into offset
|
||||||
|
|
Loading…
Reference in a new issue