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 | DCB_GPIO_VID0 = 0x04, |
12 | DCB_GPIO_VID1 = 0x05, |
13 | DCB_GPIO_VID2 = 0x06, |
14 | DCB_GPIO_VID3 = 0x1a, |
15 | DCB_GPIO_VID4 = 0x73, |
16 | DCB_GPIO_VID5 = 0x74, |
17 | DCB_GPIO_VID6 = 0x75, |
18 | DCB_GPIO_VID7 = 0x76, |
19 | }; |
20 | |
21 | #define DCB_GPIO_LOG_DIR 0x02 |
22 | #define DCB_GPIO_LOG_DIR_OUT 0x00 |
23 | #define DCB_GPIO_LOG_DIR_IN 0x02 |
24 | #define DCB_GPIO_LOG_VAL 0x01 |
25 | #define DCB_GPIO_LOG_VAL_LO 0x00 |
26 | #define DCB_GPIO_LOG_VAL_HI 0x01 |
27 | |
28 | struct dcb_gpio_func { |
29 | u8 func; |
30 | u8 line; |
31 | u8 log[2]; |
32 | |
33 | /* so far, "param" seems to only have an influence on PWM-related |
34 | * GPIOs such as FAN_CONTROL and PANEL_BACKLIGHT_LEVEL. |
35 | * if param equals 1, hardware PWM is available |
36 | * if param equals 0, the host should toggle the GPIO itself |
37 | */ |
38 | u8 param; |
39 | }; |
40 | |
41 | u16 dcb_gpio_table(struct nouveau_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); |
42 | u16 dcb_gpio_entry(struct nouveau_bios *, int idx, int ent, u8 *ver, u8 *len); |
43 | u16 dcb_gpio_parse(struct nouveau_bios *, int idx, int ent, u8 *ver, u8 *len, |
44 | struct dcb_gpio_func *); |
45 | u16 dcb_gpio_match(struct nouveau_bios *, int idx, u8 func, u8 line, |
46 | u8 *ver, u8 *len, struct dcb_gpio_func *); |
47 | |
48 | #endif |
49 | |