]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
e0996aea BS |
2 | #ifndef __NVBIOS_GPIO_H__ |
3 | #define __NVBIOS_GPIO_H__ | |
e0996aea BS |
4 | enum dcb_gpio_func_name { |
5 | DCB_GPIO_PANEL_POWER = 0x01, | |
6 | DCB_GPIO_TVDAC0 = 0x0c, | |
7 | DCB_GPIO_TVDAC1 = 0x2d, | |
e8c3cc08 | 8 | DCB_GPIO_FAN = 0x09, |
e0996aea | 9 | DCB_GPIO_FAN_SENSE = 0x3d, |
8d021d71 | 10 | DCB_GPIO_LOGO_LED_PWM = 0x84, |
0833428e BS |
11 | DCB_GPIO_UNUSED = 0xff, |
12 | DCB_GPIO_VID0 = 0x04, | |
13 | DCB_GPIO_VID1 = 0x05, | |
14 | DCB_GPIO_VID2 = 0x06, | |
15 | DCB_GPIO_VID3 = 0x1a, | |
16 | DCB_GPIO_VID4 = 0x73, | |
17 | DCB_GPIO_VID5 = 0x74, | |
18 | DCB_GPIO_VID6 = 0x75, | |
19 | DCB_GPIO_VID7 = 0x76, | |
1531dbbb | 20 | DCB_GPIO_VID_PWM = 0x81, |
e0996aea BS |
21 | }; |
22 | ||
708ff04b BS |
23 | #define DCB_GPIO_LOG_DIR 0x02 |
24 | #define DCB_GPIO_LOG_DIR_OUT 0x00 | |
25 | #define DCB_GPIO_LOG_DIR_IN 0x02 | |
26 | #define DCB_GPIO_LOG_VAL 0x01 | |
27 | #define DCB_GPIO_LOG_VAL_LO 0x00 | |
28 | #define DCB_GPIO_LOG_VAL_HI 0x01 | |
29 | ||
e0996aea BS |
30 | struct dcb_gpio_func { |
31 | u8 func; | |
32 | u8 line; | |
33 | u8 log[2]; | |
e3619998 MP |
34 | |
35 | /* so far, "param" seems to only have an influence on PWM-related | |
36 | * GPIOs such as FAN_CONTROL and PANEL_BACKLIGHT_LEVEL. | |
37 | * if param equals 1, hardware PWM is available | |
38 | * if param equals 0, the host should toggle the GPIO itself | |
39 | */ | |
40 | u8 param; | |
e0996aea BS |
41 | }; |
42 | ||
d390b480 BS |
43 | u16 dcb_gpio_table(struct nvkm_bios *, u8 *ver, u8 *hdr, u8 *cnt, u8 *len); |
44 | u16 dcb_gpio_entry(struct nvkm_bios *, int idx, int ent, u8 *ver, u8 *len); | |
45 | u16 dcb_gpio_parse(struct nvkm_bios *, int idx, int ent, u8 *ver, u8 *len, | |
e0996aea | 46 | struct dcb_gpio_func *); |
d390b480 | 47 | u16 dcb_gpio_match(struct nvkm_bios *, int idx, u8 func, u8 line, |
d2bcea68 | 48 | u8 *ver, u8 *len, struct dcb_gpio_func *); |
e0996aea | 49 | #endif |