⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfp.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define MFPR_ALT_OFFSET		0#define MFPR_ERE_OFFSET		4#define MFPR_EFE_OFFSET		5#define MFPR_EC_OFFSET		6#define MFPR_SON_OFFSET		7#define MFPR_SD_OFFSET		8#define MFPR_SS_OFFSET		9#define MFPR_DRV_OFFSET		10#define MFPR_PD_OFFSET		13#define MFPR_PU_OFFSET		14#define MFPR_PS_OFFSET		15#define MFPR(af, drv, rdh, lpm, edge) \	(((af) & 0x7) | (((drv) & 0x7) << 10) |\	 (((rdh) & 0x1) << 9) |\	 (((lpm) & 0x3) << 7) |\	 (((lpm) & 0x4) << 12)|\	 (((lpm) & 0x8) << 10)|\	 ((!(edge)) << 6) |\	 (((edge) & 0x1) << 5) |\	 (((edge) & 0x2) << 3))/* * a possible MFP configuration is represented by a 32-bit integer * bit  0..15 - MFPR value (16-bit) * bit 16..31 - mfp pin index (used to obtain the MFPR offset) * * to facilitate the definition, the following macros are provided * * MFPR_DEFAULT - default MFPR value, with * 		  alternate function = 0, * 		  drive strength = fast 1mA (MFP_DS01X) * 		  low power mode = default * 		  release dalay hold = false (RDH bit) * 		  edge detection = none * * MFP_CFG	- default MFPR value with alternate function * MFP_CFG_DRV	- default MFPR value with alternate function and * 		  pin drive strength * MFP_CFG_LPM	- default MFPR value with alternate function and * 		  low power mode * MFP_CFG_X	- default MFPR value with alternate function, * 		  pin drive strength and low power mode * * use * * MFP_CFG_PIN	- to get the MFP pin index * MFP_CFG_VAL	- to get the corresponding MFPR value */typedef uint32_t mfp_cfg_t;#define MFP_CFG_PIN(mfp_cfg)	(((mfp_cfg) >> 16) & 0xffff)#define MFP_CFG_VAL(mfp_cfg)	((mfp_cfg) & 0xffff)/* * MFP register defaults to *   drive strength fast 3mA (010'b) *   edge detection logic disabled *   alternate function 0 */#define MFPR_DEFAULT	(0x0840)#define MFP_CFG(pin, af)		\	((MFP_PIN_##pin << 16) | MFPR_DEFAULT | (MFP_##af))#define MFP_CFG_DRV(pin, af, drv)	\	((MFP_PIN_##pin << 16) | (MFPR_DEFAULT & ~MFPR_DRV_MASK) |\	 ((MFP_##drv) << 10) | (MFP_##af))#define MFP_CFG_LPM(pin, af, lpm)	\	((MFP_PIN_##pin << 16) | (MFPR_DEFAULT & ~MFPR_LPM_MASK) |\	 (((MFP_LPM_##lpm) & 0x3) << 7)  |\	 (((MFP_LPM_##lpm) & 0x4) << 12) |\	 (((MFP_LPM_##lpm) & 0x8) << 10) |\	 (MFP_##af))#define MFP_CFG_X(pin, af, drv, lpm)	\	((MFP_PIN_##pin << 16) |\	 (MFPR_DEFAULT & ~(MFPR_DRV_MASK | MFPR_LPM_MASK)) |\	 ((MFP_##drv) << 10) | (MFP_##af) |\	 (((MFP_LPM_##lpm) & 0x3) << 7)  |\	 (((MFP_LPM_##lpm) & 0x4) << 12) |\	 (((MFP_LPM_##lpm) & 0x8) << 10))/* common MFP configurations - processor specific ones defined * in mfp-pxa3xx.h */#define GPIO0_GPIO		MFP_CFG(GPIO0, AF0)#define GPIO1_GPIO		MFP_CFG(GPIO1, AF0)#define GPIO2_GPIO		MFP_CFG(GPIO2, AF0)#define GPIO3_GPIO		MFP_CFG(GPIO3, AF0)#define GPIO4_GPIO		MFP_CFG(GPIO4, AF0)#define GPIO5_GPIO		MFP_CFG(GPIO5, AF0)#define GPIO6_GPIO		MFP_CFG(GPIO6, AF0)#define GPIO7_GPIO		MFP_CFG(GPIO7, AF0)#define GPIO8_GPIO		MFP_CFG(GPIO8, AF0)#define GPIO9_GPIO		MFP_CFG(GPIO9, AF0)#define GPIO10_GPIO		MFP_CFG(GPIO10, AF0)#define GPIO11_GPIO		MFP_CFG(GPIO11, AF0)#define GPIO12_GPIO		MFP_CFG(GPIO12, AF0)#define GPIO13_GPIO		MFP_CFG(GPIO13, AF0)#define GPIO14_GPIO		MFP_CFG(GPIO14, AF0)#define GPIO15_GPIO		MFP_CFG(GPIO15, AF0)#define GPIO16_GPIO		MFP_CFG(GPIO16, AF0)#define GPIO17_GPIO		MFP_CFG(GPIO17, AF0)#define GPIO18_GPIO		MFP_CFG(GPIO18, AF0)#define GPIO19_GPIO		MFP_CFG(GPIO19, AF0)#define GPIO20_GPIO		MFP_CFG(GPIO20, AF0)#define GPIO21_GPIO		MFP_CFG(GPIO21, AF0)#define GPIO22_GPIO		MFP_CFG(GPIO22, AF0)#define GPIO23_GPIO		MFP_CFG(GPIO23, AF0)#define GPIO24_GPIO		MFP_CFG(GPIO24, AF0)#define GPIO25_GPIO		MFP_CFG(GPIO25, AF0)#define GPIO26_GPIO		MFP_CFG(GPIO26, AF0)#define GPIO27_GPIO		MFP_CFG(GPIO27, AF0)#define GPIO28_GPIO		MFP_CFG(GPIO28, AF0)#define GPIO29_GPIO		MFP_CFG(GPIO29, AF0)#define GPIO30_GPIO		MFP_CFG(GPIO30, AF0)#define GPIO31_GPIO		MFP_CFG(GPIO31, AF0)#define GPIO32_GPIO		MFP_CFG(GPIO32, AF0)#define GPIO33_GPIO		MFP_CFG(GPIO33, AF0)#define GPIO34_GPIO		MFP_CFG(GPIO34, AF0)#define GPIO35_GPIO		MFP_CFG(GPIO35, AF0)#define GPIO36_GPIO		MFP_CFG(GPIO36, AF0)#define GPIO37_GPIO		MFP_CFG(GPIO37, AF0)#define GPIO38_GPIO		MFP_CFG(GPIO38, AF0)#define GPIO39_GPIO		MFP_CFG(GPIO39, AF0)#define GPIO40_GPIO		MFP_CFG(GPIO40, AF0)#define GPIO41_GPIO		MFP_CFG(GPIO41, AF0)#define GPIO42_GPIO		MFP_CFG(GPIO42, AF0)#define GPIO43_GPIO		MFP_CFG(GPIO43, AF0)#define GPIO44_GPIO		MFP_CFG(GPIO44, AF0)#define GPIO45_GPIO		MFP_CFG(GPIO45, AF0)#define GPIO47_GPIO		MFP_CFG(GPIO47, AF0)#define GPIO48_GPIO		MFP_CFG(GPIO48, AF0)#define GPIO53_GPIO		MFP_CFG(GPIO53, AF0)#define GPIO54_GPIO		MFP_CFG(GPIO54, AF0)#define GPIO55_GPIO		MFP_CFG(GPIO55, AF0)#define GPIO57_GPIO		MFP_CFG(GPIO57, AF0)#define GPIO63_GPIO		MFP_CFG(GPIO63, AF0)#define GPIO64_GPIO		MFP_CFG(GPIO64, AF0)#define GPIO65_GPIO		MFP_CFG(GPIO65, AF0)#define GPIO66_GPIO		MFP_CFG(GPIO66, AF0)#define GPIO67_GPIO		MFP_CFG(GPIO67, AF0)#define GPIO68_GPIO		MFP_CFG(GPIO68, AF0)#define GPIO69_GPIO		MFP_CFG(GPIO69, AF0)#define GPIO70_GPIO		MFP_CFG(GPIO70, AF0)#define GPIO71_GPIO		MFP_CFG(GPIO71, AF0)#define GPIO72_GPIO		MFP_CFG(GPIO72, AF0)#define GPIO73_GPIO		MFP_CFG(GPIO73, AF0)#define GPIO74_GPIO		MFP_CFG(GPIO74, AF0)#define GPIO75_GPIO		MFP_CFG(GPIO75, AF0)#define GPIO76_GPIO		MFP_CFG(GPIO76, AF0)#define GPIO77_GPIO		MFP_CFG(GPIO77, AF0)#define GPIO78_GPIO		MFP_CFG(GPIO78, AF0)#define GPIO79_GPIO		MFP_CFG(GPIO79, AF0)#define GPIO80_GPIO		MFP_CFG(GPIO80, AF0)#define GPIO81_GPIO		MFP_CFG(GPIO81, AF0)#define GPIO82_GPIO		MFP_CFG(GPIO82, AF0)#define GPIO83_GPIO		MFP_CFG(GPIO83, AF0)#define GPIO84_GPIO		MFP_CFG(GPIO84, AF0)#define GPIO85_GPIO		MFP_CFG(GPIO85, AF0)#define GPIO86_GPIO		MFP_CFG(GPIO86, AF0)#define GPIO87_GPIO		MFP_CFG(GPIO87, AF0)#define GPIO88_GPIO		MFP_CFG(GPIO88, AF0)#define GPIO89_GPIO		MFP_CFG(GPIO89, AF0)#define GPIO90_GPIO		MFP_CFG(GPIO90, AF0)#define GPIO91_GPIO		MFP_CFG(GPIO91, AF0)#define GPIO92_GPIO		MFP_CFG(GPIO92, AF0)#define GPIO93_GPIO		MFP_CFG(GPIO93, AF0)#define GPIO94_GPIO		MFP_CFG(GPIO94, AF0)#define GPIO95_GPIO		MFP_CFG(GPIO95, AF0)#define GPIO96_GPIO		MFP_CFG(GPIO96, AF0)#define GPIO97_GPIO		MFP_CFG(GPIO97, AF0)#define GPIO98_GPIO		MFP_CFG(GPIO98, AF0)#define GPIO99_GPIO		MFP_CFG(GPIO99, AF0)#define GPIO100_GPIO		MFP_CFG(GPIO100, AF0)#define GPIO101_GPIO		MFP_CFG(GPIO101, AF0)#define GPIO102_GPIO		MFP_CFG(GPIO102, AF0)#define GPIO103_GPIO		MFP_CFG(GPIO103, AF0)#define GPIO104_GPIO		MFP_CFG(GPIO104, AF0)#define GPIO105_GPIO		MFP_CFG(GPIO105, AF0)#define GPIO106_GPIO		MFP_CFG(GPIO106, AF0)#define GPIO107_GPIO		MFP_CFG(GPIO107, AF0)#define GPIO108_GPIO		MFP_CFG(GPIO108, AF0)#define GPIO109_GPIO		MFP_CFG(GPIO109, AF0)#define GPIO110_GPIO		MFP_CFG(GPIO110, AF0)#define GPIO111_GPIO		MFP_CFG(GPIO111, AF0)#define GPIO112_GPIO		MFP_CFG(GPIO112, AF0)#define GPIO113_GPIO		MFP_CFG(GPIO113, AF0)#define GPIO114_GPIO		MFP_CFG(GPIO114, AF0)#define GPIO115_GPIO		MFP_CFG(GPIO115, AF0)#define GPIO116_GPIO		MFP_CFG(GPIO116, AF0)#define GPIO117_GPIO		MFP_CFG(GPIO117, AF0)#define GPIO118_GPIO		MFP_CFG(GPIO118, AF0)#define GPIO119_GPIO		MFP_CFG(GPIO119, AF0)#define GPIO120_GPIO		MFP_CFG(GPIO120, AF0)#define GPIO121_GPIO		MFP_CFG(GPIO121, AF0)#define GPIO122_GPIO		MFP_CFG(GPIO122, AF0)#define GPIO123_GPIO		MFP_CFG(GPIO123, AF0)#define GPIO124_GPIO		MFP_CFG(GPIO124, AF0)#define GPIO125_GPIO		MFP_CFG(GPIO125, AF0)#define GPIO126_GPIO		MFP_CFG(GPIO126, AF0)#define GPIO127_GPIO		MFP_CFG(GPIO127, AF0)#define GPIO0_2_GPIO		MFP_CFG(GPIO0_2, AF0)#define GPIO1_2_GPIO		MFP_CFG(GPIO1_2, AF0)#define GPIO2_2_GPIO		MFP_CFG(GPIO2_2, AF0)#define GPIO3_2_GPIO		MFP_CFG(GPIO3_2, AF0)#define GPIO4_2_GPIO		MFP_CFG(GPIO4_2, AF0)#define GPIO5_2_GPIO		MFP_CFG(GPIO5_2, AF0)#define GPIO6_2_GPIO		MFP_CFG(GPIO6_2, AF0)/* * each MFP pin will have a MFPR register, since the offset of the * register varies between processors, the processor specific code * should initialize the pin offsets by pxa3xx_mfp_init_addr() * * pxa3xx_mfp_init_addr - accepts a table of "pxa3xx_mfp_addr_map" * structure, which represents a range of MFP pins from "start" to * "end", with the offset begining at "offset", to define a single * pin, let "end" = -1 * * use * * MFP_ADDR_X() to define a range of pins * MFP_ADDR()   to define a single pin * MFP_ADDR_END to signal the end of pin offset definitions */struct pxa3xx_mfp_addr_map {	unsigned int	start;	unsigned int	end;	unsigned long	offset;};#define MFP_ADDR_X(start, end, offset) \	{ MFP_PIN_##start, MFP_PIN_##end, offset }#define MFP_ADDR(pin, offset) \	{ MFP_PIN_##pin, -1, offset }#define MFP_ADDR_END	{ MFP_PIN_INVALID, 0 }struct pxa3xx_mfp_pin {	unsigned long	mfpr_off;	/* MFPRxx register offset */	unsigned long	mfpr_val;	/* MFPRxx register value */};/* * pxa3xx_mfp_read()/pxa3xx_mfp_write() - for direct read/write access * to the MFPR register */unsigned long pxa3xx_mfp_read(int mfp);void pxa3xx_mfp_write(int mfp, unsigned long mfpr_val);/* * pxa3xx_mfp_set_afds - set MFP alternate function and drive strength * pxa3xx_mfp_set_rdh  - set MFP release delay hold on/off * pxa3xx_mfp_set_lpm  - set MFP low power mode state * pxa3xx_mfp_set_edge - set MFP edge detection in low power mode * * use these functions to override/change the default configuration * done by pxa3xx_mfp_set_config(s) */void pxa3xx_mfp_set_afds(int mfp, int af, int ds);void pxa3xx_mfp_set_rdh(int mfp, int rdh);void pxa3xx_mfp_set_lpm(int mfp, int lpm);void pxa3xx_mfp_set_edge(int mfp, int edge);/* * pxa3xx_mfp_config - configure the MFPR registers * * used by board specific initialization code */void pxa3xx_mfp_config(mfp_cfg_t *mfp_cfgs, int num);/* * pxa3xx_mfp_init_addr() - initialize the mapping between mfp pin * index and MFPR register offset * * used by processor specific code */void __init pxa3xx_mfp_init_addr(struct pxa3xx_mfp_addr_map *);void __init pxa3xx_init_mfp(void);#endif /* __ASM_ARCH_MFP_H */

⌨️ 快捷键说明

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