2 * RoboSwitch setup functions
4 * Copyright 2007, Broadcom Corporation
7 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
8 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
9 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
10 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
18 #define DEVID5325 0x25 /* 5325 (Not really be we fake it) */
20 /* Forward declaration */
21 typedef struct robo_info_s robo_info_t
;
23 /* Device access/config oprands */
25 /* low level routines */
26 void (*enable_mgmtif
)(robo_info_t
*robo
); /* enable mgmt i/f, optional */
27 void (*disable_mgmtif
)(robo_info_t
*robo
); /* disable mgmt i/f, optional */
28 int (*write_reg
)(robo_info_t
*robo
, uint8 page
, uint8 reg
, void *val
, int len
);
29 int (*read_reg
)(robo_info_t
*robo
, uint8 page
, uint8 reg
, void *val
, int len
);
35 typedef uint16 (*miird_f
)(void *h
, int add
, int off
);
36 typedef void (*miiwr_f
)(void *h
, int add
, int off
, uint16 val
);
38 /* Private state per RoboSwitch */
40 sb_t
*sbh
; /* SiliconBackplane handle */
41 char *vars
; /* nvram variables handle */
42 void *h
; /* dev handle */
43 uint16 devid
; /* Device id for the switch */
45 dev_ops_t
*ops
; /* device ops */
46 uint8 page
; /* current page */
49 uint32 ss
, sck
, mosi
, miso
; /* GPIO mapping */
56 extern robo_info_t
*bcm_robo_attach(sb_t
*sbh
, void *h
, char *vars
, miird_f miird
, miiwr_f miiwr
);
57 extern void bcm_robo_detach(robo_info_t
*robo
);
58 extern int bcm_robo_enable_device(robo_info_t
*robo
);
59 extern int bcm_robo_config_vlan(robo_info_t
*robo
, uint8
*mac_addr
);
60 extern int bcm_robo_enable_switch(robo_info_t
*robo
);
63 #endif /* _bcm_robo_h_ */