if_robo.h
上传用户:yuanda199
上传日期:2022-06-26
资源大小:412k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. /*
  2.  * BCM53xx RoboSwitch utility functions
  3.  *
  4.  * Copyright (C) 2002 Broadcom Corporation
  5.  *
  6.  * $Id: if_robo.h,v 1.1 Broadcom SDK $
  7.  */
  8. #ifndef _robo_h_
  9. #define _robo_h_
  10. /* Private state per RoboSwitch */
  11. typedef struct {
  12. void *sbh; /* SiliconBackplane handle */
  13. uint coreidx; /* Current core index */
  14. uint32 reset, ssl, clk, mosi, miso; /* GPIO mapping */
  15. int cid, page; /* Current chip ID and page */
  16. #ifdef _KERNEL_
  17. spinlock_t lock; /* per-device perimeter lock */
  18. #endif
  19. } robo_info_t;
  20. typedef void (*ROBO_READ)(robo_info_t *robo, uint8 cid, uint8 page, uint8 addr, uint8 *buf, uint len);
  21. typedef void (*ROBO_WRITE)(robo_info_t *robo, uint8 cid, uint8 page, uint8 addr, uint8 *buf, uint len);
  22. robo_info_t *robosw_attach(void *sbh, uint32 reset, uint32 ssl, uint32 clk, uint32 mosi, uint32 miso);
  23. void robosw_detach(robo_info_t *robo);
  24. void robosw_rreg(robo_info_t *robo, uint8 cid, uint8 page, uint8 addr, uint8 *buf, uint len);
  25. void robosw_wreg(robo_info_t *robo, uint8 cid, uint8 page, uint8 addr, uint8 *buf, uint len);
  26. void robo_mdio_rreg( uint8 cid, uint8 page, uint8 addr, uint8 *buf, uint len);
  27. void robo_mdio_wreg( uint8 cid, uint8 page, uint8 addr, uint8 *buf, uint len);
  28. typedef struct robo_driver_s {
  29.   char  *drv_name;
  30.   ROBO_READ robo_read;
  31.   ROBO_WRITE robo_write;
  32. } robo_driver_t;
  33. #endif /* _robo_h_ */