summaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake/include
diff options
context:
space:
mode:
authorLi Cheng Sooi <li.cheng.sooi@intel.com>2017-01-04 09:48:39 +0800
committerAaron Durbin <adurbin@chromium.org>2017-03-09 16:38:40 +0100
commit6a740539d1005eb14d21da40d7d14ff7250da508 (patch)
treeab55bd02818ec769dfa66487b280e9426d8f5c71 /src/soc/intel/skylake/include
parent86ee4db0d89dfd53a4e153db8e89888a0c762e3e (diff)
downloadcoreboot-6a740539d1005eb14d21da40d7d14ff7250da508.tar.xz
soc/intel/skylake: Add SKL SOC PCH H GPIO support
Add SKL/KBL PCH-H GPIO settings referring from SKL PCH-H specifications to support sklrvp11. Split the gpio_defs.h into headers gpio_pch_h_defs.h and gpio_soc_defs.h for PCH-H specific and SOC specific GPIO defs respectively. Change-Id: I5eaf8d809a1244a56038cbfc29502910eb90f9f2 Signed-off-by: Li Cheng Sooi <li.cheng.sooi@intel.com> Signed-off-by: Rahul Kumar Gupta <rahul.kumarxx.gupta@intel.com> Reviewed-on: https://review.coreboot.org/18027 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/skylake/include')
-rw-r--r--src/soc/intel/skylake/include/soc/gpio_defs.h199
-rw-r--r--src/soc/intel/skylake/include/soc/gpio_pch_h_defs.h257
-rw-r--r--src/soc/intel/skylake/include/soc/gpio_soc_defs.h214
3 files changed, 476 insertions, 194 deletions
diff --git a/src/soc/intel/skylake/include/soc/gpio_defs.h b/src/soc/intel/skylake/include/soc/gpio_defs.h
index 42a409bec2..34461f2061 100644
--- a/src/soc/intel/skylake/include/soc/gpio_defs.h
+++ b/src/soc/intel/skylake/include/soc/gpio_defs.h
@@ -16,200 +16,11 @@
#ifndef _SOC_GPIO_DEFS_H_
#define _SOC_GPIO_DEFS_H_
-/*
- * There are 8 GPIO groups. GPP_A -> GPP_G and GPD. GPD is the special case
- * where that group is not so generic. So most of the fixed numbers and macros
- * are based on the GPP groups. The GPIO groups are accessed through register
- * blocks called communities.
- */
-#define GPP_A 0
-#define GPP_B 1
-#define GPP_C 2
-#define GPP_D 3
-#define GPP_E 4
-#define GPP_F 5
-#define GPP_G 6
-#define GPD 7
-#define GPIO_NUM_GROUPS 8
-#define GPIO_MAX_NUM_PER_GROUP 24
-
-#define GPIO_DWx_COUNT 2 /* DW0 and DW1 */
-/*
- * GPIOs are ordered monotonically increasing to match ACPI/OS driver.
- */
-
-/* Group A */
-#define GPP_A0 0
-#define GPP_A1 1
-#define GPP_A2 2
-#define GPP_A3 3
-#define GPP_A4 4
-#define GPP_A5 5
-#define GPP_A6 6
-#define GPP_A7 7
-#define GPP_A8 8
-#define GPP_A9 9
-#define GPP_A10 10
-#define GPP_A11 11
-#define GPP_A12 12
-#define GPP_A13 13
-#define GPP_A14 14
-#define GPP_A15 15
-#define GPP_A16 16
-#define GPP_A17 17
-#define GPP_A18 18
-#define GPP_A19 19
-#define GPP_A20 20
-#define GPP_A21 21
-#define GPP_A22 22
-#define GPP_A23 23
-/* Group B */
-#define GPP_B0 24
-#define GPP_B1 25
-#define GPP_B2 26
-#define GPP_B3 27
-#define GPP_B4 28
-#define GPP_B5 29
-#define GPP_B6 30
-#define GPP_B7 31
-#define GPP_B8 32
-#define GPP_B9 33
-#define GPP_B10 34
-#define GPP_B11 35
-#define GPP_B12 36
-#define GPP_B13 37
-#define GPP_B14 38
-#define GPP_B15 39
-#define GPP_B16 40
-#define GPP_B17 41
-#define GPP_B18 42
-#define GPP_B19 43
-#define GPP_B20 44
-#define GPP_B21 45
-#define GPP_B22 46
-#define GPP_B23 47
-/* Group C */
-#define GPP_C0 48
-#define GPP_C1 49
-#define GPP_C2 50
-#define GPP_C3 51
-#define GPP_C4 52
-#define GPP_C5 53
-#define GPP_C6 54
-#define GPP_C7 55
-#define GPP_C8 56
-#define GPP_C9 57
-#define GPP_C10 58
-#define GPP_C11 59
-#define GPP_C12 60
-#define GPP_C13 61
-#define GPP_C14 62
-#define GPP_C15 63
-#define GPP_C16 64
-#define GPP_C17 65
-#define GPP_C18 66
-#define GPP_C19 67
-#define GPP_C20 68
-#define GPP_C21 69
-#define GPP_C22 70
-#define GPP_C23 71
-/* Group D */
-#define GPP_D0 72
-#define GPP_D1 73
-#define GPP_D2 74
-#define GPP_D3 75
-#define GPP_D4 76
-#define GPP_D5 77
-#define GPP_D6 78
-#define GPP_D7 79
-#define GPP_D8 80
-#define GPP_D9 81
-#define GPP_D10 82
-#define GPP_D11 83
-#define GPP_D12 84
-#define GPP_D13 85
-#define GPP_D14 86
-#define GPP_D15 87
-#define GPP_D16 88
-#define GPP_D17 89
-#define GPP_D18 90
-#define GPP_D19 91
-#define GPP_D20 92
-#define GPP_D21 93
-#define GPP_D22 94
-#define GPP_D23 95
-/* Group E */
-#define GPP_E0 96
-#define GPP_E1 97
-#define GPP_E2 98
-#define GPP_E3 99
-#define GPP_E4 100
-#define GPP_E5 101
-#define GPP_E6 102
-#define GPP_E7 103
-#define GPP_E8 104
-#define GPP_E9 105
-#define GPP_E10 106
-#define GPP_E11 107
-#define GPP_E12 108
-#define GPP_E13 109
-#define GPP_E14 110
-#define GPP_E15 111
-#define GPP_E16 112
-#define GPP_E17 113
-#define GPP_E18 114
-#define GPP_E19 115
-#define GPP_E20 116
-#define GPP_E21 117
-#define GPP_E22 118
-#define GPP_E23 119
-/* Group F */
-#define GPP_F0 120
-#define GPP_F1 121
-#define GPP_F2 122
-#define GPP_F3 123
-#define GPP_F4 124
-#define GPP_F5 125
-#define GPP_F6 126
-#define GPP_F7 127
-#define GPP_F8 128
-#define GPP_F9 129
-#define GPP_F10 130
-#define GPP_F11 131
-#define GPP_F12 132
-#define GPP_F13 133
-#define GPP_F14 134
-#define GPP_F15 135
-#define GPP_F16 136
-#define GPP_F17 137
-#define GPP_F18 138
-#define GPP_F19 139
-#define GPP_F20 140
-#define GPP_F21 141
-#define GPP_F22 142
-#define GPP_F23 143
-/* Group G */
-#define GPP_G0 144
-#define GPP_G1 145
-#define GPP_G2 146
-#define GPP_G3 147
-#define GPP_G4 148
-#define GPP_G5 149
-#define GPP_G6 150
-#define GPP_G7 151
-/* Group GPD */
-#define GPD0 152
-#define GPD1 153
-#define GPD2 154
-#define GPD3 155
-#define GPD4 156
-#define GPD5 157
-#define GPD6 158
-#define GPD7 159
-#define GPD8 160
-#define GPD9 161
-#define GPD10 162
-#define GPD11 163
+#if IS_ENABLED(CONFIG_SKYLAKE_SOC_PCH_H)
+# include <soc/gpio_pch_h_defs.h>
+#else
+# include <soc/gpio_soc_defs.h>
+#endif
/*
* IOxAPIC IRQs for the GPIOs
diff --git a/src/soc/intel/skylake/include/soc/gpio_pch_h_defs.h b/src/soc/intel/skylake/include/soc/gpio_pch_h_defs.h
new file mode 100644
index 0000000000..e1be6f0641
--- /dev/null
+++ b/src/soc/intel/skylake/include/soc/gpio_pch_h_defs.h
@@ -0,0 +1,257 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2015 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _SOC_GPIO_PCH_H_DEFS_H_
+#define _SOC_GPIO_PCH_H_DEFS_H_
+
+/*
+ * There are 10 GPIO groups. GPP_A -> GPP_I and GPD. GPD is the special case
+ * where that group is not so generic. So most of the fixed numbers and macros
+ * are based on the GPP groups. The GPIO groups are accessed through register
+ * blocks called communities.
+ */
+#define GPP_A 0
+#define GPP_B 1
+#define GPP_C 2
+#define GPP_D 3
+#define GPP_E 4
+#define GPP_F 5
+#define GPP_G 6
+#define GPP_H 7
+#define GPP_I 8
+#define GPD 9
+#define GPIO_NUM_GROUPS 10
+#define GPIO_MAX_NUM_PER_GROUP 24
+
+#define GPIO_DWx_COUNT 2 /* DW0 and DW1 */
+/*
+ * GPIOs are ordered monotonically increasing to match ACPI/OS driver.
+ */
+
+/* Group A */
+#define GPP_A0 0
+#define GPP_A1 1
+#define GPP_A2 2
+#define GPP_A3 3
+#define GPP_A4 4
+#define GPP_A5 5
+#define GPP_A6 6
+#define GPP_A7 7
+#define GPP_A8 8
+#define GPP_A9 9
+#define GPP_A10 10
+#define GPP_A11 11
+#define GPP_A12 12
+#define GPP_A13 13
+#define GPP_A14 14
+#define GPP_A15 15
+#define GPP_A16 16
+#define GPP_A17 17
+#define GPP_A18 18
+#define GPP_A19 19
+#define GPP_A20 20
+#define GPP_A21 21
+#define GPP_A22 22
+#define GPP_A23 23
+/* Group B */
+#define GPP_B0 24
+#define GPP_B1 25
+#define GPP_B2 26
+#define GPP_B3 27
+#define GPP_B4 28
+#define GPP_B5 29
+#define GPP_B6 30
+#define GPP_B7 31
+#define GPP_B8 32
+#define GPP_B9 33
+#define GPP_B10 34
+#define GPP_B11 35
+#define GPP_B12 36
+#define GPP_B13 37
+#define GPP_B14 38
+#define GPP_B15 39
+#define GPP_B16 40
+#define GPP_B17 41
+#define GPP_B18 42
+#define GPP_B19 43
+#define GPP_B20 44
+#define GPP_B21 45
+#define GPP_B22 46
+#define GPP_B23 47
+/* Group C */
+#define GPP_C0 48
+#define GPP_C1 49
+#define GPP_C2 50
+#define GPP_C3 51
+#define GPP_C4 52
+#define GPP_C5 53
+#define GPP_C6 54
+#define GPP_C7 55
+#define GPP_C8 56
+#define GPP_C9 57
+#define GPP_C10 58
+#define GPP_C11 59
+#define GPP_C12 60
+#define GPP_C13 61
+#define GPP_C14 62
+#define GPP_C15 63
+#define GPP_C16 64
+#define GPP_C17 65
+#define GPP_C18 66
+#define GPP_C19 67
+#define GPP_C20 68
+#define GPP_C21 69
+#define GPP_C22 70
+#define GPP_C23 71
+/* Group D */
+#define GPP_D0 72
+#define GPP_D1 73
+#define GPP_D2 74
+#define GPP_D3 75
+#define GPP_D4 76
+#define GPP_D5 77
+#define GPP_D6 78
+#define GPP_D7 79
+#define GPP_D8 80
+#define GPP_D9 81
+#define GPP_D10 82
+#define GPP_D11 83
+#define GPP_D12 84
+#define GPP_D13 85
+#define GPP_D14 86
+#define GPP_D15 87
+#define GPP_D16 88
+#define GPP_D17 89
+#define GPP_D18 90
+#define GPP_D19 91
+#define GPP_D20 92
+#define GPP_D21 93
+#define GPP_D22 94
+#define GPP_D23 95
+/* Group E */
+#define GPP_E0 96
+#define GPP_E1 97
+#define GPP_E2 98
+#define GPP_E3 99
+#define GPP_E4 100
+#define GPP_E5 101
+#define GPP_E6 102
+#define GPP_E7 103
+#define GPP_E8 104
+#define GPP_E9 105
+#define GPP_E10 106
+#define GPP_E11 107
+#define GPP_E12 108
+/* Group F */
+#define GPP_F0 109
+#define GPP_F1 110
+#define GPP_F2 111
+#define GPP_F3 112
+#define GPP_F4 113
+#define GPP_F5 114
+#define GPP_F6 115
+#define GPP_F7 116
+#define GPP_F8 117
+#define GPP_F9 118
+#define GPP_F10 119
+#define GPP_F11 120
+#define GPP_F12 121
+#define GPP_F13 122
+#define GPP_F14 123
+#define GPP_F15 124
+#define GPP_F16 125
+#define GPP_F17 126
+#define GPP_F18 127
+#define GPP_F19 128
+#define GPP_F20 129
+#define GPP_F21 130
+#define GPP_F22 131
+#define GPP_F23 132
+/* Group G */
+#define GPP_G0 133
+#define GPP_G1 134
+#define GPP_G2 135
+#define GPP_G3 136
+#define GPP_G4 137
+#define GPP_G5 138
+#define GPP_G6 139
+#define GPP_G7 140
+#define GPP_G8 141
+#define GPP_G9 142
+#define GPP_G10 143
+#define GPP_G11 144
+#define GPP_G12 145
+#define GPP_G13 146
+#define GPP_G14 147
+#define GPP_G15 148
+#define GPP_G16 149
+#define GPP_G17 150
+#define GPP_G18 151
+#define GPP_G19 152
+#define GPP_G20 153
+#define GPP_G21 154
+#define GPP_G22 155
+#define GPP_G23 156
+/* Group H */
+#define GPP_H0 157
+#define GPP_H1 158
+#define GPP_H2 159
+#define GPP_H3 160
+#define GPP_H4 161
+#define GPP_H5 162
+#define GPP_H6 163
+#define GPP_H7 164
+#define GPP_H8 165
+#define GPP_H9 166
+#define GPP_H10 167
+#define GPP_H11 168
+#define GPP_H12 169
+#define GPP_H13 170
+#define GPP_H14 171
+#define GPP_H15 172
+#define GPP_H16 173
+#define GPP_H17 174
+#define GPP_H18 175
+#define GPP_H19 176
+#define GPP_H20 177
+#define GPP_H21 178
+#define GPP_H22 179
+#define GPP_H23 180
+/* Group I */
+#define GPP_I0 181
+#define GPP_I1 182
+#define GPP_I2 183
+#define GPP_I3 184
+#define GPP_I4 185
+#define GPP_I5 186
+#define GPP_I6 187
+#define GPP_I7 188
+#define GPP_I8 189
+#define GPP_I9 190
+#define GPP_I10 191
+/* Group GPD */
+#define GPD0 192
+#define GPD1 193
+#define GPD2 194
+#define GPD3 195
+#define GPD4 196
+#define GPD5 197
+#define GPD6 198
+#define GPD7 199
+#define GPD8 200
+#define GPD9 201
+#define GPD10 202
+#define GPD11 203
+#endif /* _SOC_GPIO_PCH_H_DEFS_H_ */
diff --git a/src/soc/intel/skylake/include/soc/gpio_soc_defs.h b/src/soc/intel/skylake/include/soc/gpio_soc_defs.h
new file mode 100644
index 0000000000..9ed61c7fa3
--- /dev/null
+++ b/src/soc/intel/skylake/include/soc/gpio_soc_defs.h
@@ -0,0 +1,214 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2015 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _SOC_GPIO_SOC_DEFS_H_
+#define _SOC_GPIO_SOC_DEFS_H_
+
+/*
+ * There are 8 GPIO groups. GPP_A -> GPP_G and GPD. GPD is the special case
+ * where that group is not so generic. So most of the fixed numbers and macros
+ * are based on the GPP groups. The GPIO groups are accessed through register
+ * blocks called communities.
+ */
+#define GPP_A 0
+#define GPP_B 1
+#define GPP_C 2
+#define GPP_D 3
+#define GPP_E 4
+#define GPP_F 5
+#define GPP_G 6
+#define GPD 7
+#define GPIO_NUM_GROUPS 8
+#define GPIO_MAX_NUM_PER_GROUP 24
+
+#define GPIO_DWx_COUNT 2 /* DW0 and DW1 */
+/*
+ * GPIOs are ordered monotonically increasing to match ACPI/OS driver.
+ */
+
+/* Group A */
+#define GPP_A0 0
+#define GPP_A1 1
+#define GPP_A2 2
+#define GPP_A3 3
+#define GPP_A4 4
+#define GPP_A5 5
+#define GPP_A6 6
+#define GPP_A7 7
+#define GPP_A8 8
+#define GPP_A9 9
+#define GPP_A10 10
+#define GPP_A11 11
+#define GPP_A12 12
+#define GPP_A13 13
+#define GPP_A14 14
+#define GPP_A15 15
+#define GPP_A16 16
+#define GPP_A17 17
+#define GPP_A18 18
+#define GPP_A19 19
+#define GPP_A20 20
+#define GPP_A21 21
+#define GPP_A22 22
+#define GPP_A23 23
+/* Group B */
+#define GPP_B0 24
+#define GPP_B1 25
+#define GPP_B2 26
+#define GPP_B3 27
+#define GPP_B4 28
+#define GPP_B5 29
+#define GPP_B6 30
+#define GPP_B7 31
+#define GPP_B8 32
+#define GPP_B9 33
+#define GPP_B10 34
+#define GPP_B11 35
+#define GPP_B12 36
+#define GPP_B13 37
+#define GPP_B14 38
+#define GPP_B15 39
+#define GPP_B16 40
+#define GPP_B17 41
+#define GPP_B18 42
+#define GPP_B19 43
+#define GPP_B20 44
+#define GPP_B21 45
+#define GPP_B22 46
+#define GPP_B23 47
+/* Group C */
+#define GPP_C0 48
+#define GPP_C1 49
+#define GPP_C2 50
+#define GPP_C3 51
+#define GPP_C4 52
+#define GPP_C5 53
+#define GPP_C6 54
+#define GPP_C7 55
+#define GPP_C8 56
+#define GPP_C9 57
+#define GPP_C10 58
+#define GPP_C11 59
+#define GPP_C12 60
+#define GPP_C13 61
+#define GPP_C14 62
+#define GPP_C15 63
+#define GPP_C16 64
+#define GPP_C17 65
+#define GPP_C18 66
+#define GPP_C19 67
+#define GPP_C20 68
+#define GPP_C21 69
+#define GPP_C22 70
+#define GPP_C23 71
+/* Group D */
+#define GPP_D0 72
+#define GPP_D1 73
+#define GPP_D2 74
+#define GPP_D3 75
+#define GPP_D4 76
+#define GPP_D5 77
+#define GPP_D6 78
+#define GPP_D7 79
+#define GPP_D8 80
+#define GPP_D9 81
+#define GPP_D10 82
+#define GPP_D11 83
+#define GPP_D12 84
+#define GPP_D13 85
+#define GPP_D14 86
+#define GPP_D15 87
+#define GPP_D16 88
+#define GPP_D17 89
+#define GPP_D18 90
+#define GPP_D19 91
+#define GPP_D20 92
+#define GPP_D21 93
+#define GPP_D22 94
+#define GPP_D23 95
+/* Group E */
+#define GPP_E0 96
+#define GPP_E1 97
+#define GPP_E2 98
+#define GPP_E3 99
+#define GPP_E4 100
+#define GPP_E5 101
+#define GPP_E6 102
+#define GPP_E7 103
+#define GPP_E8 104
+#define GPP_E9 105
+#define GPP_E10 106
+#define GPP_E11 107
+#define GPP_E12 108
+#define GPP_E13 109
+#define GPP_E14 110
+#define GPP_E15 111
+#define GPP_E16 112
+#define GPP_E17 113
+#define GPP_E18 114
+#define GPP_E19 115
+#define GPP_E20 116
+#define GPP_E21 117
+#define GPP_E22 118
+#define GPP_E23 119
+/* Group F */
+#define GPP_F0 120
+#define GPP_F1 121
+#define GPP_F2 122
+#define GPP_F3 123
+#define GPP_F4 124
+#define GPP_F5 125
+#define GPP_F6 126
+#define GPP_F7 127
+#define GPP_F8 128
+#define GPP_F9 129
+#define GPP_F10 130
+#define GPP_F11 131
+#define GPP_F12 132
+#define GPP_F13 133
+#define GPP_F14 134
+#define GPP_F15 135
+#define GPP_F16 136
+#define GPP_F17 137
+#define GPP_F18 138
+#define GPP_F19 139
+#define GPP_F20 140
+#define GPP_F21 141
+#define GPP_F22 142
+#define GPP_F23 143
+/* Group G */
+#define GPP_G0 144
+#define GPP_G1 145
+#define GPP_G2 146
+#define GPP_G3 147
+#define GPP_G4 148
+#define GPP_G5 149
+#define GPP_G6 150
+#define GPP_G7 151
+/* Group GPD */
+#define GPD0 152
+#define GPD1 153
+#define GPD2 154
+#define GPD3 155
+#define GPD4 156
+#define GPD5 157
+#define GPD6 158
+#define GPD7 159
+#define GPD8 160
+#define GPD9 161
+#define GPD10 162
+#define GPD11 163
+
+#endif /* _SOC_GPIO_SOC_DEFS_H_ */