i2c.h 658 B

1234567891011121314151617181920212223242526
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __NVBIOS_I2C_H__
  3. #define __NVBIOS_I2C_H__
  4. enum dcb_i2c_type {
  5. /* matches bios type field prior to ccb 4.1 */
  6. DCB_I2C_NV04_BIT = 0x00,
  7. DCB_I2C_NV4E_BIT = 0x04,
  8. DCB_I2C_NVIO_BIT = 0x05,
  9. DCB_I2C_NVIO_AUX = 0x06,
  10. /* made up - mostly */
  11. DCB_I2C_PMGR = 0x80,
  12. DCB_I2C_UNUSED = 0xff
  13. };
  14. struct dcb_i2c_entry {
  15. enum dcb_i2c_type type;
  16. u8 drive;
  17. u8 sense;
  18. u8 share;
  19. u8 auxch;
  20. };
  21. u16 dcb_i2c_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
  22. u16 dcb_i2c_entry(struct nvkm_bios *, u8 index, u8 *ver, u8 *len);
  23. int dcb_i2c_parse(struct nvkm_bios *, u8 index, struct dcb_i2c_entry *);
  24. #endif