gpio.c
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 .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 .gpio16 = GPIO_MODE_GPIO, 17 .gpio19 = GPIO_MODE_GPIO, 18 .gpio20 = GPIO_MODE_GPIO, 19 .gpio21 = GPIO_MODE_GPIO, 20 .gpio22 = GPIO_MODE_GPIO, 21 .gpio23 = GPIO_MODE_GPIO, 22 .gpio24 = GPIO_MODE_GPIO, 23 .gpio25 = GPIO_MODE_GPIO, 24 .gpio26 = GPIO_MODE_GPIO, 25 .gpio27 = GPIO_MODE_GPIO, 26 .gpio28 = GPIO_MODE_GPIO, 27 }; 28 29 static const struct pch_gpio_set1 pch_gpio_set1_direction = { 30 .gpio0 = GPIO_DIR_INPUT, 31 .gpio6 = GPIO_DIR_OUTPUT, 32 .gpio7 = GPIO_DIR_OUTPUT, 33 .gpio8 = GPIO_DIR_OUTPUT, 34 .gpio9 = GPIO_DIR_OUTPUT, 35 .gpio10 = GPIO_DIR_OUTPUT, 36 .gpio12 = GPIO_DIR_OUTPUT, 37 .gpio13 = GPIO_DIR_INPUT, 38 .gpio14 = GPIO_DIR_INPUT, 39 .gpio15 = GPIO_DIR_INPUT, 40 .gpio16 = GPIO_DIR_INPUT, 41 .gpio19 = GPIO_DIR_INPUT, 42 .gpio20 = GPIO_DIR_OUTPUT, 43 .gpio21 = GPIO_DIR_INPUT, 44 .gpio22 = GPIO_DIR_INPUT, 45 .gpio23 = GPIO_DIR_INPUT, 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 .gpio6 = GPIO_LEVEL_HIGH, 55 .gpio7 = GPIO_LEVEL_LOW, 56 .gpio8 = GPIO_LEVEL_LOW, 57 .gpio9 = GPIO_LEVEL_LOW, 58 .gpio10 = GPIO_LEVEL_LOW, 59 .gpio12 = GPIO_LEVEL_LOW, 60 .gpio20 = GPIO_LEVEL_LOW, 61 .gpio24 = GPIO_LEVEL_LOW, 62 .gpio25 = GPIO_LEVEL_LOW, 63 .gpio26 = GPIO_LEVEL_HIGH, 64 .gpio27 = GPIO_LEVEL_HIGH, 65 .gpio28 = GPIO_LEVEL_LOW, 66 }; 67 68 static const struct pch_gpio_set1 pch_gpio_set1_invert = { 69 .gpio13 = GPIO_INVERT, 70 }; 71 72 static const struct pch_gpio_set1 pch_gpio_set1_blink = { 73 }; 74 75 static const struct pch_gpio_set2 pch_gpio_set2_mode = { 76 .gpio33 = GPIO_MODE_GPIO, 77 .gpio34 = GPIO_MODE_GPIO, 78 .gpio35 = GPIO_MODE_GPIO, 79 .gpio36 = GPIO_MODE_GPIO, 80 .gpio37 = GPIO_MODE_GPIO, 81 .gpio38 = GPIO_MODE_GPIO, 82 .gpio39 = GPIO_MODE_GPIO, 83 }; 84 85 static const struct pch_gpio_set2 pch_gpio_set2_direction = { 86 .gpio33 = GPIO_DIR_INPUT, 87 .gpio34 = GPIO_DIR_INPUT, 88 .gpio35 = GPIO_DIR_INPUT, 89 .gpio36 = GPIO_DIR_INPUT, 90 .gpio37 = GPIO_DIR_INPUT, 91 .gpio38 = GPIO_DIR_INPUT, 92 .gpio39 = GPIO_DIR_OUTPUT, 93 }; 94 95 static const struct pch_gpio_set2 pch_gpio_set2_level = { 96 .gpio39 = GPIO_LEVEL_HIGH, 97 }; 98 99 const struct pch_gpio_map mainboard_gpio_map = { 100 .set1 = { 101 .mode = &pch_gpio_set1_mode, 102 .direction = &pch_gpio_set1_direction, 103 .level = &pch_gpio_set1_level, 104 .blink = &pch_gpio_set1_blink, 105 .invert = &pch_gpio_set1_invert, 106 }, 107 .set2 = { 108 .mode = &pch_gpio_set2_mode, 109 .direction = &pch_gpio_set2_direction, 110 .level = &pch_gpio_set2_level, 111 }, 112 };