summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-02-11 16:05:50 -0600
committerAaron Durbin <adurbin@chromium.org>2016-02-13 01:16:00 +0100
commitc65b8f128e25346ba01b90cb4f59d07ea84157af (patch)
tree5f402f9295d536f40f78215810fa4d1fdfb5bd45
parentada13ed4cbc519fde092dc54cda21e9d8ad94aa1 (diff)
soc/intel/apollolake: pre-evaluate gpio number values
To allow sharing macros in ASL as well as C the macros can't have complex expression because the ASL compiler does not evaluate those expressions. To that end, just pre-calculate the values. Lastly, add N_OFFSET and utilize it for symmetry. Change-Id: I546d71008e776b27ce8bcd24d2cbd2ee1b2d8020 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/13693 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--src/soc/intel/apollolake/gpio.c2
-rw-r--r--src/soc/intel/apollolake/include/soc/gpio_defs.h345
2 files changed, 175 insertions, 172 deletions
diff --git a/src/soc/intel/apollolake/gpio.c b/src/soc/intel/apollolake/gpio.c
index 33500da558..ab0e0ed9a4 100644
--- a/src/soc/intel/apollolake/gpio.c
+++ b/src/soc/intel/apollolake/gpio.c
@@ -29,7 +29,7 @@ static const struct pad_community {
.first_pad = NW_OFFSET,
}, {
.port = GPIO_NORTH,
- .first_pad = 0,
+ .first_pad = N_OFFSET,
}
};
diff --git a/src/soc/intel/apollolake/include/soc/gpio_defs.h b/src/soc/intel/apollolake/include/soc/gpio_defs.h
index b6aa7ef851..6a9863dd32 100644
--- a/src/soc/intel/apollolake/include/soc/gpio_defs.h
+++ b/src/soc/intel/apollolake/include/soc/gpio_defs.h
@@ -148,183 +148,186 @@
#define SVID0_CLK 77
/* North community pads */
-#define NW_OFFSET 78
-#define GPIO_187 NW_OFFSET + 0
-#define GPIO_188 NW_OFFSET + 1
-#define GPIO_189 NW_OFFSET + 2
-#define GPIO_190 NW_OFFSET + 3
-#define GPIO_191 NW_OFFSET + 4
-#define GPIO_192 NW_OFFSET + 5
-#define GPIO_193 NW_OFFSET + 6
-#define GPIO_194 NW_OFFSET + 7
-#define GPIO_195 NW_OFFSET + 8
-#define GPIO_196 NW_OFFSET + 9
-#define GPIO_197 NW_OFFSET + 10
-#define GPIO_198 NW_OFFSET + 11
-#define GPIO_199 NW_OFFSET + 12
-#define GPIO_200 NW_OFFSET + 13
-#define GPIO_201 NW_OFFSET + 14
-#define GPIO_202 NW_OFFSET + 15
-#define GPIO_203 NW_OFFSET + 16
-#define GPIO_204 NW_OFFSET + 17
-#define PMC_SPI_FS0 NW_OFFSET + 18
-#define PMC_SPI_FS1 NW_OFFSET + 19
-#define PMC_SPI_FS2 NW_OFFSET + 20
-#define PMC_SPI_RXD NW_OFFSET + 21
-#define PMC_SPI_TXD NW_OFFSET + 22
-#define PMC_SPI_CLK NW_OFFSET + 23
-#define PMIC_PWRGOOD NW_OFFSET + 24
-#define PMIC_RESET_B NW_OFFSET + 25
-#define GPIO_213 NW_OFFSET + 26
-#define GPIO_214 NW_OFFSET + 27
-#define GPIO_215 NW_OFFSET + 28
-#define PMIC_THERMTRIP_B NW_OFFSET + 29
-#define PMIC_STDBY NW_OFFSET + 30
-#define PROCHOT_B NW_OFFSET + 31
-#define PMIC_I2C_SCL NW_OFFSET + 32
-#define PMIC_I2C_SDA NW_OFFSET + 33
-#define GPIO_74 NW_OFFSET + 34
-#define GPIO_75 NW_OFFSET + 35
-#define GPIO_76 NW_OFFSET + 36
-#define GPIO_77 NW_OFFSET + 37
-#define GPIO_78 NW_OFFSET + 38
-#define GPIO_79 NW_OFFSET + 39
-#define GPIO_80 NW_OFFSET + 40
-#define GPIO_81 NW_OFFSET + 41
-#define GPIO_82 NW_OFFSET + 42
-#define GPIO_83 NW_OFFSET + 43
-#define GPIO_84 NW_OFFSET + 44
-#define GPIO_85 NW_OFFSET + 45
-#define GPIO_86 NW_OFFSET + 46
-#define GPIO_87 NW_OFFSET + 47
-#define GPIO_88 NW_OFFSET + 48
-#define GPIO_89 NW_OFFSET + 49
-#define GPIO_90 NW_OFFSET + 50
-#define GPIO_91 NW_OFFSET + 51
-#define GPIO_92 NW_OFFSET + 52
-#define GPIO_97 NW_OFFSET + 53
-#define GPIO_98 NW_OFFSET + 54
-#define GPIO_99 NW_OFFSET + 55
-#define GPIO_100 NW_OFFSET + 56
-#define GPIO_101 NW_OFFSET + 57
-#define GPIO_102 NW_OFFSET + 58
-#define GPIO_103 NW_OFFSET + 59
-#define FST_SPI_CLK_FB NW_OFFSET + 60
-#define GPIO_104 NW_OFFSET + 61
-#define GPIO_105 NW_OFFSET + 62
-#define GPIO_106 NW_OFFSET + 63
-#define GPIO_109 NW_OFFSET + 64
-#define GPIO_110 NW_OFFSET + 65
-#define GPIO_111 NW_OFFSET + 66
-#define GPIO_112 NW_OFFSET + 67
-#define GPIO_113 NW_OFFSET + 68
-#define GPIO_116 NW_OFFSET + 69
-#define GPIO_117 NW_OFFSET + 70
-#define GPIO_118 NW_OFFSET + 71
-#define GPIO_119 NW_OFFSET + 72
-#define GPIO_120 NW_OFFSET + 73
-#define GPIO_121 NW_OFFSET + 74
-#define GPIO_122 NW_OFFSET + 75
-#define GPIO_123 NW_OFFSET + 76
+#define GPIO_187 78
+#define GPIO_188 79
+#define GPIO_189 80
+#define GPIO_190 81
+#define GPIO_191 82
+#define GPIO_192 83
+#define GPIO_193 84
+#define GPIO_194 85
+#define GPIO_195 86
+#define GPIO_196 87
+#define GPIO_197 88
+#define GPIO_198 89
+#define GPIO_199 90
+#define GPIO_200 91
+#define GPIO_201 92
+#define GPIO_202 93
+#define GPIO_203 94
+#define GPIO_204 95
+#define PMC_SPI_FS0 96
+#define PMC_SPI_FS1 97
+#define PMC_SPI_FS2 98
+#define PMC_SPI_RXD 99
+#define PMC_SPI_TXD 100
+#define PMC_SPI_CLK 101
+#define PMIC_PWRGOOD 102
+#define PMIC_RESET_B 103
+#define GPIO_213 104
+#define GPIO_214 105
+#define GPIO_215 106
+#define PMIC_THERMTRIP_B 107
+#define PMIC_STDBY 108
+#define PROCHOT_B 109
+#define PMIC_I2C_SCL 110
+#define PMIC_I2C_SDA 111
+#define GPIO_74 112
+#define GPIO_75 113
+#define GPIO_76 114
+#define GPIO_77 115
+#define GPIO_78 116
+#define GPIO_79 117
+#define GPIO_80 118
+#define GPIO_81 119
+#define GPIO_82 120
+#define GPIO_83 121
+#define GPIO_84 122
+#define GPIO_85 123
+#define GPIO_86 124
+#define GPIO_87 125
+#define GPIO_88 126
+#define GPIO_89 127
+#define GPIO_90 128
+#define GPIO_91 129
+#define GPIO_92 130
+#define GPIO_97 131
+#define GPIO_98 132
+#define GPIO_99 133
+#define GPIO_100 134
+#define GPIO_101 135
+#define GPIO_102 136
+#define GPIO_103 137
+#define FST_SPI_CLK_FB 138
+#define GPIO_104 139
+#define GPIO_105 140
+#define GPIO_106 141
+#define GPIO_109 142
+#define GPIO_110 143
+#define GPIO_111 144
+#define GPIO_112 145
+#define GPIO_113 146
+#define GPIO_116 147
+#define GPIO_117 148
+#define GPIO_118 149
+#define GPIO_119 150
+#define GPIO_120 151
+#define GPIO_121 152
+#define GPIO_122 153
+#define GPIO_123 154
/* West community pads */
-#define W_OFFSET (NW_OFFSET + 77)
-#define GPIO_124 W_OFFSET + 0
-#define GPIO_125 W_OFFSET + 1
-#define GPIO_126 W_OFFSET + 2
-#define GPIO_127 W_OFFSET + 3
-#define GPIO_128 W_OFFSET + 4
-#define GPIO_129 W_OFFSET + 5
-#define GPIO_130 W_OFFSET + 6
-#define GPIO_131 W_OFFSET + 7
-#define GPIO_132 W_OFFSET + 8
-#define GPIO_133 W_OFFSET + 9
-#define GPIO_134 W_OFFSET + 10
-#define GPIO_135 W_OFFSET + 11
-#define GPIO_136 W_OFFSET + 12
-#define GPIO_137 W_OFFSET + 13
-#define GPIO_138 W_OFFSET + 14
-#define GPIO_139 W_OFFSET + 15
-#define GPIO_146 W_OFFSET + 16
-#define GPIO_147 W_OFFSET + 17
-#define GPIO_148 W_OFFSET + 18
-#define GPIO_149 W_OFFSET + 19
-#define GPIO_150 W_OFFSET + 20
-#define GPIO_151 W_OFFSET + 21
-#define GPIO_152 W_OFFSET + 22
-#define GPIO_153 W_OFFSET + 23
-#define GPIO_154 W_OFFSET + 24
-#define GPIO_155 W_OFFSET + 25
-#define GPIO_209 W_OFFSET + 26
-#define GPIO_210 W_OFFSET + 27
-#define GPIO_211 W_OFFSET + 28
-#define GPIO_212 W_OFFSET + 29
-#define OSC_CLK_OUT_0 W_OFFSET + 30
-#define OSC_CLK_OUT_1 W_OFFSET + 31
-#define OSC_CLK_OUT_2 W_OFFSET + 32
-#define OSC_CLK_OUT_3 W_OFFSET + 33
-#define OSC_CLK_OUT_4 W_OFFSET + 34
-#define PMU_AC_PRESENT W_OFFSET + 35
-#define PMU_BATLOW_B W_OFFSET + 36
-#define PMU_PLTRST_B W_OFFSET + 37
-#define PMU_PWRBTN_B W_OFFSET + 38
-#define PMU_RESETBUTTON_B W_OFFSET + 39
-#define PMU_SLP_S0_B W_OFFSET + 40
-#define PMU_SLP_S3_B W_OFFSET + 41
-#define PMU_SLP_S4_B W_OFFSET + 42
-#define PMU_SUSCLK W_OFFSET + 43
-#define PMU_WAKE_B W_OFFSET + 44
-#define SUS_STAT_B W_OFFSET + 45
-#define SUSPWRDNACK W_OFFSET + 46
+#define GPIO_124 155
+#define GPIO_125 156
+#define GPIO_126 157
+#define GPIO_127 158
+#define GPIO_128 159
+#define GPIO_129 160
+#define GPIO_130 161
+#define GPIO_131 162
+#define GPIO_132 163
+#define GPIO_133 164
+#define GPIO_134 165
+#define GPIO_135 166
+#define GPIO_136 167
+#define GPIO_137 168
+#define GPIO_138 169
+#define GPIO_139 170
+#define GPIO_146 171
+#define GPIO_147 172
+#define GPIO_148 173
+#define GPIO_149 174
+#define GPIO_150 175
+#define GPIO_151 176
+#define GPIO_152 177
+#define GPIO_153 178
+#define GPIO_154 179
+#define GPIO_155 180
+#define GPIO_209 181
+#define GPIO_210 182
+#define GPIO_211 183
+#define GPIO_212 184
+#define OSC_CLK_OUT_0 185
+#define OSC_CLK_OUT_1 186
+#define OSC_CLK_OUT_2 187
+#define OSC_CLK_OUT_3 188
+#define OSC_CLK_OUT_4 189
+#define PMU_AC_PRESENT 190
+#define PMU_BATLOW_B 191
+#define PMU_PLTRST_B 192
+#define PMU_PWRBTN_B 193
+#define PMU_RESETBUTTON_B 194
+#define PMU_SLP_S0_B 195
+#define PMU_SLP_S3_B 196
+#define PMU_SLP_S4_B 197
+#define PMU_SUSCLK 198
+#define PMU_WAKE_B 199
+#define SUS_STAT_B 200
+#define SUSPWRDNACK 201
/* Southwest community pads */
-#define SW_OFFSET (W_OFFSET + 47)
-#define GPIO_205 SW_OFFSET + 0
-#define GPIO_206 SW_OFFSET + 1
-#define GPIO_207 SW_OFFSET + 2
-#define GPIO_208 SW_OFFSET + 3
-#define GPIO_156 SW_OFFSET + 4
-#define GPIO_157 SW_OFFSET + 5
-#define GPIO_158 SW_OFFSET + 6
-#define GPIO_159 SW_OFFSET + 7
-#define GPIO_160 SW_OFFSET + 8
-#define GPIO_161 SW_OFFSET + 9
-#define GPIO_162 SW_OFFSET + 10
-#define GPIO_163 SW_OFFSET + 11
-#define GPIO_164 SW_OFFSET + 12
-#define GPIO_165 SW_OFFSET + 13
-#define GPIO_166 SW_OFFSET + 14
-#define GPIO_167 SW_OFFSET + 15
-#define GPIO_168 SW_OFFSET + 16
-#define GPIO_169 SW_OFFSET + 17
-#define GPIO_170 SW_OFFSET + 18
-#define GPIO_171 SW_OFFSET + 19
-#define GPIO_172 SW_OFFSET + 20
-#define GPIO_179 SW_OFFSET + 21
-#define GPIO_173 SW_OFFSET + 22
-#define GPIO_174 SW_OFFSET + 23
-#define GPIO_175 SW_OFFSET + 24
-#define GPIO_176 SW_OFFSET + 25
-#define GPIO_177 SW_OFFSET + 26
-#define GPIO_178 SW_OFFSET + 27
-#define GPIO_186 SW_OFFSET + 28
-#define GPIO_182 SW_OFFSET + 29
-#define GPIO_183 SW_OFFSET + 30
-#define SMB_ALERTB SW_OFFSET + 31
-#define SMB_CLK SW_OFFSET + 32
-#define SMB_DATA SW_OFFSET + 33
-#define LPC_ILB_SERIRQ SW_OFFSET + 34
-#define LPC_CLKOUT0 SW_OFFSET + 35
-#define LPC_CLKOUT1 SW_OFFSET + 36
-#define LPC_AD0 SW_OFFSET + 37
-#define LPC_AD1 SW_OFFSET + 38
-#define LPC_AD2 SW_OFFSET + 39
-#define LPC_AD3 SW_OFFSET + 40
-#define LPC_CLKRUNB SW_OFFSET + 41
-#define LPC_FRAMEB SW_OFFSET + 42
+#define GPIO_205 202
+#define GPIO_206 203
+#define GPIO_207 204
+#define GPIO_208 205
+#define GPIO_156 206
+#define GPIO_157 207
+#define GPIO_158 208
+#define GPIO_159 209
+#define GPIO_160 210
+#define GPIO_161 211
+#define GPIO_162 212
+#define GPIO_163 213
+#define GPIO_164 214
+#define GPIO_165 215
+#define GPIO_166 216
+#define GPIO_167 217
+#define GPIO_168 218
+#define GPIO_169 219
+#define GPIO_170 220
+#define GPIO_171 221
+#define GPIO_172 222
+#define GPIO_179 223
+#define GPIO_173 224
+#define GPIO_174 225
+#define GPIO_175 226
+#define GPIO_176 227
+#define GPIO_177 228
+#define GPIO_178 229
+#define GPIO_186 230
+#define GPIO_182 231
+#define GPIO_183 232
+#define SMB_ALERTB 233
+#define SMB_CLK 234
+#define SMB_DATA 235
+#define LPC_ILB_SERIRQ 236
+#define LPC_CLKOUT0 237
+#define LPC_CLKOUT1 238
+#define LPC_AD0 239
+#define LPC_AD1 240
+#define LPC_AD2 241
+#define LPC_AD3 242
+#define LPC_CLKRUNB 243
+#define LPC_FRAMEB 244
+
+#define TOTAL_PADS 245
+#define N_OFFSET GPIO_0
+#define NW_OFFSET GPIO_187
+#define W_OFFSET GPIO_124
+#define SW_OFFSET GPIO_205
/* Macros for translating a global pad offset to a local offset */
-#define PAD_N(pad) (pad)
+#define PAD_N(pad) (pad - N_OFFSET)
#define PAD_NW(pad) (pad - NW_OFFSET)
#define PAD_W(pad) (pad - W_OFFSET)
#define PAD_SW(pad) (pad - SW_OFFSET)