Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.21 82 lines 2.3 kB view raw
1/* 2 * drivers/net/ibm_emac/ibm_emac_zmii.h 3 * 4 * Driver for PowerPC 4xx on-chip ethernet controller, ZMII bridge support. 5 * 6 * Copyright (c) 2004, 2005 Zultys Technologies. 7 * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> 8 * 9 * Based on original work by 10 * Armin Kuster <akuster@mvista.com> 11 * Copyright 2001 MontaVista Softare Inc. 12 * 13 * This program is free software; you can redistribute it and/or modify it 14 * under the terms of the GNU General Public License as published by the 15 * Free Software Foundation; either version 2 of the License, or (at your 16 * option) any later version. 17 * 18 */ 19#ifndef _IBM_EMAC_ZMII_H_ 20#define _IBM_EMAC_ZMII_H_ 21 22#include <linux/init.h> 23#include <asm/ocp.h> 24 25/* ZMII bridge registers */ 26struct zmii_regs { 27 u32 fer; /* Function enable reg */ 28 u32 ssr; /* Speed select reg */ 29 u32 smiirs; /* SMII status reg */ 30}; 31 32/* ZMII device */ 33struct ibm_ocp_zmii { 34 struct zmii_regs __iomem *base; 35 int mode; /* subset of PHY_MODE_XXXX */ 36 int users; /* number of EMACs using this ZMII bridge */ 37 u32 fer_save; /* FER value left by firmware */ 38}; 39 40#ifdef CONFIG_IBM_EMAC_ZMII 41int zmii_attach(void *emac) __init; 42 43void __zmii_fini(struct ocp_device *ocpdev, int input) __exit; 44static inline void zmii_fini(struct ocp_device *ocpdev, int input) 45{ 46 if (ocpdev) 47 __zmii_fini(ocpdev, input); 48} 49 50void __zmii_enable_mdio(struct ocp_device *ocpdev, int input); 51static inline void zmii_enable_mdio(struct ocp_device *ocpdev, int input) 52{ 53 if (ocpdev) 54 __zmii_enable_mdio(ocpdev, input); 55} 56 57void __zmii_set_speed(struct ocp_device *ocpdev, int input, int speed); 58static inline void zmii_set_speed(struct ocp_device *ocpdev, int input, 59 int speed) 60{ 61 if (ocpdev) 62 __zmii_set_speed(ocpdev, input, speed); 63} 64 65int __zmii_get_regs_len(struct ocp_device *ocpdev); 66static inline int zmii_get_regs_len(struct ocp_device *ocpdev) 67{ 68 return ocpdev ? __zmii_get_regs_len(ocpdev) : 0; 69} 70 71void *zmii_dump_regs(struct ocp_device *ocpdev, void *buf); 72 73#else 74# define zmii_attach(x) 0 75# define zmii_fini(x,y) ((void)0) 76# define zmii_enable_mdio(x,y) ((void)0) 77# define zmii_set_speed(x,y,z) ((void)0) 78# define zmii_get_regs_len(x) 0 79# define zmii_dump_regs(x,buf) (buf) 80#endif /* !CONFIG_IBM_EMAC_ZMII */ 81 82#endif /* _IBM_EMAC_ZMII_H_ */