brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · 86c2b6b Raw
92 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * drivers/net/ethernet/ibm/emac/tah.h4 *5 * Driver for PowerPC 4xx on-chip ethernet controller, TAH support.6 *7 * Copyright 2007 Benjamin Herrenschmidt, IBM Corp.8 *                <benh@kernel.crashing.org>9 *10 * Based on the arch/ppc version of the driver:11 *12 * Copyright 2004 MontaVista Software, Inc.13 * Matt Porter <mporter@kernel.crashing.org>14 *15 * Copyright (c) 2005 Eugene Surovegin <ebs@ebshome.net>16 */17 18#ifndef __IBM_NEWEMAC_TAH_H19#define __IBM_NEWEMAC_TAH_H20 21/* TAH */22struct tah_regs {23	u32 revid;24	u32 pad[3];25	u32 mr;26	u32 ssr0;27	u32 ssr1;28	u32 ssr2;29	u32 ssr3;30	u32 ssr4;31	u32 ssr5;32	u32 tsr;33};34 35 36/* TAH device */37struct tah_instance {38	struct tah_regs __iomem		*base;39 40	/* Only one EMAC whacks us at a time */41	struct mutex			lock;42 43	/* number of EMACs using this TAH */44	int				users;45 46	/* OF device instance */47	struct platform_device		*ofdev;48};49 50 51/* TAH engine */52#define TAH_MR_CVR		0x8000000053#define TAH_MR_SR		0x4000000054#define TAH_MR_ST_256		0x0100000055#define TAH_MR_ST_512		0x0200000056#define TAH_MR_ST_768		0x0300000057#define TAH_MR_ST_1024		0x0400000058#define TAH_MR_ST_1280		0x0500000059#define TAH_MR_ST_1536		0x0600000060#define TAH_MR_TFS_16KB		0x0000000061#define TAH_MR_TFS_2KB		0x0020000062#define TAH_MR_TFS_4KB		0x0040000063#define TAH_MR_TFS_6KB		0x0060000064#define TAH_MR_TFS_8KB		0x0080000065#define TAH_MR_TFS_10KB		0x00a0000066#define TAH_MR_DTFP		0x0010000067#define TAH_MR_DIG		0x0008000068 69#ifdef CONFIG_IBM_EMAC_TAH70 71int tah_init(void);72void tah_exit(void);73int tah_attach(struct platform_device *ofdev, int channel);74void tah_detach(struct platform_device *ofdev, int channel);75void tah_reset(struct platform_device *ofdev);76int tah_get_regs_len(struct platform_device *ofdev);77void *tah_dump_regs(struct platform_device *ofdev, void *buf);78 79#else80 81# define tah_init()		082# define tah_exit()		do { } while(0)83# define tah_attach(x,y)	(-ENXIO)84# define tah_detach(x,y)	do { } while(0)85# define tah_reset(x)		do { } while(0)86# define tah_get_regs_len(x)	087# define tah_dump_regs(x,buf)	(buf)88 89#endif				/* !CONFIG_IBM_EMAC_TAH */90 91#endif /* __IBM_NEWEMAC_TAH_H */92