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, 7 .gpio2 = GPIO_MODE_GPIO, 8 .gpio3 = GPIO_MODE_GPIO, 9 .gpio4 = GPIO_MODE_GPIO, 10 .gpio5 = GPIO_MODE_GPIO, 11 .gpio6 = GPIO_MODE_GPIO, 12 .gpio7 = GPIO_MODE_GPIO, 13 .gpio8 = GPIO_MODE_GPIO, 14 .gpio9 = GPIO_MODE_GPIO, 15 .gpio10 = GPIO_MODE_GPIO, 16 .gpio11 = GPIO_MODE_GPIO, 17 .gpio12 = GPIO_MODE_GPIO, 18 .gpio13 = GPIO_MODE_GPIO, 19 .gpio14 = GPIO_MODE_GPIO, 20 .gpio15 = GPIO_MODE_GPIO, 21 .gpio17 = GPIO_MODE_GPIO, 22 .gpio18 = GPIO_MODE_GPIO, 23 .gpio19 = GPIO_MODE_GPIO, 24 .gpio20 = GPIO_MODE_GPIO, 25 .gpio21 = GPIO_MODE_GPIO, 26 .gpio22 = GPIO_MODE_GPIO, 27 .gpio23 = GPIO_MODE_GPIO, 28 .gpio27 = GPIO_MODE_GPIO, 29 .gpio28 = GPIO_MODE_GPIO, 30 }; 31 32 static const struct pch_gpio_set1 pch_gpio_set1_direction = { 33 .gpio1 = GPIO_DIR_OUTPUT, 34 .gpio2 = GPIO_DIR_OUTPUT, 35 .gpio3 = GPIO_DIR_OUTPUT, 36 .gpio4 = GPIO_DIR_OUTPUT, 37 .gpio5 = GPIO_DIR_OUTPUT, 38 .gpio6 = GPIO_DIR_OUTPUT, 39 .gpio7 = GPIO_DIR_INPUT, 40 .gpio8 = GPIO_DIR_INPUT, 41 .gpio9 = GPIO_DIR_OUTPUT, 42 .gpio10 = GPIO_DIR_INPUT, 43 .gpio11 = GPIO_DIR_OUTPUT, 44 .gpio12 = GPIO_DIR_OUTPUT, 45 .gpio13 = GPIO_DIR_INPUT, 46 .gpio14 = GPIO_DIR_OUTPUT, 47 .gpio15 = GPIO_DIR_INPUT, 48 .gpio17 = GPIO_DIR_OUTPUT, 49 .gpio18 = GPIO_DIR_OUTPUT, 50 .gpio19 = GPIO_DIR_INPUT, 51 .gpio20 = GPIO_DIR_OUTPUT, 52 .gpio21 = GPIO_DIR_OUTPUT, 53 .gpio22 = GPIO_DIR_OUTPUT, 54 .gpio23 = GPIO_DIR_OUTPUT, 55 .gpio24 = GPIO_DIR_OUTPUT, 56 .gpio27 = GPIO_DIR_OUTPUT, 57 .gpio28 = GPIO_DIR_OUTPUT, 58 }; 59 60 static const struct pch_gpio_set1 pch_gpio_set1_level = { 61 .gpio1 = GPIO_LEVEL_HIGH, 62 .gpio2 = GPIO_LEVEL_HIGH, 63 .gpio3 = GPIO_LEVEL_HIGH, 64 .gpio4 = GPIO_LEVEL_HIGH, 65 .gpio5 = GPIO_LEVEL_HIGH, 66 .gpio6 = GPIO_LEVEL_HIGH, 67 .gpio9 = GPIO_LEVEL_LOW, 68 .gpio11 = GPIO_LEVEL_HIGH, 69 .gpio12 = GPIO_LEVEL_LOW, 70 .gpio14 = GPIO_LEVEL_HIGH, 71 .gpio17 = GPIO_LEVEL_HIGH, 72 .gpio18 = GPIO_LEVEL_HIGH, 73 .gpio20 = GPIO_LEVEL_HIGH, 74 .gpio21 = GPIO_LEVEL_HIGH, 75 .gpio22 = GPIO_LEVEL_HIGH, 76 .gpio23 = GPIO_LEVEL_HIGH, 77 .gpio24 = GPIO_LEVEL_LOW, 78 .gpio27 = GPIO_LEVEL_HIGH, 79 .gpio28 = GPIO_LEVEL_LOW, 80 }; 81 82 static const struct pch_gpio_set1 pch_gpio_set1_invert = { 83 .gpio7 = GPIO_INVERT, 84 .gpio10 = GPIO_INVERT, 85 .gpio13 = GPIO_INVERT, 86 }; 87 88 static const struct pch_gpio_set2 pch_gpio_set2_mode = { 89 .gpio32 = GPIO_MODE_GPIO, 90 .gpio33 = GPIO_MODE_GPIO, 91 .gpio34 = GPIO_MODE_GPIO, 92 .gpio35 = GPIO_MODE_GPIO, 93 .gpio36 = GPIO_MODE_GPIO, 94 .gpio37 = GPIO_MODE_GPIO, 95 .gpio38 = GPIO_MODE_GPIO, 96 .gpio39 = GPIO_MODE_GPIO, 97 .gpio48 = GPIO_MODE_GPIO, 98 .gpio49 = GPIO_MODE_GPIO, 99 .gpio56 = GPIO_MODE_GPIO, 100 .gpio57 = GPIO_MODE_GPIO, 101 .gpio60 = GPIO_MODE_GPIO, 102 }; 103 104 static const struct pch_gpio_set2 pch_gpio_set2_direction = { 105 .gpio32 = GPIO_DIR_OUTPUT, 106 .gpio33 = GPIO_DIR_OUTPUT, 107 .gpio34 = GPIO_DIR_OUTPUT, 108 .gpio35 = GPIO_DIR_OUTPUT, 109 .gpio36 = GPIO_DIR_OUTPUT, 110 .gpio37 = GPIO_DIR_OUTPUT, 111 .gpio38 = GPIO_DIR_OUTPUT, 112 .gpio39 = GPIO_DIR_OUTPUT, 113 .gpio48 = GPIO_DIR_OUTPUT, 114 .gpio49 = GPIO_DIR_OUTPUT, 115 .gpio56 = GPIO_DIR_OUTPUT, 116 .gpio57 = GPIO_DIR_INPUT, 117 .gpio60 = GPIO_DIR_OUTPUT, 118 }; 119 120 static const struct pch_gpio_set2 pch_gpio_set2_level = { 121 .gpio32 = GPIO_LEVEL_HIGH, 122 .gpio33 = GPIO_LEVEL_HIGH, 123 .gpio34 = GPIO_LEVEL_LOW, 124 .gpio35 = GPIO_LEVEL_LOW, 125 .gpio36 = GPIO_LEVEL_HIGH, 126 .gpio37 = GPIO_LEVEL_HIGH, 127 .gpio38 = GPIO_LEVEL_HIGH, 128 .gpio39 = GPIO_LEVEL_HIGH, 129 .gpio48 = GPIO_LEVEL_LOW, 130 .gpio49 = GPIO_LEVEL_HIGH, 131 .gpio56 = GPIO_LEVEL_HIGH, 132 .gpio60 = GPIO_LEVEL_HIGH, 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 .invert = &pch_gpio_set1_invert, 141 }, 142 .set2 = { 143 .mode = &pch_gpio_set2_mode, 144 .direction = &pch_gpio_set2_direction, 145 .level = &pch_gpio_set2_level, 146 }, 147 }; 148