soc/intel: Remove blank lines before '}' and after '{'
[coreboot2.git] / src / soc / intel / xeon_sp / acpi / gpio.asl
bloba67bdd7d5ac09555f3a81682d3f4b7e8f27eedd8
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <gpio.h>
4 #include <soc/pcr_ids.h>
5 #include <soc/irq.h>
6 #include <soc/intel/common/block/acpi/acpi/gpio_op.asl>
7 #include <soc/intel/common/acpi/pch_pcr.asl>
9 Device (GPIO)
11         Name (_HID, "INT3536")
12         Name (_UID, 0)
13         Name (_DDN, "GPIO Controller")
15         Name (RBUF, ResourceTemplate()
16         {
17                 Memory32Fixed (ReadWrite, 0, 0, COM0)
18                 Memory32Fixed (ReadWrite, 0, 0, COM1)
19                 Memory32Fixed (ReadWrite, 0, 0, COM2)
20                 Memory32Fixed (ReadWrite, 0, 0, COM3)
21                 Memory32Fixed (ReadWrite, 0, 0, COM4)
22                 Memory32Fixed (ReadWrite, 0, 0, COM5)
23                 Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ) { PCH_IRQ14 }
24         })
26         /* Current Resource Settings */
27         Method (_CRS, 0, NotSerialized)
28         {
29                 /* GPIO Community 0 */
30                 CreateDWordField (^RBUF, ^COM0._BAS, BAS0)
31                 CreateDWordField (^RBUF, ^COM0._LEN, LEN0)
32                 BAS0 = ^^PCRB (PID_GPIOCOM0)
33                 LEN0 = GPIO_BASE_SIZE
35                 /* GPIO Community 1 */
36                 CreateDWordField (^RBUF, ^COM1._BAS, BAS1)
37                 CreateDWordField (^RBUF, ^COM1._LEN, LEN1)
38                 BAS1 = ^^PCRB (PID_GPIOCOM1)
39                 LEN1 = GPIO_BASE_SIZE
41                 /* GPIO Community 2 */
42                 CreateDWordField (^RBUF, ^COM2._BAS, BAS2)
43                 CreateDWordField (^RBUF, ^COM2._LEN, LEN2)
44                 BAS2 = ^^PCRB (PID_GPIOCOM2)
45                 LEN2 = GPIO_BASE_SIZE
47                 /* GPIO Community 3 */
48                 CreateDWordField (^RBUF, ^COM3._BAS, BAS3)
49                 CreateDWordField (^RBUF, ^COM3._LEN, LEN3)
50                 BAS3 = ^^PCRB (PID_GPIOCOM3)
51                 LEN3 = GPIO_BASE_SIZE
53                 /* GPIO Community 4 */
54                 CreateDWordField (^RBUF, ^COM4._BAS, BAS4)
55                 CreateDWordField (^RBUF, ^COM4._LEN, LEN4)
56                 BAS4 = ^^PCRB (PID_GPIOCOM4)
57                 LEN4 = GPIO_BASE_SIZE
59                 /* GPIO Community 5 */
60                 CreateDWordField (^RBUF, ^COM5._BAS, BAS5)
61                 CreateDWordField (^RBUF, ^COM5._LEN, LEN5)
62                 BAS5 = ^^PCRB (PID_GPIOCOM5)
63                 LEN5 = GPIO_BASE_SIZE
65                 Return (RBUF)
66         }
68         /* Return status of power resource */
69         Method (_STA, 0, NotSerialized)
70         {
71                 Return (0xF)
72         }
76  * Get GPIO DW0 Address
77  * Arg0 - GPIO Number
78  */
79 Method (GADD, 1, NotSerialized)
81         /* GPIO Community 0 */
82         if ((Arg0 >= GPP_A0) && (Arg0 <= GPP_F23))
83         {
84                 Local0 = PID_GPIOCOM0
85                 Local1 = Arg0 - GPP_A0
86         }
88         /* GPIO Community 1 */
89         if ((Arg0 >= GPP_C0) && (Arg0 <= GPP_E12))
90         {
91                 Local0 = PID_GPIOCOM1
92                 Local1 = Arg0 - GPP_C0
93         }
95         /* GPIO Community 2 */
96         if ((Arg0 >= GPD0) && (Arg0 <= GPD11))
97         {
98                 Local0 = PID_GPIOCOM2
99                 Local1 = Arg0 - GPD0
100         }
102         /* GPIO Community 3 */
103         if ((Arg0 >= GPP_I0) && (Arg0 <= GPP_I10))
104         {
105                 Local0 = PID_GPIOCOM3
106                 Local1 = Arg0 - GPP_I0
107         }
109         /* GPIO Community 4 */
110         if ((Arg0 >= GPP_J0) && (Arg0 <= GPP_K10))
111         {
112                 Local0 = PID_GPIOCOM4
113                 Local1 = Arg0 - GPP_J0
114         }
116         /* GPIO Community 5 */
117         if ((Arg0 >= GPP_G0) && (Arg0 <= GPP_L19))
118         {
119                 Local0 = PID_GPIOCOM5
120                 Local1 = Arg0 - GPP_G0
121         }
123         Local2 = PCRB (Local0)
124         Local2 += PAD_CFG_BASE
125         Return (Local2 + (Local1 * 8))
129  * Return PCR Port ID of GPIO Communities
131  * Arg0: GPIO Community (0-5)
132  */
133 Method (GPID, 1, Serialized)
135         Switch (ToInteger (Arg0))
136         {
137                 Case (COMM_0)
138                 {
139                         Local0 = PID_GPIOCOM0
140                 }
142                 Case (COMM_1)
143                 {
144                         Local0 = PID_GPIOCOM1
145                 }
147                 Case (COMM_2)
148                 {
149                         Local0 = PID_GPIOCOM2
150                 }
152                 Case (COMM_3)
153                 {
154                         Local0 = PID_GPIOCOM3
155                 }
157                 Case (COMM_4)
158                 {
159                         Local0 = PID_GPIOCOM4
160                 }
162                 Case (COMM_5)
163                 {
164                         Local0 = PID_GPIOCOM5
165                 }
167                 Default
168                 {
169                         Return (0)
170                 }
171         }
172         Return (Local0)