2012-01-12 21:38:57 +08:00
|
|
|
/*
|
|
|
|
* Copyright © 2010 ST Microelectronics
|
2014-04-19 06:07:16 +08:00
|
|
|
* Shiraz Hashim <shiraz.linux.kernel@gmail.com>
|
2012-01-12 21:38:57 +08:00
|
|
|
*
|
|
|
|
* This file is licensed under the terms of the GNU General Public
|
|
|
|
* License version 2. This program is licensed "as is" without any
|
|
|
|
* warranty of any kind, whether express or implied.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __MTD_SPEAR_SMI_H
|
|
|
|
#define __MTD_SPEAR_SMI_H
|
|
|
|
|
|
|
|
#include <linux/types.h>
|
|
|
|
#include <linux/mtd/mtd.h>
|
|
|
|
#include <linux/mtd/partitions.h>
|
|
|
|
#include <linux/platform_device.h>
|
2012-03-16 18:42:11 +08:00
|
|
|
#include <linux/of.h>
|
|
|
|
|
|
|
|
/* max possible slots for serial-nor flash chip in the SMI controller */
|
|
|
|
#define MAX_NUM_FLASH_CHIP 4
|
2012-01-12 21:38:57 +08:00
|
|
|
|
|
|
|
/* macro to define partitions for flash devices */
|
|
|
|
#define DEFINE_PARTS(n, of, s) \
|
|
|
|
{ \
|
|
|
|
.name = n, \
|
|
|
|
.offset = of, \
|
|
|
|
.size = s, \
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* struct spear_smi_flash_info - platform structure for passing flash
|
|
|
|
* information
|
|
|
|
*
|
|
|
|
* name: name of the serial nor flash for identification
|
|
|
|
* mem_base: the memory base on which the flash is mapped
|
|
|
|
* size: size of the flash in bytes
|
|
|
|
* partitions: parition details
|
|
|
|
* nr_partitions: number of partitions
|
|
|
|
* fast_mode: whether flash supports fast mode
|
|
|
|
*/
|
|
|
|
|
|
|
|
struct spear_smi_flash_info {
|
|
|
|
char *name;
|
|
|
|
unsigned long mem_base;
|
|
|
|
unsigned long size;
|
|
|
|
struct mtd_partition *partitions;
|
|
|
|
int nr_partitions;
|
|
|
|
u8 fast_mode;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* struct spear_smi_plat_data - platform structure for configuring smi
|
|
|
|
*
|
|
|
|
* clk_rate: clk rate at which SMI must operate
|
|
|
|
* num_flashes: number of flashes present on board
|
|
|
|
* board_flash_info: specific details of each flash present on board
|
|
|
|
*/
|
|
|
|
struct spear_smi_plat_data {
|
|
|
|
unsigned long clk_rate;
|
|
|
|
int num_flashes;
|
|
|
|
struct spear_smi_flash_info *board_flash_info;
|
2012-03-16 18:42:11 +08:00
|
|
|
struct device_node *np[MAX_NUM_FLASH_CHIP];
|
2012-01-12 21:38:57 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* __MTD_SPEAR_SMI_H */
|