1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3Device (EMMC) 4{ 5 Name (_HID, "80860F14") 6 Name (_CID, "PNP0D40") 7 Name (_UID, 1) 8 Name (_DDN, "eMMC Controller 4.5") 9 10 Name (RBUF, ResourceTemplate() 11 { 12 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 13 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 14 { 15 SCC_EMMC_IRQ 16 } 17 }) 18 19 Method (_CRS) 20 { 21 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 22 RBAS = \C0B0 23 Return (^RBUF) 24 } 25 26 Method (_STA) 27 { 28 If (\C0EN == 1) { 29 Return (0xF) 30 } Else { 31 Return (0x0) 32 } 33 } 34 35 OperationRegion (KEYS, SystemMemory, C0B1, 0x100) 36 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 37 { 38 Offset (0x84), 39 PSAT, 32, 40 } 41 42 Method (_PS3) 43 { 44 PSAT |= 3 45 PSAT |= 0 46 } 47 48 Method (_PS0) 49 { 50 PSAT &= 0xfffffffc 51 PSAT |= 0 52 } 53 54 Device (EM45) 55 { 56 /* Slot 0, Function 8 */ 57 Name (_ADR, 0x8) 58 59 Method (_RMV, 0, NotSerialized) 60 { 61 Return (0) 62 } 63 } 64} 65 66Device (PEMC) 67{ 68 Name (_ADR, 0x00100000) 69 70 OperationRegion (SDIO, PCI_Config, 0x84, 0x04) 71 Field (SDIO, WordAcc, NoLock, Preserve) 72 { 73 Offset (0x01), 74 PMEE, 1, 75 , 6, 76 PMES, 1 77 } 78 79 Method (_STA, 0, NotSerialized) 80 { 81 If (\C0EN == 1) { 82 Return (0x0) 83 } 84 Else 85 { 86 Return (0xF) 87 } 88 } 89 90 Method (_DSW, 3, NotSerialized) 91 { 92 } 93 94 Device (CARD) 95 { 96 Name (_ADR, 0x08) 97 Method (_RMV, 0, NotSerialized) 98 { 99 Return (0) 100 } 101 } 102} 103 104Device (SDIO) 105{ 106 Name (_HID, "INT33BB") 107 Name (_CID, "PNP0D40") 108 Name (_UID, 2) 109 Name (_DDN, "SDIO Controller") 110 111 Name (RBUF, ResourceTemplate() 112 { 113 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 114 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 115 { 116 SCC_SDIO_IRQ 117 } 118 }) 119 120 Method (_CRS) 121 { 122 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 123 RBAS = \C1B0 124 Return (^RBUF) 125 } 126 127 Method (_STA) 128 { 129 If (\C1EN == 1) { 130 Return (0xF) 131 } Else { 132 Return (0x0) 133 } 134 } 135 136 OperationRegion (KEYS, SystemMemory, C1B1, 0x100) 137 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 138 { 139 Offset (0x84), 140 PSAT, 32, 141 } 142 143 Method (_PS3) 144 { 145 PSAT |= 3 146 PSAT |= 0 147 } 148 149 Method (_PS0) 150 { 151 PSAT &= 0xfffffffc 152 PSAT |= 0 153 } 154} 155 156Device (SDCD) 157{ 158 Name (_HID, "INT33BB") 159 Name (_CID, "PNP0D40") 160 Name (_UID, 3) 161 Name (_DDN, "SD Card Controller") 162 163 Name (RBUF, ResourceTemplate() 164 { 165 Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0) 166 Interrupt(ResourceConsumer, Level, ActiveLow, Exclusive, , , ) 167 {SCC_SD_IRQ} /* SD Card IRQ */ 168 GpioInt(Edge, ActiveBoth, SharedAndWake, PullNone, 10000, "\\_SB.GPSE", 0, ResourceConsumer, , ) 169 {SDCARD_CD} /* SE81 */ 170 }) 171 172 Method (_CRS) 173 { 174 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 175 RBAS = \C2B0 176 Return (^RBUF) 177 } 178 179 Method (_STA) 180 { 181 If (\C2EN == 1) { 182 Return (0xF) 183 } Else { 184 Return (0x0) 185 } 186 } 187 188 OperationRegion (KEYS, SystemMemory, C2B1, 0x100) 189 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 190 { 191 Offset (0x84), 192 PSAT, 32, 193 } 194 195 Method (_PS3) 196 { 197 PSAT |= 3 198 PSAT |= 0 199 } 200 201 Method (_PS0) 202 { 203 PSAT &= 0xfffffffc 204 PSAT |= 0 205 } 206} 207