2019-06-04 11:11:33 +03:00
/* SPDX-License-Identifier: GPL-2.0-only */
2007-07-03 19:53:09 +04:00
/* include/net/ax88796.h
*
* Copyright 2005 Simtec Electronics
* Ben Dooks < ben @ simtec . co . uk >
*/
# ifndef __NET_AX88796_PLAT_H
# define __NET_AX88796_PLAT_H
2022-07-21 02:57:58 +03:00
# include <linux/types.h>
2018-04-19 05:05:22 +03:00
struct sk_buff ;
struct net_device ;
2018-04-19 05:05:23 +03:00
struct platform_device ;
2018-04-19 05:05:22 +03:00
2007-07-03 19:53:09 +04:00
# define AXFLG_HAS_EEPROM (1<<0)
# define AXFLG_MAC_FROMDEV (1<<1) /* device already has MAC */
2007-09-29 09:42:16 +04:00
# define AXFLG_HAS_93CX6 (1<<2) /* use eeprom_93cx6 driver */
2009-03-25 09:32:03 +03:00
# define AXFLG_MAC_FROMPLATFORM (1<<3) /* MAC given by platform data */
2007-07-03 19:53:09 +04:00
struct ax_plat_data {
unsigned int flags ;
2009-03-25 09:32:03 +03:00
unsigned char wordlength ; /* 1 or 2 */
unsigned char dcr_val ; /* default value for DCR */
unsigned char rcr_val ; /* default value for RCR */
unsigned char gpoc_val ; /* default value for GPOC */
u32 * reg_offsets ; /* register offsets */
u8 * mac_addr ; /* MAC addr (only used when
AXFLG_MAC_FROMPLATFORM is used */
2018-04-19 05:05:22 +03:00
/* uses default ax88796 buffer if set to NULL */
void ( * block_output ) ( struct net_device * dev , int count ,
const unsigned char * buf , int star_page ) ;
void ( * block_input ) ( struct net_device * dev , int count ,
struct sk_buff * skb , int ring_offset ) ;
2022-08-06 19:02:36 +03:00
/* returns nonzero if a pending interrupt request might be caused by
* the ax88796 . Handles all interrupts if set to NULL
2018-04-19 05:05:23 +03:00
*/
int ( * check_irq ) ( struct platform_device * pdev ) ;
2007-07-03 19:53:09 +04:00
} ;
2021-08-03 14:40:44 +03:00
/* exported from ax88796.c for xsurf100.c */
extern void ax_NS8390_reinit ( struct net_device * dev ) ;
2007-07-03 19:53:09 +04:00
# endif /* __NET_AX88796_PLAT_H */