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