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 .gpio27 = GPIO_DIR_OUTPUT, 56 .gpio28 = GPIO_DIR_OUTPUT, 57 }; 58 59 static const struct pch_gpio_set1 pch_gpio_set1_level = { 60 .gpio1 = GPIO_LEVEL_HIGH, 61 .gpio2 = GPIO_LEVEL_HIGH, 62 .gpio3 = GPIO_LEVEL_HIGH, 63 .gpio4 = GPIO_LEVEL_HIGH, 64 .gpio5 = GPIO_LEVEL_HIGH, 65 .gpio6 = GPIO_LEVEL_HIGH, 66 .gpio9 = GPIO_LEVEL_LOW, 67 .gpio11 = GPIO_LEVEL_HIGH, 68 .gpio12 = GPIO_LEVEL_LOW, 69 .gpio14 = GPIO_LEVEL_HIGH, 70 .gpio17 = GPIO_LEVEL_HIGH, 71 .gpio18 = GPIO_LEVEL_HIGH, 72 .gpio20 = GPIO_LEVEL_HIGH, 73 .gpio21 = GPIO_LEVEL_HIGH, 74 .gpio22 = GPIO_LEVEL_HIGH, 75 .gpio23 = GPIO_LEVEL_HIGH, 76 .gpio27 = GPIO_LEVEL_HIGH, 77 .gpio28 = GPIO_LEVEL_LOW, 78 }; 79 80 static const struct pch_gpio_set1 pch_gpio_set1_invert = { 81 .gpio7 = GPIO_INVERT, 82 .gpio10 = GPIO_INVERT, 83 .gpio13 = GPIO_INVERT, 84 }; 85 86 static const struct pch_gpio_set2 pch_gpio_set2_mode = { 87 .gpio32 = GPIO_MODE_GPIO, 88 .gpio33 = GPIO_MODE_GPIO, 89 .gpio34 = GPIO_MODE_GPIO, 90 .gpio35 = GPIO_MODE_GPIO, 91 .gpio36 = GPIO_MODE_GPIO, 92 .gpio37 = GPIO_MODE_GPIO, 93 .gpio38 = GPIO_MODE_GPIO, 94 .gpio39 = GPIO_MODE_GPIO, 95 .gpio48 = GPIO_MODE_GPIO, 96 .gpio49 = GPIO_MODE_GPIO, 97 .gpio56 = GPIO_MODE_GPIO, 98 .gpio57 = GPIO_MODE_GPIO, 99 .gpio60 = GPIO_MODE_GPIO, 100 }; 101 102 static const struct pch_gpio_set2 pch_gpio_set2_direction = { 103 .gpio32 = GPIO_DIR_OUTPUT, 104 .gpio33 = GPIO_DIR_OUTPUT, 105 .gpio34 = GPIO_DIR_OUTPUT, 106 .gpio35 = GPIO_DIR_OUTPUT, 107 .gpio36 = GPIO_DIR_OUTPUT, 108 .gpio37 = GPIO_DIR_OUTPUT, 109 .gpio38 = GPIO_DIR_OUTPUT, 110 .gpio39 = GPIO_DIR_OUTPUT, 111 .gpio48 = GPIO_DIR_OUTPUT, 112 .gpio49 = GPIO_DIR_OUTPUT, 113 .gpio56 = GPIO_DIR_OUTPUT, 114 .gpio60 = GPIO_DIR_OUTPUT, 115 }; 116 117 static const struct pch_gpio_set2 pch_gpio_set2_level = { 118 .gpio32 = GPIO_LEVEL_HIGH, 119 .gpio33 = GPIO_LEVEL_HIGH, 120 .gpio34 = GPIO_LEVEL_LOW, 121 .gpio35 = GPIO_LEVEL_LOW, 122 .gpio36 = GPIO_LEVEL_HIGH, 123 .gpio37 = GPIO_LEVEL_HIGH, 124 .gpio38 = GPIO_LEVEL_HIGH, 125 .gpio39 = GPIO_LEVEL_HIGH, 126 .gpio48 = GPIO_LEVEL_LOW, 127 .gpio49 = GPIO_LEVEL_HIGH, 128 .gpio56 = GPIO_LEVEL_HIGH, 129 .gpio57 = GPIO_LEVEL_LOW, 130 .gpio60 = GPIO_LEVEL_HIGH, 131 }; 132 133 const struct pch_gpio_map mainboard_gpio_map = { 134 .set1 = { 135 .mode = &pch_gpio_set1_mode, 136 .direction = &pch_gpio_set1_direction, 137 .level = &pch_gpio_set1_level, 138 .invert = &pch_gpio_set1_invert, 139 }, 140 .set2 = { 141 .mode = &pch_gpio_set2_mode, 142 .direction = &pch_gpio_set2_direction, 143 .level = &pch_gpio_set2_level, 144 }, 145 }; 146