blob: 33fcb6bfb737f5094db1debedfafee8ed3deeebe [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _SOC_ELKHARTLAKE_GPIO_SOC_DEFS_H_
#define _SOC_ELKHARTLAKE_GPIO_SOC_DEFS_H_
/*
* 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_B 0x0
#define GPP_T 0x1
#define GPP_D 0x2
#define GPP_A 0x3
#define GPP_R 0x4
#define GPP_V 0x5
#define GPD 0x6
#define GPP_H 0x7
#define GPP_U 0x8
#define VGPIO 0x9
#define GPP_F 0xA
#define GPP_C 0xB
#define GPP_E 0xC
#define GPP_G 0xD
#define GPP_S 0xE
#define GPIO_NUM_GROUPS 15
#define GPIO_MAX_NUM_PER_GROUP 32
#define SD_PWR_EN_PIN GPP_H17
/*
* GPIOs are ordered monotonically increasing to match ACPI/OS driver.
*/
/* Group B */
#define GPP_B0 0
#define GPP_B1 1
#define GPP_B2 2
#define GPP_B3 3
#define GPP_B4 4
#define GPP_B5 5
#define GPP_B6 6
#define GPP_B7 7
#define GPP_B8 8
#define GPP_B9 9
#define GPP_B10 10
#define GPP_B11 11
#define GPP_B12 12
#define GPP_B13 13
#define GPP_B14 14
#define GPP_B15 15
#define GPP_B16 16
#define GPP_B17 17
#define GPP_B18 18
#define GPP_B19 19
#define GPP_B20 20
#define GPP_B21 21
#define GPP_B22 22
#define GPP_B23 23
#define GPIO_RSVD_0 24
#define GPIO_RSVD_1 25
/* Group T */
#define GPP_T0 26
#define GPP_T1 27
#define GPP_T2 28
#define GPP_T3 29
#define GPP_T4 30
#define GPP_T5 31
#define GPP_T6 32
#define GPP_T7 33
#define GPP_T8 34
#define GPP_T9 35
#define GPP_T10 36
#define GPP_T11 37
#define GPP_T12 38
#define GPP_T13 39
#define GPP_T14 40
#define GPP_T15 41
/* Group G */
#define GPP_G0 42
#define GPP_G1 43
#define GPP_G2 44
#define GPP_G3 45
#define GPP_G4 46
#define GPP_G5 47
#define GPP_G6 48
#define GPP_G7 49
#define GPP_G8 50
#define GPP_G9 51
#define GPP_G10 52
#define GPP_G11 53
#define GPP_G12 54
#define GPP_G13 55
#define GPP_G14 56
#define GPP_G15 57
#define GPP_G16 58
#define GPP_G17 59
#define GPP_G18 60
#define GPP_G19 61
#define GPP_G20 62
#define GPP_G21 63
#define GPP_G22 64
#define GPP_G23 65
#define GPIO_RSVD_2 66
#define GPIO_COM0_START GPP_B0
#define GPIO_COM0_END GPIO_RSVD_2
#define NUM_GPIO_COM0_PADS (GPIO_COM0_END - GPIO_COM0_START + 1)
/* Group V */
#define GPP_V0 67
#define GPP_V1 68
#define GPP_V2 69
#define GPP_V3 70
#define GPP_V4 71
#define GPP_V5 72
#define GPP_V6 73
#define GPP_V7 74
#define GPP_V8 75
#define GPP_V9 76
#define GPP_V10 77
#define GPP_V11 78
#define GPP_V12 79
#define GPP_V13 80
#define GPP_V14 81
#define GPP_V15 82
/* Group H */
#define GPP_H0 83
#define GPP_H1 84
#define GPP_H2 85
#define GPP_H3 86
#define GPP_H4 87
#define GPP_H5 88
#define GPP_H6 89
#define GPP_H7 90
#define GPP_H8 91
#define GPP_H9 92
#define GPP_H10 93
#define GPP_H11 94
#define GPP_H12 95
#define GPP_H13 96
#define GPP_H14 97
#define GPP_H15 98
#define GPP_H16 99
#define GPP_H17 100
#define GPP_H18 101
#define GPP_H19 102
#define GPP_H20 103
#define GPP_H21 104
#define GPP_H22 105
#define GPP_H23 106
/* Group D */
#define GPP_D0 107
#define GPP_D1 108
#define GPP_D2 109
#define GPP_D3 110
#define GPP_D4 111
#define GPP_D5 112
#define GPP_D6 113
#define GPP_D7 114
#define GPP_D8 115
#define GPP_D9 116
#define GPP_D10 117
#define GPP_D11 118
#define GPP_D12 119
#define GPP_D13 120
#define GPP_D14 121
#define GPP_D15 122
#define GPP_D16 123
#define GPP_D17 124
#define GPP_D18 125
#define GPP_D19 126
#define GPIO_RSVD_3 127
/* Group U */
#define GPP_U0 128
#define GPP_U1 129
#define GPP_U2 130
#define GPP_U3 131
#define GPP_U4 132
#define GPP_U5 133
#define GPP_U6 134
#define GPP_U7 135
#define GPP_U8 136
#define GPP_U9 137
#define GPP_U10 138
#define GPP_U11 139
#define GPP_U12 140
#define GPP_U13 141
#define GPP_U14 142
#define GPP_U15 143
#define GPP_U16 144
#define GPP_U17 145
#define GPP_U18 146
#define GPP_U19 147
#define GPIO_RSVD_4 148
#define GPIO_RSVD_5 149
#define GPIO_RSVD_6 150
#define GPIO_RSVD_7 151
/* Group VGPIO */
#define VGPIO_0 152
#define VGPIO_4 153
#define VGPIO_5 154
#define VGPIO_6 155
#define VGPIO_7 156
#define VGPIO_8 157
#define VGPIO_9 158
#define VGPIO_10 159
#define VGPIO_11 160
#define VGPIO_12 161
#define VGPIO_13 162
#define VGPIO_18 163
#define VGPIO_19 164
#define VGPIO_20 165
#define VGPIO_21 166
#define VGPIO_22 167
#define VGPIO_23 168
#define VGPIO_24 169
#define VGPIO_25 170
#define VGPIO_30 171
#define VGPIO_31 172
#define VGPIO_32 173
#define VGPIO_33 174
#define VGPIO_34 175
#define VGPIO_35 176
#define VGPIO_36 177
#define VGPIO_37 178
#define VGPIO_39 179
#define GPIO_COM1_START GPP_V0
#define GPIO_COM1_END VGPIO_39
#define NUM_GPIO_COM1_PADS (GPIO_COM1_END - GPIO_COM1_START + 1)
/* Group GPD */
#define GPD0 180
#define GPD1 181
#define GPD2 182
#define GPD3 183
#define GPD4 184
#define GPD5 185
#define GPD6 186
#define GPD7 187
#define GPD8 188
#define GPD9 189
#define GPD10 190
#define GPD11 191
#define GPIO_RSVD_8 192
#define GPIO_RSVD_9 193
#define GPIO_RSVD_10 194
#define GPIO_RSVD_11 195
#define GPIO_RSVD_12 196
#define GPIO_COM2_START GPD0
#define GPIO_COM2_END GPIO_RSVD_12
#define NUM_GPIO_COM2_PADS (GPIO_COM2_END - GPIO_COM2_START + 1)
/* Group S */
#define GPIO_RSVD_13 197
#define GPIO_RSVD_14 198
#define GPIO_RSVD_15 199
#define GPIO_RSVD_16 200
#define GPIO_RSVD_17 201
#define GPIO_RSVD_18 202
#define GPIO_RSVD_19 203
#define GPIO_RSVD_20 204
#define GPIO_RSVD_21 205
#define GPIO_RSVD_22 206
#define GPIO_RSVD_23 207
#define GPIO_RSVD_24 208
#define GPIO_RSVD_25 209
#define GPIO_RSVD_26 210
#define GPIO_RSVD_27 211
#define GPIO_RSVD_28 212
#define GPIO_RSVD_29 213
#define GPP_S0 214
#define GPP_S1 215
/* Group A */
#define GPP_A0 216
#define GPP_A1 217
#define GPP_A2 218
#define GPP_A3 219
#define GPP_A4 220
#define GPP_A5 221
#define GPP_A6 222
#define GPP_A7 223
#define GPP_A8 224
#define GPP_A9 225
#define GPP_A10 226
#define GPP_A11 227
#define GPP_A12 228
#define GPP_A13 229
#define GPP_A14 230
#define GPP_A15 231
#define GPP_A16 232
#define GPP_A17 233
#define GPP_A18 234
#define GPP_A19 235
#define GPP_A20 236
#define GPP_A21 237
#define GPP_A22 238
#define GPP_A23 239
/* Group VGPIO 3 */
#define VGPIO_USB_0 240
#define VGPIO_USB_1 241
#define VGPIO_USB_2 242
#define VGPIO_USB_3 243
#define GPIO_COM3_START GPIO_RSVD_13
#define GPIO_COM3_END VGPIO_USB_3
#define NUM_GPIO_COM3_PADS (GPIO_COM3_END - GPIO_COM3_START + 1)
/* Group C */
#define GPP_C0 244
#define GPP_C1 245
#define GPP_C2 246
#define GPP_C3 247
#define GPP_C4 248
#define GPP_C5 249
#define GPP_C6 250
#define GPP_C7 251
#define GPP_C8 252
#define GPP_C9 253
#define GPP_C10 254
#define GPP_C11 255
#define GPP_C12 256
#define GPP_C13 257
#define GPP_C14 258
#define GPP_C15 259
#define GPP_C16 260
#define GPP_C17 261
#define GPP_C18 262
#define GPP_C19 263
#define GPP_C20 264
#define GPP_C21 265
#define GPP_C22 266
#define GPP_C23 267
/* Group F */
#define GPP_F0 268
#define GPP_F1 269
#define GPP_F2 270
#define GPP_F3 271
#define GPP_F4 272
#define GPP_F5 273
#define GPP_F6 274
#define GPP_F7 275
#define GPP_F8 276
#define GPP_F9 277
#define GPP_F10 278
#define GPP_F11 279
#define GPP_F12 280
#define GPP_F13 281
#define GPP_F14 282
#define GPP_F15 283
#define GPP_F16 284
#define GPP_F17 285
#define GPP_F18 286
#define GPP_F19 287
#define GPP_F20 288
#define GPP_F21 289
#define GPP_F22 290
#define GPP_F23 291
#define GPIO_RSVD_30 292
#define GPIO_RSVD_31 293
#define GPIO_RSVD_32 294
#define GPIO_RSVD_33 295
#define GPIO_RSVD_34 296
#define GPIO_RSVD_35 297
#define GPIO_RSVD_36 298
/* Group E */
#define GPP_E0 299
#define GPP_E1 300
#define GPP_E2 301
#define GPP_E3 302
#define GPP_E4 303
#define GPP_E5 304
#define GPP_E6 305
#define GPP_E7 306
#define GPP_E8 307
#define GPP_E9 308
#define GPP_E10 309
#define GPP_E11 310
#define GPP_E12 311
#define GPP_E13 312
#define GPP_E14 313
#define GPP_E15 314
#define GPP_E16 315
#define GPP_E17 316
#define GPP_E18 317
#define GPP_E19 318
#define GPP_E20 319
#define GPP_E21 320
#define GPP_E22 321
#define GPP_E23 322
#define GPIO_COM4_START GPP_C0
#define GPIO_COM4_END GPP_E23
#define NUM_GPIO_COM4_PADS (GPIO_COM4_END - GPIO_COM4_START + 1)
/* Group R */
#define GPP_R0 323
#define GPP_R1 324
#define GPP_R2 325
#define GPP_R3 326
#define GPP_R4 327
#define GPP_R5 328
#define GPP_R6 329
#define GPP_R7 330
#define GPIO_COM5_START GPP_R0
#define GPIO_COM5_END GPP_R7
#define NUM_GPIO_COM5_PADS (GPIO_COM5_END - GPIO_COM5_START + 1)
#define TOTAL_PADS 331
#define COMM_0 0
#define COMM_1 1
#define COMM_2 2
#define COMM_3 3
#define COMM_4 4
#define COMM_5 5
#define TOTAL_GPIO_COMM 6
#endif