• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __NVBIOS_GPIO_H__
2 #define __NVBIOS_GPIO_H__
3 
4 enum dcb_gpio_func_name {
5 	DCB_GPIO_PANEL_POWER = 0x01,
6 	DCB_GPIO_TVDAC0 = 0x0c,
7 	DCB_GPIO_TVDAC1 = 0x2d,
8 	DCB_GPIO_FAN = 0x09,
9 	DCB_GPIO_FAN_SENSE = 0x3d,
10 	DCB_GPIO_UNUSED = 0xff
11 };
12 
13 #define DCB_GPIO_LOG_DIR     0x02
14 #define DCB_GPIO_LOG_DIR_OUT 0x00
15 #define DCB_GPIO_LOG_DIR_IN  0x02
16 #define DCB_GPIO_LOG_VAL     0x01
17 #define DCB_GPIO_LOG_VAL_LO  0x00
18 #define DCB_GPIO_LOG_VAL_HI  0x01
19 
20 struct dcb_gpio_func {
21 	u8 func;
22 	u8 line;
23 	u8 log[2];
24 
25 	/* so far, "param" seems to only have an influence on PWM-related
26 	 * GPIOs such as FAN_CONTROL and PANEL_BACKLIGHT_LEVEL.
27 	 * if param equals 1, hardware PWM is available
28 	 * if param equals 0, the host should toggle the GPIO itself
29 	 */
30 	u8 param;
31 };
32 
33 u16 dcb_gpio_table(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len);
34 u16 dcb_gpio_entry(struct nouveau_bios *, int idx, int ent, u8 *ver, u8 *len);
35 u16 dcb_gpio_parse(struct nouveau_bios *, int idx, int ent, u8 *ver, u8 *len,
36 		   struct dcb_gpio_func *);
37 u16 dcb_gpio_match(struct nouveau_bios *, int idx, u8 func, u8 line,
38 		   u8 *ver, u8 *len, struct dcb_gpio_func *);
39 
40 #endif
41