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