gsc.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright 2021 Gateworks Corporation
  4. */
  5. #ifndef _GSC_H_
  6. #define _GSC_H_
  7. /* I2C bus numbers */
  8. #define GSC_BUSNO 0
  9. #define BASEBOARD_EEPROM_BUSNO 1
  10. /* I2C slave addresses */
  11. #define GSC_SC_ADDR 0x20
  12. #define GSC_RTC_ADDR 0x68
  13. #define GSC_HWMON_ADDR 0x29
  14. #define GSC_EEPROM_ADDR 0x51
  15. #define BASEBOARD_EEPROM_ADDR 0x52
  16. struct venice_board_info {
  17. u8 mac[6]; /* 0x00: MAC base */
  18. char equiv_dts[16]; /* 0x06: equivalent device-tree */
  19. u8 res0[2]; /* 0x16: reserved */
  20. u32 serial; /* 0x18: Serial Number */
  21. u8 res1[4]; /* 0x1C: reserved */
  22. u8 mfgdate[4]; /* 0x20: MFG date */
  23. u8 macno; /* 0x24: number of mac addrs */
  24. u8 res2[6]; /* 0x25 */
  25. u8 sdram_size; /* 0x2B: (16 << n) MB */
  26. u8 sdram_speed; /* 0x2C: (33.333 * n) MHz */
  27. u8 sdram_width; /* 0x2D: (8 << n) bit */
  28. u8 res3[2]; /* 0x2E */
  29. char model[16]; /* 0x30: model string */
  30. u8 res4[14]; /* 0x40 */
  31. u8 chksum[2]; /* 0x4E */
  32. };
  33. int gsc_init(int quiet);
  34. int gsc_hwmon(void);
  35. const char *gsc_get_model(void);
  36. const char *gsc_get_dtb_name(int level, char *buf, int len);
  37. int gsc_getmac(int index, uint8_t *enetaddr);
  38. uint32_t gsc_get_serial(void);
  39. #endif