// Example #5 - Com Port A

Name(\_S1, Num(x3))
Name(\_S3, Num(x1))
Name(\_S4, Num(x2))

NameSpace (\_SB) {
DefineDevice(EC0) {
	NameObject(_HID, String(“PNPxxxx”))		// id of acpi embedded ctrl
	NameObject(_CRS, 								// descrip for port 62 & 66
		Buffer{x4B x62 x00 x01 x4B x66 x00 x01 x79 x00})
	NameObject(_GPE, Num(0))					// GPE index for this EC

	// define its region in the root
DefineOperationRegion (\EC0, EmbeddedSpace, x10, x1) {
DefineFields (\ECO, AccessAny, GlobalLock, Preserve) {
	COM0, 1			// COM_ISO#
}
}
}

	Name(ISDS, Package(Zero, Num(3))	

DeviceObject(PCI0) {
NameObject(_HID, String(“PNP0A03”))	// pci id
NameObject(_BNB, Num(0))

DeviceObject(EIO) {
NameObject(_HID, String(“PNPxxxx”))	// acpi id for pass-through
						
// device for com0
DeviceObject(COM0) {
Name(_PRW, Package {Num(4), \_S3})				// wake
DefineMethod(_PS0) { Store (Zero, \ECO.COM0) } 	// on
DefineMethod(_PS3) { Store (One,  \ECO.COMO) }	// off
DefineMethod(_PSC) {
	return (Index(ISDS, \ECO.COM0))				// current
}

DefineMethod(\_GPE.L004) {					// GPE wake handler
Notify (\_SB.PCI0.COM0, 3)
}

// PnP methods…
Name(_PRS, Buffer( ?MATTSQ? ))
Method(_CRS) ?MATTSQ?
Method(_SRS) ?MATTSQ?
}
		}
	}
}