/ src / mainboard / intel / d510mo / gpio.c
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  };