soc: Remove copyright notices
[coreboot.git] / src / soc / intel / tigerlake / acpi / gpio.asl
blob9bf0c6032f333d9a6afb4cdc4a24de8e6759ca01
1 /*
2  * This file is part of the coreboot project.
3  *
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; version 2 of the License.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  */
14 #include <soc/gpio_defs.h>
15 #include <soc/irq.h>
16 #include <soc/pcr_ids.h>
17 #include <intelblocks/gpio.h>
18 #include "gpio_op.asl"
20 Device (GCM0)
22         Name (_HID, CROS_GPIO_NAME)
23         Name (_UID, 0)
24         Name (_DDN, "GPIO Controller Community 0")
26         Name (RBUF, ResourceTemplate()
27         {
28                 Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM0)
29                 Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ)
30                         { GPIO_IRQ14 }
31         })
32         Method (_CRS, 0, NotSerialized)
33         {
34                 CreateDWordField (^RBUF, ^COM0._BAS, BAS0)
35                 BAS0 = ^^PCRB (PID_GPIOCOM0)
36                 Return (^RBUF)
37         }
38         Method (_STA)
39         {
40                 Return (0xF)
41         }
44 Device (GCM1)
46         Name (_HID, CROS_GPIO_NAME)
47         Name (_UID, 1)
48         Name (_DDN, "GPIO Controller Community 1")
50         Name (RBUF, ResourceTemplate()
51         {
52                 Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM1)
53                 Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ)
54                         { GPIO_IRQ14 }
55         })
56         Method (_CRS, 0, NotSerialized)
57         {
58                 CreateDWordField (^RBUF, ^COM1._BAS, BAS1)
59                 BAS1 = ^^PCRB (PID_GPIOCOM1)
60                 Return (^RBUF)
61         }
62         Method (_STA)
63         {
64                 Return (0xF)
65         }
68 Device (GCM4)
70         Name (_HID, CROS_GPIO_NAME)
71         Name (_UID, 4)
72         Name (_DDN, "GPIO Controller Community 4")
74         Name (RBUF, ResourceTemplate()
75         {
76                 Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM4)
77                 Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ)
78                         { GPIO_IRQ14 }
79         })
80         Method (_CRS, 0, NotSerialized)
81         {
82                 CreateDWordField (^RBUF, ^COM4._BAS, BAS4)
83                 BAS4 = ^^PCRB (PID_GPIOCOM4)
84                 Return (^RBUF)
85         }
86         Method (_STA)
87         {
88                 Return (0xF)
89         }
92 Device (GCM5)
94         Name (_HID, CROS_GPIO_NAME)
95         Name (_UID, 5)
96         Name (_DDN, "GPIO Controller Community 5")
98         Name (RBUF, ResourceTemplate()
99         {
100                 Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM5)
101                 Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ)
102                 { GPIO_IRQ14 }
103         })
104         Method (_CRS, 0, NotSerialized)
105         {
106                 CreateDWordField (^RBUF, ^COM5._BAS, BAS5)
107                 BAS5 = ^^PCRB (PID_GPIOCOM5)
108                 Return (^RBUF)
109         }
110         Method (_STA)
111         {
112                 Return (0xF)
113         }
117  * Get GPIO DW0 Address
118  * Arg0 - GPIO Number
119  */
120 Method (GADD, 1, NotSerialized)
122         /* GPIO Community 0 */
123         If (Arg0 >= GPIO_COM0_START && Arg0 <= GPIO_COM0_END)
124         {
125                 Local0 = PID_GPIOCOM0
126                 Local1 = Arg0 - GPIO_COM0_START
127         }
128         /* GPIO Community 1 */
129         If (Arg0 >= GPIO_COM1_START && Arg0 <= GPIO_COM1_END)
130         {
131                 Local0 = PID_GPIOCOM1
132                 Local1 = Arg0 - GPIO_COM1_START
133         }
134         /* GPIO Community 2 */
135         If (Arg0 >= GPIO_COM2_START && Arg0 <= GPIO_COM2_END)
136         {
137                 Local0 = PID_GPIOCOM2
138                 Local1 = Arg0 - GPIO_COM2_START
139         }
140         /* GPIO Community 4 */
141         If (Arg0 >= GPIO_COM4_START && Arg0 <= GPIO_COM4_END)
142         {
143                 Local0 = PID_GPIOCOM4
144                 Local1 = Arg0 - GPIO_COM4_START
145         }
146         /* GPIO Community 05*/
147         If (Arg0 >= GPIO_COM5_START && Arg0 <= GPIO_COM5_END)
148         {
149                 Local0 = PID_GPIOCOM5
150                 Local1 = Arg0 - GPIO_COM5_START
151         }
153         Local2 = PCRB(Local0) + PAD_CFG_BASE + (Local1 * 16)
154         Return (Local2)