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 .gpio0 = GPIO_MODE_GPIO, 7 .gpio1 = GPIO_MODE_GPIO, 8 .gpio2 = GPIO_MODE_GPIO, 9 .gpio3 = GPIO_MODE_GPIO, 10 .gpio4 = GPIO_MODE_GPIO, 11 .gpio5 = GPIO_MODE_GPIO, 12 .gpio6 = GPIO_MODE_GPIO, 13 .gpio7 = GPIO_MODE_GPIO, 14 .gpio8 = GPIO_MODE_GPIO, 15 .gpio10 = GPIO_MODE_GPIO, 16 .gpio13 = GPIO_MODE_GPIO, 17 .gpio15 = GPIO_MODE_GPIO, 18 .gpio17 = GPIO_MODE_GPIO, 19 .gpio21 = GPIO_MODE_GPIO, 20 .gpio22 = GPIO_MODE_GPIO, 21 .gpio24 = GPIO_MODE_GPIO, 22 .gpio27 = GPIO_MODE_GPIO, 23 .gpio28 = GPIO_MODE_GPIO, 24 .gpio29 = GPIO_MODE_GPIO, 25 }; 26 27 static const struct pch_gpio_set1 pch_gpio_set1_direction = { 28 .gpio0 = GPIO_DIR_INPUT, 29 .gpio1 = GPIO_DIR_INPUT, 30 .gpio2 = GPIO_DIR_INPUT, 31 .gpio3 = GPIO_DIR_INPUT, 32 .gpio4 = GPIO_DIR_INPUT, 33 .gpio5 = GPIO_DIR_INPUT, 34 .gpio6 = GPIO_DIR_INPUT, 35 .gpio7 = GPIO_DIR_INPUT, 36 .gpio13 = GPIO_DIR_INPUT, 37 .gpio17 = GPIO_DIR_INPUT, 38 .gpio21 = GPIO_DIR_INPUT, 39 .gpio27 = GPIO_DIR_INPUT, 40 }; 41 42 static const struct pch_gpio_set1 pch_gpio_set1_level = { 43 .gpio10 = GPIO_LEVEL_HIGH, 44 .gpio22 = GPIO_LEVEL_HIGH, 45 .gpio29 = GPIO_LEVEL_HIGH, 46 }; 47 48 static const struct pch_gpio_set1 pch_gpio_set1_reset = { 49 .gpio24 = GPIO_RESET_RSMRST, 50 }; 51 52 static const struct pch_gpio_set1 pch_gpio_set1_invert = { 53 .gpio1 = GPIO_INVERT, 54 .gpio6 = GPIO_INVERT, 55 .gpio13 = GPIO_INVERT, 56 }; 57 58 static const struct pch_gpio_set1 pch_gpio_set1_blink = { 59 }; 60 61 static const struct pch_gpio_set2 pch_gpio_set2_mode = { 62 .gpio33 = GPIO_MODE_GPIO, 63 .gpio34 = GPIO_MODE_GPIO, 64 .gpio35 = GPIO_MODE_GPIO, 65 .gpio36 = GPIO_MODE_GPIO, 66 .gpio37 = GPIO_MODE_GPIO, 67 .gpio38 = GPIO_MODE_GPIO, 68 .gpio39 = GPIO_MODE_GPIO, 69 .gpio43 = GPIO_MODE_GPIO, 70 .gpio48 = GPIO_MODE_GPIO, 71 .gpio49 = GPIO_MODE_GPIO, 72 .gpio50 = GPIO_MODE_GPIO, 73 .gpio51 = GPIO_MODE_GPIO, 74 .gpio52 = GPIO_MODE_GPIO, 75 .gpio53 = GPIO_MODE_GPIO, 76 .gpio54 = GPIO_MODE_GPIO, 77 .gpio55 = GPIO_MODE_GPIO, 78 .gpio57 = GPIO_MODE_GPIO, 79 }; 80 81 static const struct pch_gpio_set2 pch_gpio_set2_direction = { 82 .gpio34 = GPIO_DIR_INPUT, 83 .gpio35 = GPIO_DIR_INPUT, 84 .gpio36 = GPIO_DIR_INPUT, 85 .gpio37 = GPIO_DIR_INPUT, 86 .gpio38 = GPIO_DIR_INPUT, 87 .gpio39 = GPIO_DIR_INPUT, 88 .gpio48 = GPIO_DIR_INPUT, 89 .gpio49 = GPIO_DIR_INPUT, 90 .gpio50 = GPIO_DIR_INPUT, 91 .gpio54 = GPIO_DIR_INPUT, 92 .gpio57 = GPIO_DIR_INPUT, 93 }; 94 95 static const struct pch_gpio_set2 pch_gpio_set2_level = { 96 .gpio33 = GPIO_LEVEL_HIGH, 97 .gpio43 = GPIO_LEVEL_HIGH, 98 .gpio51 = GPIO_LEVEL_HIGH, 99 .gpio52 = GPIO_LEVEL_HIGH, 100 .gpio53 = GPIO_LEVEL_HIGH, 101 .gpio55 = GPIO_LEVEL_HIGH, 102 }; 103 104 static const struct pch_gpio_set2 pch_gpio_set2_reset = { 105 }; 106 107 static const struct pch_gpio_set3 pch_gpio_set3_mode = { 108 .gpio64 = GPIO_MODE_GPIO, 109 .gpio65 = GPIO_MODE_GPIO, 110 .gpio66 = GPIO_MODE_GPIO, 111 .gpio67 = GPIO_MODE_GPIO, 112 .gpio68 = GPIO_MODE_GPIO, 113 .gpio69 = GPIO_MODE_GPIO, 114 .gpio70 = GPIO_MODE_GPIO, 115 .gpio71 = GPIO_MODE_GPIO, 116 }; 117 118 static const struct pch_gpio_set3 pch_gpio_set3_direction = { 119 .gpio64 = GPIO_DIR_INPUT, 120 .gpio65 = GPIO_DIR_INPUT, 121 .gpio66 = GPIO_DIR_INPUT, 122 .gpio67 = GPIO_DIR_INPUT, 123 .gpio68 = GPIO_DIR_INPUT, 124 .gpio69 = GPIO_DIR_INPUT, 125 .gpio70 = GPIO_DIR_INPUT, 126 .gpio71 = GPIO_DIR_INPUT, 127 }; 128 129 static const struct pch_gpio_set3 pch_gpio_set3_level = { 130 }; 131 132 static const struct pch_gpio_set3 pch_gpio_set3_reset = { 133 }; 134 135 const struct pch_gpio_map mainboard_gpio_map = { 136 .set1 = { 137 .mode = &pch_gpio_set1_mode, 138 .direction = &pch_gpio_set1_direction, 139 .level = &pch_gpio_set1_level, 140 .blink = &pch_gpio_set1_blink, 141 .invert = &pch_gpio_set1_invert, 142 .reset = &pch_gpio_set1_reset, 143 }, 144 .set2 = { 145 .mode = &pch_gpio_set2_mode, 146 .direction = &pch_gpio_set2_direction, 147 .level = &pch_gpio_set2_level, 148 .reset = &pch_gpio_set2_reset, 149 }, 150 .set3 = { 151 .mode = &pch_gpio_set3_mode, 152 .direction = &pch_gpio_set3_direction, 153 .level = &pch_gpio_set3_level, 154 .reset = &pch_gpio_set3_reset, 155 }, 156 }; 157