aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/platform
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/platform')
-rw-r--r--arch/x86/platform/ce4100/ce4100.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 4c61b52191eb..5de16e359fe6 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -27,6 +27,18 @@ static int ce4100_i8042_detect(void)
27 return 0; 27 return 0;
28} 28}
29 29
30/*
31 * The CE4100 platform has an internal 8051 Microcontroller which is
32 * responsible for signaling to the external Power Management Unit the
33 * intention to reset, reboot or power off the system. This 8051 device has
34 * its command register mapped at I/O port 0xcf9 and the value 0x4 is used
35 * to power off the system.
36 */
37static void ce4100_power_off(void)
38{
39 outb(0x4, 0xcf9);
40}
41
30#ifdef CONFIG_SERIAL_8250 42#ifdef CONFIG_SERIAL_8250
31 43
32static unsigned int mem_serial_in(struct uart_port *p, int offset) 44static unsigned int mem_serial_in(struct uart_port *p, int offset)
@@ -143,4 +155,6 @@ void __init x86_ce4100_early_setup(void)
143 x86_init.pci.init_irq = sdv_pci_init; 155 x86_init.pci.init_irq = sdv_pci_init;
144 x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck; 156 x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
145#endif 157#endif
158
159 pm_power_off = ce4100_power_off;
146} 160}