1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * Copyright (C) 2013 Google Inc. 3*4882a593Smuzhiyun * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com> 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Modified from coreboot src/soc/intel/baytrail/acpi/gpio.asl 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/* SouthCluster GPIO */ 11*4882a593SmuzhiyunDevice (GPSC) 12*4882a593Smuzhiyun{ 13*4882a593Smuzhiyun Name(_HID, "INT33FC") 14*4882a593Smuzhiyun Name(_CID, "INT33FC") 15*4882a593Smuzhiyun Name(_UID, 1) 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun Name(RBUF, ResourceTemplate() 18*4882a593Smuzhiyun { 19*4882a593Smuzhiyun Memory32Fixed(ReadWrite, 0, 0x1000, RMEM) 20*4882a593Smuzhiyun Interrupt(ResourceConsumer, Level, ActiveLow, Shared, , ,) 21*4882a593Smuzhiyun { 22*4882a593Smuzhiyun GPIO_SC_IRQ 23*4882a593Smuzhiyun } 24*4882a593Smuzhiyun }) 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun Method(_CRS) 27*4882a593Smuzhiyun { 28*4882a593Smuzhiyun CreateDwordField(^RBUF, ^RMEM._BAS, RBAS) 29*4882a593Smuzhiyun Add(IO_BASE_ADDRESS, IO_BASE_OFFSET_GPSCORE, RBAS) 30*4882a593Smuzhiyun Return (^RBUF) 31*4882a593Smuzhiyun } 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun Method(_STA) 34*4882a593Smuzhiyun { 35*4882a593Smuzhiyun Return (STA_VISIBLE) 36*4882a593Smuzhiyun } 37*4882a593Smuzhiyun} 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun/* NorthCluster GPIO */ 40*4882a593SmuzhiyunDevice (GPNC) 41*4882a593Smuzhiyun{ 42*4882a593Smuzhiyun Name(_HID, "INT33FC") 43*4882a593Smuzhiyun Name(_CID, "INT33FC") 44*4882a593Smuzhiyun Name(_UID, 2) 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun Name(RBUF, ResourceTemplate() 47*4882a593Smuzhiyun { 48*4882a593Smuzhiyun Memory32Fixed(ReadWrite, 0, 0x1000, RMEM) 49*4882a593Smuzhiyun Interrupt(ResourceConsumer, Level, ActiveLow, Shared, , ,) 50*4882a593Smuzhiyun { 51*4882a593Smuzhiyun GPIO_NC_IRQ 52*4882a593Smuzhiyun } 53*4882a593Smuzhiyun }) 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun Method(_CRS) 56*4882a593Smuzhiyun { 57*4882a593Smuzhiyun CreateDwordField(^RBUF, ^RMEM._BAS, RBAS) 58*4882a593Smuzhiyun Add(IO_BASE_ADDRESS, IO_BASE_OFFSET_GPNCORE, RBAS) 59*4882a593Smuzhiyun Return (^RBUF) 60*4882a593Smuzhiyun } 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun Method(_STA) 63*4882a593Smuzhiyun { 64*4882a593Smuzhiyun Return (STA_VISIBLE) 65*4882a593Smuzhiyun } 66*4882a593Smuzhiyun} 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun/* SUS GPIO */ 69*4882a593SmuzhiyunDevice (GPSS) 70*4882a593Smuzhiyun{ 71*4882a593Smuzhiyun Name(_HID, "INT33FC") 72*4882a593Smuzhiyun Name(_CID, "INT33FC") 73*4882a593Smuzhiyun Name(_UID, 3) 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun Name(RBUF, ResourceTemplate() 76*4882a593Smuzhiyun { 77*4882a593Smuzhiyun Memory32Fixed(ReadWrite, 0, 0x1000, RMEM) 78*4882a593Smuzhiyun Interrupt(ResourceConsumer, Level, ActiveLow, Shared, , ,) 79*4882a593Smuzhiyun { 80*4882a593Smuzhiyun GPIO_SUS_IRQ 81*4882a593Smuzhiyun } 82*4882a593Smuzhiyun }) 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun Method(_CRS) 85*4882a593Smuzhiyun { 86*4882a593Smuzhiyun CreateDwordField(^RBUF, ^RMEM._BAS, RBAS) 87*4882a593Smuzhiyun Add(IO_BASE_ADDRESS, IO_BASE_OFFSET_GPSSUS, RBAS) 88*4882a593Smuzhiyun Return (^RBUF) 89*4882a593Smuzhiyun } 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun Method(_STA) 92*4882a593Smuzhiyun { 93*4882a593Smuzhiyun Return (STA_VISIBLE) 94*4882a593Smuzhiyun } 95*4882a593Smuzhiyun} 96