xgs.h (2345B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: xgs.h 8 * Purpose: Public XGS board driver delarations 9 */ 10 11 #ifndef _XGS_H_ 12 #define _XGS_H_ 13 14 /* High level XGS board support */ 15 16 #include <board/board.h> 17 18 extern char *board_xgs_description(board_driver_t *driver); 19 extern int board_xgs_probe(board_driver_t *driver, int num, 20 bcm_info_t *info); 21 extern int board_xgs_start(board_driver_t *driver, uint32 flags); 22 extern int board_xgs_stop(board_driver_t *driver); 23 extern int board_xgs_modid_get(board_driver_t *driver, 24 char *name, int *modid); 25 extern int board_xgs_modid_set(board_driver_t *driver, 26 char *name, int modid); 27 extern int board_xgs_num_modid_get(board_driver_t *driver, 28 char *name, int *num_modid); 29 30 #define BOARD_DRIVER_ANY_DEVICE 0xffffffff 31 32 #define BOARD_DRIVER_PRIVATE_DATA(driver) \ 33 ((void *)& _ ## driver ## _private_data) 34 35 #define BOARD_DRIVER_STRUCTURE(driver) driver ## _board 36 37 /* Cached device data */ 38 typedef struct board_xgs_device_data_s { 39 bcm_info_t info; 40 int modid; 41 int num_modid; 42 int modid_mask; 43 } board_xgs_device_data_t; 44 45 typedef struct board_xgs_data_s { 46 /* declaration 47 populated at compile time 48 do not reorder */ 49 int num_device; /* num_unit? */ 50 int num_supported_device; 51 uint32 *supported_device; 52 int num_led_program; 53 uint8 *led_program; 54 int led_port_offset; /* this is LED program dependent */ 55 int num_internal_connection; 56 board_connection_t *internal_connection; 57 58 /* instantiation 59 populated at run time 60 no ordering requirements */ 61 char *description; 62 board_xgs_device_data_t *device; /* size: num_devices */ 63 bcm_gport_t cpu; 64 } board_xgs_data_t; 65 66 #define ARRAY(a) COUNTOF(a), a 67 68 #define BOARD_XGS_DRIVER(driver) \ 69 board_driver_t BOARD_DRIVER_STRUCTURE(driver) = { \ 70 #driver, \ 71 BOARD_DEFAULT_PRIORITY, \ 72 BOARD_DRIVER_PRIVATE_DATA(driver),\ 73 0,\ 74 NULL,\ 75 0,\ 76 NULL,\ 77 board_xgs_description,\ 78 board_xgs_probe,\ 79 board_xgs_start,\ 80 board_xgs_stop \ 81 } 82 83 84 #endif /* _XGS_H_ */