• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <southbridge/intel/common/gpio.h>
4 
5 static const struct pch_gpio_set1 pch_gpio_set1_mode = {
6 	.gpio1 = GPIO_MODE_GPIO, /* DASP_BAY# */
7 	.gpio6 = GPIO_MODE_GPIO, /* LEGACYIO# */
8 	.gpio7 = GPIO_MODE_GPIO, /* BDC_PRESENCE# */
9 	.gpio8 = GPIO_MODE_GPIO, /* H8_WAKE# */
10 	.gpio9 = GPIO_MODE_GPIO, /* Pulled Up */
11 	.gpio10 = GPIO_MODE_GPIO, /* MDI_DETECT */
12 	.gpio12 = GPIO_MODE_GPIO, /* H8SCI# */
13 	.gpio13 = GPIO_MODE_GPIO, /* Pulled Up */
14 	.gpio14 = GPIO_MODE_GPIO, /* CPUSB# */
15 	.gpio15 = GPIO_MODE_GPIO, /* CPPE# */
16 	.gpio19 = GPIO_MODE_GPIO, /* GBE_RS# */
17 #if CONFIG(BOARD_LENOVO_R60)
18 	.gpio21 = GPIO_MODE_GPIO, /* LCD_PRESENCE# */
19 #endif
20 	.gpio22 = GPIO_MODE_GPIO, /* FWH_WP# */
21 	.gpio24 = GPIO_MODE_GPIO, /* Pulled Down */
22 	.gpio25 = GPIO_MODE_GPIO, /* MDC_KILL# */
23 	.gpio26 = GPIO_MODE_GPIO, /* Pulled Down */
24 	.gpio27 = GPIO_MODE_GPIO, /* EXC_PWR_CTRL */
25 	.gpio28 = GPIO_MODE_GPIO, /* EXC_AUX_CTRL */
26 };
27 
28 static const struct pch_gpio_set1 pch_gpio_set1_direction = {
29 	.gpio1 = GPIO_DIR_INPUT,
30 	.gpio6 = GPIO_DIR_INPUT,
31 	.gpio7 = GPIO_DIR_INPUT,
32 	.gpio8 = GPIO_DIR_INPUT,
33 	.gpio9 = GPIO_DIR_INPUT,
34 	.gpio10 = GPIO_DIR_INPUT,
35 	.gpio12 = GPIO_DIR_INPUT,
36 	.gpio13 = GPIO_DIR_INPUT,
37 	.gpio14 = GPIO_DIR_INPUT,
38 	.gpio15 = GPIO_DIR_INPUT,
39 	.gpio19 = GPIO_DIR_OUTPUT,
40 #if CONFIG(BOARD_LENOVO_R60)
41 	.gpio21 = GPIO_DIR_INPUT,
42 	.gpio22 = GPIO_DIR_OUTPUT,
43 #else
44 	.gpio22 = GPIO_DIR_INPUT,
45 #endif
46 	.gpio24 = GPIO_DIR_OUTPUT,
47 	.gpio25 = GPIO_DIR_OUTPUT,
48 	.gpio26 = GPIO_DIR_OUTPUT,
49 	.gpio27 = GPIO_DIR_OUTPUT,
50 	.gpio28 = GPIO_DIR_OUTPUT,
51 };
52 
53 static const struct pch_gpio_set1 pch_gpio_set1_level = {
54 	.gpio19 = GPIO_LEVEL_HIGH,
55 	.gpio24 = GPIO_LEVEL_HIGH,
56 	.gpio25 = GPIO_LEVEL_HIGH,
57 	.gpio26 = GPIO_LEVEL_LOW,
58 	.gpio27 = GPIO_LEVEL_HIGH,
59 	.gpio28 = GPIO_LEVEL_HIGH,
60 };
61 
62 static const struct pch_gpio_set1 pch_gpio_set1_invert = {
63 	.gpio1 = GPIO_INVERT,
64 	.gpio6 = GPIO_INVERT,
65 	.gpio7 = GPIO_INVERT,
66 	.gpio8 = GPIO_INVERT,
67 	.gpio12 = GPIO_INVERT,
68 	.gpio13 = GPIO_INVERT,
69 };
70 
71 static const struct pch_gpio_set1 pch_gpio_set1_blink = {
72 };
73 
74 static const struct pch_gpio_set2 pch_gpio_set2_mode = {
75 #if CONFIG(BOARD_LENOVO_R60)
76 	.gpio34 = GPIO_MODE_GPIO, /* SMB_3B_EN */
77 #endif
78 	.gpio36 = GPIO_MODE_GPIO, /* PLANARID0 */
79 	.gpio37 = GPIO_MODE_GPIO, /* PLANARID1 */
80 	.gpio38 = GPIO_MODE_GPIO, /* PLANARID2 */
81 	.gpio39 = GPIO_MODE_GPIO, /* PLANARID3 */
82 	.gpio48 = GPIO_MODE_GPIO, /* FWH_TBL# */
83 };
84 
85 static const struct pch_gpio_set2 pch_gpio_set2_direction = {
86 #if CONFIG(BOARD_LENOVO_R60)
87 	.gpio34 = GPIO_DIR_INPUT,
88 #endif
89 	.gpio36 = GPIO_DIR_INPUT,
90 	.gpio37 = GPIO_DIR_INPUT,
91 	.gpio38 = GPIO_DIR_INPUT,
92 	.gpio39 = GPIO_DIR_INPUT,
93 	.gpio48 = GPIO_DIR_OUTPUT,
94 };
95 
96 static const struct pch_gpio_set2 pch_gpio_set2_level = {
97 	.gpio48 = GPIO_LEVEL_HIGH,
98 };
99 
100 const struct pch_gpio_map mainboard_gpio_map = {
101 	.set1 = {
102 		.mode		= &pch_gpio_set1_mode,
103 		.direction	= &pch_gpio_set1_direction,
104 		.level		= &pch_gpio_set1_level,
105 		.blink		= &pch_gpio_set1_blink,
106 		.invert		= &pch_gpio_set1_invert,
107 	},
108 	.set2 = {
109 		.mode		= &pch_gpio_set2_mode,
110 		.direction	= &pch_gpio_set2_direction,
111 		.level		= &pch_gpio_set2_level,
112 	},
113 };
114