brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · 581603a Raw
66 lines · c
1/*2 * Copyright © 2010 ST Microelectronics3 * Shiraz Hashim <shiraz.linux.kernel@gmail.com>4 *5 * This file is licensed under the terms of the GNU General Public6 * License version 2. This program is licensed "as is" without any7 * warranty of any kind, whether express or implied.8 */9 10#ifndef __MTD_SPEAR_SMI_H11#define __MTD_SPEAR_SMI_H12 13#include <linux/types.h>14#include <linux/mtd/mtd.h>15#include <linux/mtd/partitions.h>16#include <linux/platform_device.h>17#include <linux/of.h>18 19/* max possible slots for serial-nor flash chip in the SMI controller */20#define MAX_NUM_FLASH_CHIP	421 22/* macro to define partitions for flash devices */23#define DEFINE_PARTS(n, of, s)		\24{					\25	.name = n,			\26	.offset = of,			\27	.size = s,			\28}29 30/**31 * struct spear_smi_flash_info - platform structure for passing flash32 * information33 *34 * name: name of the serial nor flash for identification35 * mem_base: the memory base on which the flash is mapped36 * size: size of the flash in bytes37 * partitions: parition details38 * nr_partitions: number of partitions39 * fast_mode: whether flash supports fast mode40 */41 42struct spear_smi_flash_info {43	char *name;44	unsigned long mem_base;45	unsigned long size;46	struct mtd_partition *partitions;47	int nr_partitions;48	u8 fast_mode;49};50 51/**52 * struct spear_smi_plat_data - platform structure for configuring smi53 *54 * clk_rate: clk rate at which SMI must operate55 * num_flashes: number of flashes present on board56 * board_flash_info: specific details of each flash present on board57 */58struct spear_smi_plat_data {59	unsigned long clk_rate;60	int num_flashes;61	struct spear_smi_flash_info *board_flash_info;62	struct device_node *np[MAX_NUM_FLASH_CHIP];63};64 65#endif /* __MTD_SPEAR_SMI_H */66