| 
									
										
										
										
											2012-11-22 22:05:06 -05:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * QEMU GMCH/ICH9 LPC PM Emulation | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *  Copyright (c) 2009 Isaku Yamahata <yamahata at valinux co jp> | 
					
						
							|  |  |  |  *                     VA Linux Systems Japan K.K. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This library is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |  * version 2 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This library is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * Lesser General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License along with this library; if not, see <http://www.gnu.org/licenses/>
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef HW_ACPI_ICH9_H
 | 
					
						
							|  |  |  | #define HW_ACPI_ICH9_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-05 17:06:20 +01:00
										 |  |  | #include "hw/acpi/acpi.h"
 | 
					
						
							| 
									
										
										
										
											2012-11-22 22:05:06 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | typedef struct ICH9LPCPMRegs { | 
					
						
							|  |  |  |     /*
 | 
					
						
							|  |  |  |      * In ich9 spec says that pm1_cnt register is 32bit width and | 
					
						
							|  |  |  |      * that the upper 16bits are reserved and unused. | 
					
						
							|  |  |  |      * PM1a_CNT_BLK = 2 in FADT so it is defined as uint16_t. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     ACPIREGS acpi_regs; | 
					
						
							| 
									
										
										
										
											2012-12-11 09:42:18 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-22 12:08:22 +01:00
										 |  |  |     MemoryRegion io; | 
					
						
							| 
									
										
										
										
											2012-11-22 13:43:17 +01:00
										 |  |  |     MemoryRegion io_gpe; | 
					
						
							| 
									
										
										
										
											2012-11-22 13:51:35 +01:00
										 |  |  |     MemoryRegion io_smi; | 
					
						
							| 
									
										
										
										
											2012-12-11 09:42:18 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-22 22:05:06 -05:00
										 |  |  |     uint32_t smi_en; | 
					
						
							|  |  |  |     uint32_t smi_sts; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     qemu_irq irq;      /* SCI */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     uint32_t pm_io_base; | 
					
						
							|  |  |  |     Notifier powerdown_notifier; | 
					
						
							|  |  |  | } ICH9LPCPMRegs; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-11 09:42:18 +01:00
										 |  |  | void ich9_pm_init(PCIDevice *lpc_pci, ICH9LPCPMRegs *pm, | 
					
						
							| 
									
										
										
										
											2013-04-24 18:37:22 +08:00
										 |  |  |                   qemu_irq sci_irq); | 
					
						
							| 
									
										
										
										
											2012-11-22 22:05:06 -05:00
										 |  |  | void ich9_pm_iospace_update(ICH9LPCPMRegs *pm, uint32_t pm_io_base); | 
					
						
							|  |  |  | extern const VMStateDescription vmstate_ich9_pm; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* HW_ACPI_ICH9_H */
 |