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 .gpio6 = GPIO_MODE_GPIO, 8 .gpio7 = GPIO_MODE_GPIO, 9 .gpio8 = GPIO_MODE_GPIO, 10 .gpio9 = GPIO_MODE_GPIO, 11 .gpio10 = GPIO_MODE_GPIO, 12 .gpio12 = GPIO_MODE_GPIO, 13 .gpio13 = GPIO_MODE_GPIO, 14 .gpio14 = GPIO_MODE_GPIO, 15 .gpio15 = GPIO_MODE_GPIO, 16 .gpio19 = GPIO_MODE_GPIO, 17 .gpio21 = GPIO_MODE_GPIO, 18 .gpio24 = GPIO_MODE_GPIO, 19 .gpio25 = GPIO_MODE_GPIO, 20 .gpio26 = GPIO_MODE_GPIO, 21 .gpio27 = GPIO_MODE_GPIO, 22 .gpio28 = GPIO_MODE_GPIO, 23 }; 24 25 static const struct pch_gpio_set1 pch_gpio_set1_direction = { 26 .gpio1 = GPIO_DIR_INPUT, 27 .gpio6 = GPIO_DIR_INPUT, 28 .gpio7 = GPIO_DIR_INPUT, 29 .gpio8 = GPIO_DIR_INPUT, 30 .gpio9 = GPIO_DIR_OUTPUT, 31 .gpio10 = GPIO_DIR_OUTPUT, 32 .gpio12 = GPIO_DIR_OUTPUT, 33 .gpio13 = GPIO_DIR_OUTPUT, 34 .gpio14 = GPIO_DIR_OUTPUT, 35 .gpio15 = GPIO_DIR_OUTPUT, 36 .gpio19 = GPIO_DIR_INPUT, 37 .gpio21 = GPIO_DIR_INPUT, 38 .gpio24 = GPIO_DIR_OUTPUT, 39 .gpio25 = GPIO_DIR_OUTPUT, 40 .gpio26 = GPIO_DIR_OUTPUT, 41 .gpio27 = GPIO_DIR_OUTPUT, 42 .gpio28 = GPIO_DIR_OUTPUT, 43 }; 44 45 static const struct pch_gpio_set1 pch_gpio_set1_level = { 46 .gpio9 = GPIO_LEVEL_HIGH, 47 .gpio10 = GPIO_LEVEL_HIGH, 48 .gpio12 = GPIO_LEVEL_HIGH, 49 .gpio13 = GPIO_LEVEL_HIGH, 50 .gpio14 = GPIO_LEVEL_LOW, 51 .gpio15 = GPIO_LEVEL_LOW, 52 .gpio24 = GPIO_LEVEL_LOW, 53 .gpio25 = GPIO_LEVEL_HIGH, 54 .gpio26 = GPIO_LEVEL_HIGH, 55 .gpio27 = GPIO_LEVEL_HIGH, 56 .gpio28 = GPIO_LEVEL_LOW, 57 }; 58 59 static const struct pch_gpio_set1 pch_gpio_set1_invert = { 60 .gpio7 = GPIO_INVERT, 61 .gpio8 = GPIO_INVERT, 62 }; 63 64 static const struct pch_gpio_set1 pch_gpio_set1_blink = { 65 }; 66 67 static const struct pch_gpio_set2 pch_gpio_set2_mode = { 68 .gpio33 = GPIO_MODE_GPIO, 69 .gpio34 = GPIO_MODE_GPIO, 70 .gpio37 = GPIO_MODE_GPIO, 71 .gpio38 = GPIO_MODE_GPIO, 72 .gpio39 = GPIO_MODE_GPIO, 73 }; 74 75 static const struct pch_gpio_set2 pch_gpio_set2_direction = { 76 .gpio33 = GPIO_DIR_OUTPUT, 77 .gpio34 = GPIO_DIR_OUTPUT, 78 .gpio37 = GPIO_DIR_OUTPUT, 79 .gpio38 = GPIO_DIR_INPUT, 80 .gpio39 = GPIO_DIR_INPUT, 81 }; 82 83 static const struct pch_gpio_set2 pch_gpio_set2_level = { 84 .gpio33 = GPIO_LEVEL_LOW, 85 .gpio34 = GPIO_LEVEL_HIGH, 86 .gpio37 = GPIO_LEVEL_HIGH, 87 }; 88 89 const struct pch_gpio_map mainboard_gpio_map = { 90 .set1 = { 91 .mode = &pch_gpio_set1_mode, 92 .direction = &pch_gpio_set1_direction, 93 .level = &pch_gpio_set1_level, 94 .blink = &pch_gpio_set1_blink, 95 .invert = &pch_gpio_set1_invert, 96 }, 97 .set2 = { 98 .mode = &pch_gpio_set2_mode, 99 .direction = &pch_gpio_set2_direction, 100 .level = &pch_gpio_set2_level, 101 }, 102 }; 103