Merge tag 'i2c-for-6.9-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / include / net / ax88796.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* include/net/ax88796.h
3  *
4  * Copyright 2005 Simtec Electronics
5  *      Ben Dooks <ben@simtec.co.uk>
6 */
7
8 #ifndef __NET_AX88796_PLAT_H
9 #define __NET_AX88796_PLAT_H
10
11 #include <linux/types.h>
12
13 struct sk_buff;
14 struct net_device;
15 struct platform_device;
16
17 #define AXFLG_HAS_EEPROM                (1<<0)
18 #define AXFLG_MAC_FROMDEV               (1<<1)  /* device already has MAC */
19 #define AXFLG_HAS_93CX6                 (1<<2)  /* use eeprom_93cx6 driver */
20 #define AXFLG_MAC_FROMPLATFORM          (1<<3)  /* MAC given by platform data */
21
22 struct ax_plat_data {
23         unsigned int     flags;
24         unsigned char    wordlength;    /* 1 or 2 */
25         unsigned char    dcr_val;       /* default value for DCR */
26         unsigned char    rcr_val;       /* default value for RCR */
27         unsigned char    gpoc_val;      /* default value for GPOC */
28         u32             *reg_offsets;   /* register offsets */
29         u8              *mac_addr;      /* MAC addr (only used when
30                                            AXFLG_MAC_FROMPLATFORM is used */
31
32         /* uses default ax88796 buffer if set to NULL */
33         void (*block_output)(struct net_device *dev, int count,
34                         const unsigned char *buf, int star_page);
35         void (*block_input)(struct net_device *dev, int count,
36                         struct sk_buff *skb, int ring_offset);
37         /* returns nonzero if a pending interrupt request might be caused by
38          * the ax88796. Handles all interrupts if set to NULL
39          */
40         int (*check_irq)(struct platform_device *pdev);
41 };
42
43 /* exported from ax88796.c for xsurf100.c  */
44 extern void ax_NS8390_reinit(struct net_device *dev);
45
46 #endif /* __NET_AX88796_PLAT_H */