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

📄 qe.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (C) 2006 Freescale Semicondutor, Inc. All rights reserved. * * Authors: 	Shlomi Gridish <gridish@freescale.com> * 		Li Yang <leoli@freescale.com> * * Description: * QUICC Engine (QE) external definitions and structure. * * This program is free software; you can redistribute  it and/or modify it * under  the terms of  the GNU General  Public License as published by the * Free Software Foundation;  either version 2 of the  License, or (at your * option) any later version. */#ifndef _ASM_POWERPC_QE_H#define _ASM_POWERPC_QE_H#ifdef __KERNEL__#include <asm/immap_qe.h>#define QE_NUM_OF_SNUM	28#define QE_NUM_OF_BRGS	16#define QE_NUM_OF_PORTS	1024/* Memory partitions*/#define MEM_PART_SYSTEM		0#define MEM_PART_SECONDARY	1#define MEM_PART_MURAM		2/* Export QE common operations */extern void qe_reset(void);extern int par_io_init(struct device_node *np);extern int par_io_of_config(struct device_node *np);extern int par_io_config_pin(u8 port, u8 pin, int dir, int open_drain,			     int assignment, int has_irq);extern int par_io_data_set(u8 port, u8 pin, u8 val);/* QE internal API */int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input);void qe_setbrg(unsigned int brg, unsigned int rate, unsigned int multiplier);int qe_get_snum(void);void qe_put_snum(u8 snum);unsigned long qe_muram_alloc(int size, int align);int qe_muram_free(unsigned long offset);unsigned long qe_muram_alloc_fixed(unsigned long offset, int size);void qe_muram_dump(void);void *qe_muram_addr(unsigned long offset);/* Buffer descriptors */struct qe_bd {	__be16 status;	__be16 length;	__be32 buf;} __attribute__ ((packed));#define BD_STATUS_MASK	0xffff0000#define BD_LENGTH_MASK	0x0000ffff#define BD_SC_EMPTY	0x8000	/* Receive is empty */#define BD_SC_READY	0x8000	/* Transmit is ready */#define BD_SC_WRAP	0x2000	/* Last buffer descriptor */#define BD_SC_INTRPT	0x1000	/* Interrupt on change */#define BD_SC_LAST	0x0800	/* Last buffer in frame */#define BD_SC_CM	0x0200	/* Continous mode */#define BD_SC_ID	0x0100	/* Rec'd too many idles */#define BD_SC_P		0x0100	/* xmt preamble */#define BD_SC_BR	0x0020	/* Break received */#define BD_SC_FR	0x0010	/* Framing error */#define BD_SC_PR	0x0008	/* Parity error */#define BD_SC_OV	0x0002	/* Overrun */#define BD_SC_CD	0x0001	/* ?? *//* Alignment */#define QE_INTR_TABLE_ALIGN	16	/* ??? */#define QE_ALIGNMENT_OF_BD	8#define QE_ALIGNMENT_OF_PRAM	64/* RISC allocation */enum qe_risc_allocation {	QE_RISC_ALLOCATION_RISC1 = 1,	/* RISC 1 */	QE_RISC_ALLOCATION_RISC2 = 2,	/* RISC 2 */	QE_RISC_ALLOCATION_RISC1_AND_RISC2 = 3	/* Dynamically choose						   RISC 1 or RISC 2 */};/* QE extended filtering Table Lookup Key Size */enum qe_fltr_tbl_lookup_key_size {	QE_FLTR_TABLE_LOOKUP_KEY_SIZE_8_BYTES		= 0x3f,		/* LookupKey parsed by the Generate LookupKey				   CMD is truncated to 8 bytes */	QE_FLTR_TABLE_LOOKUP_KEY_SIZE_16_BYTES		= 0x5f,		/* LookupKey parsed by the Generate LookupKey				   CMD is truncated to 16 bytes */};/* QE FLTR extended filtering Largest External Table Lookup Key Size */enum qe_fltr_largest_external_tbl_lookup_key_size {	QE_FLTR_LARGEST_EXTERNAL_TABLE_LOOKUP_KEY_SIZE_NONE		= 0x0,/* not used */	QE_FLTR_LARGEST_EXTERNAL_TABLE_LOOKUP_KEY_SIZE_8_BYTES		= QE_FLTR_TABLE_LOOKUP_KEY_SIZE_8_BYTES,	/* 8 bytes */	QE_FLTR_LARGEST_EXTERNAL_TABLE_LOOKUP_KEY_SIZE_16_BYTES		= QE_FLTR_TABLE_LOOKUP_KEY_SIZE_16_BYTES,	/* 16 bytes */};/* structure representing QE parameter RAM */struct qe_timer_tables {	u16 tm_base;		/* QE timer table base adr */	u16 tm_ptr;		/* QE timer table pointer */	u16 r_tmr;		/* QE timer mode register */	u16 r_tmv;		/* QE timer valid register */	u32 tm_cmd;		/* QE timer cmd register */	u32 tm_cnt;		/* QE timer internal cnt */} __attribute__ ((packed));#define QE_FLTR_TAD_SIZE	8/* QE extended filtering Termination Action Descriptor (TAD) */struct qe_fltr_tad {	u8 serialized[QE_FLTR_TAD_SIZE];} __attribute__ ((packed));/* Communication Direction */enum comm_dir {	COMM_DIR_NONE = 0,	COMM_DIR_RX = 1,	COMM_DIR_TX = 2,	COMM_DIR_RX_AND_TX = 3};/* Clocks and BRGs */enum qe_clock {	QE_CLK_NONE = 0,	QE_BRG1,		/* Baud Rate Generator 1 */	QE_BRG2,		/* Baud Rate Generator 2 */	QE_BRG3,		/* Baud Rate Generator 3 */	QE_BRG4,		/* Baud Rate Generator 4 */	QE_BRG5,		/* Baud Rate Generator 5 */	QE_BRG6,		/* Baud Rate Generator 6 */	QE_BRG7,		/* Baud Rate Generator 7 */	QE_BRG8,		/* Baud Rate Generator 8 */	QE_BRG9,		/* Baud Rate Generator 9 */	QE_BRG10,		/* Baud Rate Generator 10 */	QE_BRG11,		/* Baud Rate Generator 11 */	QE_BRG12,		/* Baud Rate Generator 12 */	QE_BRG13,		/* Baud Rate Generator 13 */	QE_BRG14,		/* Baud Rate Generator 14 */	QE_BRG15,		/* Baud Rate Generator 15 */	QE_BRG16,		/* Baud Rate Generator 16 */	QE_CLK1,		/* Clock 1 */	QE_CLK2,		/* Clock 2 */	QE_CLK3,		/* Clock 3 */	QE_CLK4,		/* Clock 4 */	QE_CLK5,		/* Clock 5 */	QE_CLK6,		/* Clock 6 */	QE_CLK7,		/* Clock 7 */	QE_CLK8,		/* Clock 8 */	QE_CLK9,		/* Clock 9 */	QE_CLK10,		/* Clock 10 */	QE_CLK11,		/* Clock 11 */	QE_CLK12,		/* Clock 12 */	QE_CLK13,		/* Clock 13 */	QE_CLK14,		/* Clock 14 */	QE_CLK15,		/* Clock 15 */	QE_CLK16,		/* Clock 16 */	QE_CLK17,		/* Clock 17 */	QE_CLK18,		/* Clock 18 */	QE_CLK19,		/* Clock 19 */	QE_CLK20,		/* Clock 20 */	QE_CLK21,		/* Clock 21 */	QE_CLK22,		/* Clock 22 */	QE_CLK23,		/* Clock 23 */	QE_CLK24,		/* Clock 24 */	QE_CLK_DUMMY,};/* QE CMXUCR Registers. * There are two UCCs represented in each of the four CMXUCR registers. * These values are for the UCC in the LSBs */#define QE_CMXUCR_MII_ENET_MNG		0x00007000#define QE_CMXUCR_MII_ENET_MNG_SHIFT	12#define QE_CMXUCR_GRANT			0x00008000#define QE_CMXUCR_TSA			0x00004000#define QE_CMXUCR_BKPT			0x00000100#define QE_CMXUCR_TX_CLK_SRC_MASK	0x0000000F/* QE CMXGCR Registers.*/#define QE_CMXGCR_MII_ENET_MNG		0x00007000#define QE_CMXGCR_MII_ENET_MNG_SHIFT	12#define QE_CMXGCR_USBCS			0x0000000f/* QE CECR Commands.*/#define QE_CR_FLG			0x00010000#define QE_RESET			0x80000000#define QE_INIT_TX_RX			0x00000000#define QE_INIT_RX			0x00000001#define QE_INIT_TX			0x00000002#define QE_ENTER_HUNT_MODE		0x00000003#define QE_STOP_TX			0x00000004#define QE_GRACEFUL_STOP_TX		0x00000005#define QE_RESTART_TX			0x00000006#define QE_CLOSE_RX_BD			0x00000007#define QE_SWITCH_COMMAND		0x00000007#define QE_SET_GROUP_ADDRESS		0x00000008#define QE_START_IDMA			0x00000009#define QE_MCC_STOP_RX			0x00000009#define QE_ATM_TRANSMIT			0x0000000a#define QE_HPAC_CLEAR_ALL		0x0000000b#define QE_GRACEFUL_STOP_RX		0x0000001a#define QE_RESTART_RX			0x0000001b#define QE_HPAC_SET_PRIORITY		0x0000010b#define QE_HPAC_STOP_TX			0x0000020b#define QE_HPAC_STOP_RX			0x0000030b#define QE_HPAC_GRACEFUL_STOP_TX	0x0000040b#define QE_HPAC_GRACEFUL_STOP_RX	0x0000050b#define QE_HPAC_START_TX		0x0000060b#define QE_HPAC_START_RX		0x0000070b#define QE_USB_STOP_TX			0x0000000a#define QE_USB_RESTART_TX		0x0000000b#define QE_QMC_STOP_TX			0x0000000c#define QE_QMC_STOP_RX			0x0000000d#define QE_SS7_SU_FIL_RESET		0x0000000e/* jonathbr added from here down for 83xx */#define QE_RESET_BCS			0x0000000a#define QE_MCC_INIT_TX_RX_16		0x00000003#define QE_MCC_STOP_TX			0x00000004#define QE_MCC_INIT_TX_1		0x00000005#define QE_MCC_INIT_RX_1		0x00000006#define QE_MCC_RESET			0x00000007#define QE_SET_TIMER			0x00000008#define QE_RANDOM_NUMBER		0x0000000c#define QE_ATM_MULTI_THREAD_INIT	0x00000011#define QE_ASSIGN_PAGE			0x00000012#define QE_ADD_REMOVE_HASH_ENTRY	0x00000013#define QE_START_FLOW_CONTROL		0x00000014#define QE_STOP_FLOW_CONTROL		0x00000015#define QE_ASSIGN_PAGE_TO_DEVICE	0x00000016#define QE_ASSIGN_RISC			0x00000010#define QE_CR_MCN_NORMAL_SHIFT		6#define QE_CR_MCN_USB_SHIFT		4#define QE_CR_MCN_RISC_ASSIGN_SHIFT	8#define QE_CR_SNUM_SHIFT		17/* QE CECR Sub Block - sub block of QE command.*/#define QE_CR_SUBBLOCK_INVALID		0x00000000#define QE_CR_SUBBLOCK_USB		0x03200000#define QE_CR_SUBBLOCK_UCCFAST1		0x02000000#define QE_CR_SUBBLOCK_UCCFAST2		0x02200000#define QE_CR_SUBBLOCK_UCCFAST3		0x02400000#define QE_CR_SUBBLOCK_UCCFAST4		0x02600000#define QE_CR_SUBBLOCK_UCCFAST5		0x02800000#define QE_CR_SUBBLOCK_UCCFAST6		0x02a00000#define QE_CR_SUBBLOCK_UCCFAST7		0x02c00000#define QE_CR_SUBBLOCK_UCCFAST8		0x02e00000#define QE_CR_SUBBLOCK_UCCSLOW1		0x00000000#define QE_CR_SUBBLOCK_UCCSLOW2		0x00200000#define QE_CR_SUBBLOCK_UCCSLOW3		0x00400000#define QE_CR_SUBBLOCK_UCCSLOW4		0x00600000#define QE_CR_SUBBLOCK_UCCSLOW5		0x00800000#define QE_CR_SUBBLOCK_UCCSLOW6		0x00a00000#define QE_CR_SUBBLOCK_UCCSLOW7		0x00c00000#define QE_CR_SUBBLOCK_UCCSLOW8		0x00e00000#define QE_CR_SUBBLOCK_MCC1		0x03800000#define QE_CR_SUBBLOCK_MCC2		0x03a00000#define QE_CR_SUBBLOCK_MCC3		0x03000000#define QE_CR_SUBBLOCK_IDMA1		0x02800000#define QE_CR_SUBBLOCK_IDMA2		0x02a00000#define QE_CR_SUBBLOCK_IDMA3		0x02c00000#define QE_CR_SUBBLOCK_IDMA4		0x02e00000

⌨️ 快捷键说明

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