1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3#include "southbridge/intel/i82371eb/i82371eb.h" 4 5/* Declares assorted devices that fall under this southbridge. */ 6Device (PX40) 7{ 8 Name(_ADR, 0x00040000) 9 OperationRegion (PIRQ, PCI_Config, 0x60, 0x04) 10 Field (PIRQ, ByteAcc, NoLock, Preserve) 11 { 12 PIRA, 8, 13 PIRB, 8, 14 PIRC, 8, 15 PIRD, 8 16 } 17 18 OperationRegion (S1XX, PCI_Config, 0xB2, 0x01) 19 Field (S1XX, ByteAcc, NoLock, Preserve) 20 { 21 FXS1, 8 22 } 23 24 /* PNP Motherboard Resources */ 25 Device (SYSR) 26 { 27 Name (_HID, EisaId ("PNP0C02")) 28 Name (_UID, 0x02) 29 Method (_CRS, 0, NotSerialized) 30 { 31 Name (BUF1, ResourceTemplate () 32 { 33 /* PIIX4E ports */ 34 /* Aliased DMA ports */ 35 IO (Decode16, 0x0010, 0x0010, 0x01, 0x10, ) 36 /* Aliased PIC ports */ 37 IO (Decode16, 0x0022, 0x0022, 0x01, 0x1E, ) 38 /* Aliased timer ports */ 39 IO (Decode16, 0x0050, 0x0050, 0x01, 0x04, ) 40 IO (Decode16, 0x0062, 0x0062, 0x01, 0x02, ) 41 IO (Decode16, 0x0065, 0x0065, 0x01, 0x0B, ) 42 IO (Decode16, 0x0074, 0x0074, 0x01, 0x0C, ) 43 IO (Decode16, 0x0091, 0x0091, 0x01, 0x03, ) 44 IO (Decode16, 0x00A2, 0x00A2, 0x01, 0x1E, ) 45 IO (Decode16, 0x00E0, 0x00E0, 0x01, 0x10, ) 46 IO (Decode16, 0x0294, 0x0294, 0x01, 0x04, ) 47 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x02, ) 48 IO (Decode16, 0x04D0, 0x04D0, 0x01, 0x02, ) 49 }) 50 Return (BUF1) 51 } 52 } 53 /* 8259-compatible Programmable Interrupt Controller */ 54 Device (PIC) 55 { 56 Name (_HID, EisaId ("PNP0000")) 57 Name (_CRS, ResourceTemplate () 58 { 59 IO (Decode16, 0x0020, 0x0020, 0x01, 0x02,) 60 IO (Decode16, 0x00A0, 0x00A0, 0x01, 0x02,) 61 IRQNoFlags () {2} 62 }) 63 } 64 65 /* PC-class DMA Controller */ 66 Device (DMA1) 67 { 68 Name (_HID, EisaId ("PNP0200")) 69 Name (_CRS, ResourceTemplate () 70 { 71 DMA (Compatibility, BusMaster, Transfer8,) {4} 72 IO (Decode16, 0x0000, 0x0000, 0x01, 0x10,) 73 IO (Decode16, 0x0080, 0x0080, 0x01, 0x11,) 74 IO (Decode16, 0x0094, 0x0094, 0x01, 0x0C,) 75 IO (Decode16, 0x00C0, 0x00C0, 0x01, 0x20,) 76 }) 77 } 78 79 /* PC-class System Timer */ 80 Device (TMR) 81 { 82 Name (_HID, EisaId ("PNP0100")) 83 Name (_CRS, ResourceTemplate () 84 { 85 IO (Decode16,0x0040,0x0040,0x01,0x04,) 86 IRQNoFlags () {0} 87 }) 88 } 89 90 /* AT Real-Time Clock */ 91 Device (RTC) 92 { 93 Name (_HID, EisaId ("PNP0B00")) 94 Name (_CRS, ResourceTemplate () 95 { 96 IO (Decode16,0x0070,0x0070,0x01,0x04,) 97 IRQNoFlags () {8} 98 }) 99 } 100 101 Device (SPKR) 102 { 103 Name (_HID, EisaId ("PNP0800")) 104 Name (_CRS, ResourceTemplate () 105 { 106 IO (Decode16,0x0061,0x0061,0x01,0x01,) 107 }) 108 } 109 110 /* x87-compatible Floating Point Processing Unit */ 111 Device (COPR) 112 { 113 Name (_HID, EisaId ("PNP0C04")) 114 Name (_CRS, ResourceTemplate () 115 { 116 IO (Decode16,0x00F0,0x00F0,0x01,0x10,) 117 IRQNoFlags () {13} 118 }) 119 } 120} 121Device (PX43) 122{ 123 Name (_ADR, 0x00040003) 124 125 Method (_CRS, 0, NotSerialized) 126 { 127 Name (BUF1, ResourceTemplate () 128 { 129 /* PM register ports */ 130 IO (Decode16, PM_IO_BASE, PM_IO_BASE, 0x01, 0x40, ) 131 /* SMBus register ports */ 132 IO (Decode16, SMBUS_IO_BASE, SMBUS_IO_BASE, 0x01, 0x10, ) 133 }) 134 Return (BUF1) 135 } 136} 137