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

📄 ucc_geth_mii.h

📁 linux 内核源代码
💻 H
字号:
/* * drivers/net/ucc_geth_mii.h * * QE UCC Gigabit Ethernet Driver -- MII Management Bus Implementation * Provides Bus interface for MII Management regs in the UCC register space * * Copyright (C) 2007 Freescale Semiconductor, Inc. * * Authors: Li Yang <leoli@freescale.com> *	    Kim Phillips <kim.phillips@freescale.com> * * 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 __UEC_MII_H#define __UEC_MII_H/* UCC GETH MIIMCFG (MII Management Configuration Register) */#define MIIMCFG_RESET_MANAGEMENT                0x80000000	/* Reset								   management */#define MIIMCFG_NO_PREAMBLE                     0x00000010	/* Preamble								   suppress */#define MIIMCFG_CLOCK_DIVIDE_SHIFT              (31 - 31)	/* clock divide								   << shift */#define MIIMCFG_CLOCK_DIVIDE_MAX                0xf	/* max clock divide */#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_2    0x00000000#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_4    0x00000001#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_6    0x00000002#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_8    0x00000003#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_10   0x00000004#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_14   0x00000005#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_16   0x00000008#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_20   0x00000006#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_28   0x00000007#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_32   0x00000009#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_48   0x0000000a#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_64   0x0000000b#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_80   0x0000000c#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_112  0x0000000d#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_160  0x0000000e#define MIIMCFG_MANAGEMENT_CLOCK_DIVIDE_BY_224  0x0000000f/* UCC GETH MIIMCOM (MII Management Command Register) */#define MIIMCOM_SCAN_CYCLE                      0x00000002	/* Scan cycle */#define MIIMCOM_READ_CYCLE                      0x00000001	/* Read cycle *//* UCC GETH MIIMADD (MII Management Address Register) */#define MIIMADD_PHY_ADDRESS_SHIFT               (31 - 23)	/* PHY Address								   << shift */#define MIIMADD_PHY_REGISTER_SHIFT              (31 - 31)	/* PHY Register								   << shift *//* UCC GETH MIIMCON (MII Management Control Register) */#define MIIMCON_PHY_CONTROL_SHIFT               (31 - 31)	/* PHY Control								   << shift */#define MIIMCON_PHY_STATUS_SHIFT                (31 - 31)	/* PHY Status								   << shift *//* UCC GETH MIIMIND (MII Management Indicator Register) */#define MIIMIND_NOT_VALID                       0x00000004	/* Not valid */#define MIIMIND_SCAN                            0x00000002	/* Scan in								   progress */#define MIIMIND_BUSY                            0x00000001/* Initial TBI Physical Address */#define UTBIPAR_INIT_TBIPA			0x1fstruct ucc_mii_mng {	u32 miimcfg;		/* MII management configuration reg */	u32 miimcom;		/* MII management command reg */	u32 miimadd;		/* MII management address reg */	u32 miimcon;		/* MII management control reg */	u32 miimstat;		/* MII management status reg */	u32 miimind;		/* MII management indication reg */	u8 notcare[28];		/* Space holder */	u32 utbipar;		/* TBI phy address reg */} __attribute__ ((packed));/* TBI / MII Set Register */enum enet_tbi_mii_reg {	ENET_TBI_MII_CR = 0x00,	/* Control */	ENET_TBI_MII_SR = 0x01,	/* Status */	ENET_TBI_MII_ANA = 0x04,	/* AN advertisement */	ENET_TBI_MII_ANLPBPA = 0x05,	/* AN link partner base page ability */	ENET_TBI_MII_ANEX = 0x06,	/* AN expansion */	ENET_TBI_MII_ANNPT = 0x07,	/* AN next page transmit */	ENET_TBI_MII_ANLPANP = 0x08,	/* AN link partner ability next page */	ENET_TBI_MII_EXST = 0x0F,	/* Extended status */	ENET_TBI_MII_JD = 0x10,	/* Jitter diagnostics */	ENET_TBI_MII_TBICON = 0x11	/* TBI control */};int uec_mdio_read(struct mii_bus *bus, int mii_id, int regnum);int uec_mdio_write(struct mii_bus *bus, int mii_id, int regnum, u16 value);int __init uec_mdio_init(void);void uec_mdio_exit(void);#endif				/* __UEC_MII_H */

⌨️ 快捷键说明

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