smc.h

来自「linux 内核源代码」· C头文件 代码 · 共 114 行

H
114
字号
/* * Static Memory Controller for AT32 chips * * Copyright (C) 2006 Atmel Corporation * * Inspired by the OMAP2 General-Purpose Memory Controller interface * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#ifndef __ARCH_AT32AP_SMC_H#define __ARCH_AT32AP_SMC_H/* * All timing parameters are in nanoseconds. */struct smc_timing {	/* Delay from address valid to assertion of given strobe */	int ncs_read_setup;	int nrd_setup;	int ncs_write_setup;	int nwe_setup;	/* Pulse length of given strobe */	int ncs_read_pulse;	int nrd_pulse;	int ncs_write_pulse;	int nwe_pulse;	/* Total cycle length of given operation */	int read_cycle;	int write_cycle;	/* Minimal recovery times, will extend cycle if needed */	int ncs_read_recover;	int nrd_recover;	int ncs_write_recover;	int nwe_recover;};/* * All timing parameters are in clock cycles. */struct smc_config {	/* Delay from address valid to assertion of given strobe */	u8		ncs_read_setup;	u8		nrd_setup;	u8		ncs_write_setup;	u8		nwe_setup;	/* Pulse length of given strobe */	u8		ncs_read_pulse;	u8		nrd_pulse;	u8		ncs_write_pulse;	u8		nwe_pulse;	/* Total cycle length of given operation */	u8		read_cycle;	u8		write_cycle;	/* Bus width in bytes */	u8		bus_width;	/*	 * 0: Data is sampled on rising edge of NCS	 * 1: Data is sampled on rising edge of NRD	 */	unsigned int	nrd_controlled:1;	/*	 * 0: Data is driven on falling edge of NCS	 * 1: Data is driven on falling edge of NWR	 */	unsigned int	nwe_controlled:1;	/*	 * 0: NWAIT is disabled	 * 1: Reserved	 * 2: NWAIT is frozen mode	 * 3: NWAIT in ready mode	 */	unsigned int	nwait_mode:2;	/*	 * 0: Byte select access type	 * 1: Byte write access type	 */	unsigned int	byte_write:1;	/*	 * Number of clock cycles before data is released after	 * the rising edge of the read controlling signal	 *	 * Total cycles from SMC is tdf_cycles + 1	 */	unsigned int	tdf_cycles:4;	/*	 * 0: TDF optimization disabled	 * 1: TDF optimization enabled	 */	unsigned int	tdf_mode:1;};extern void smc_set_timing(struct smc_config *config,			   const struct smc_timing *timing);extern int smc_set_configuration(int cs, const struct smc_config *config);extern struct smc_config *smc_get_configuration(int cs);#endif /* __ARCH_AT32AP_SMC_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?