| Jacob Pan | af2730f | 2010-02-12 10:31:47 -0800 | [diff] [blame] | 1 | /* | 
 | 2 |  * mrst.h: Intel Moorestown platform specific setup code | 
 | 3 |  * | 
 | 4 |  * (C) Copyright 2009 Intel Corporation | 
 | 5 |  * | 
 | 6 |  * This program is free software; you can redistribute it and/or | 
 | 7 |  * modify it under the terms of the GNU General Public License | 
 | 8 |  * as published by the Free Software Foundation; version 2 | 
 | 9 |  * of the License. | 
 | 10 |  */ | 
 | 11 | #ifndef _ASM_X86_MRST_H | 
 | 12 | #define _ASM_X86_MRST_H | 
| Feng Tang | c20b5c3 | 2010-09-13 15:08:55 +0800 | [diff] [blame] | 13 |  | 
 | 14 | #include <linux/sfi.h> | 
 | 15 |  | 
| Jacob Pan | af2730f | 2010-02-12 10:31:47 -0800 | [diff] [blame] | 16 | extern int pci_mrst_init(void); | 
| Feng Tang | 7309282 | 2010-11-10 17:29:00 +0000 | [diff] [blame] | 17 | extern int __init sfi_parse_mrtc(struct sfi_table_header *table); | 
 | 18 | extern int sfi_mrtc_num; | 
 | 19 | extern struct sfi_rtc_table_entry sfi_mrtc_array[]; | 
| Jacob Pan | af2730f | 2010-02-12 10:31:47 -0800 | [diff] [blame] | 20 |  | 
| Jacob Pan | a0c173b | 2010-05-19 12:01:24 -0700 | [diff] [blame] | 21 | /* | 
 | 22 |  * Medfield is the follow-up of Moorestown, it combines two chip solution into | 
 | 23 |  * one. Other than that it also added always-on and constant tsc and lapic | 
 | 24 |  * timers. Medfield is the platform name, and the chip name is called Penwell | 
 | 25 |  * we treat Medfield/Penwell as a variant of Moorestown. Penwell can be | 
 | 26 |  * identified via MSRs. | 
 | 27 |  */ | 
 | 28 | enum mrst_cpu_type { | 
| Alan Cox | 1a8359e | 2012-01-26 17:33:30 +0000 | [diff] [blame] | 29 | 	/* 1 was Moorestown */ | 
 | 30 | 	MRST_CPU_CHIP_PENWELL = 2, | 
| Jacob Pan | a0c173b | 2010-05-19 12:01:24 -0700 | [diff] [blame] | 31 | }; | 
 | 32 |  | 
| H. Peter Anvin | a75af58 | 2010-05-19 13:40:14 -0700 | [diff] [blame] | 33 | extern enum mrst_cpu_type __mrst_cpu_chip; | 
| Mathias Nyman | 35d4769 | 2011-11-15 14:46:52 -0800 | [diff] [blame] | 34 |  | 
 | 35 | #ifdef CONFIG_X86_INTEL_MID | 
 | 36 |  | 
| H. Peter Anvin | 55572b2 | 2010-10-07 16:42:54 -0700 | [diff] [blame] | 37 | static inline enum mrst_cpu_type mrst_identify_cpu(void) | 
| H. Peter Anvin | a75af58 | 2010-05-19 13:40:14 -0700 | [diff] [blame] | 38 | { | 
 | 39 | 	return __mrst_cpu_chip; | 
 | 40 | } | 
 | 41 |  | 
| Mathias Nyman | 35d4769 | 2011-11-15 14:46:52 -0800 | [diff] [blame] | 42 | #else /* !CONFIG_X86_INTEL_MID */ | 
 | 43 |  | 
 | 44 | #define mrst_identify_cpu()    (0) | 
 | 45 |  | 
 | 46 | #endif /* !CONFIG_X86_INTEL_MID */ | 
 | 47 |  | 
| Jacob Pan | a0c173b | 2010-05-19 12:01:24 -0700 | [diff] [blame] | 48 | enum mrst_timer_options { | 
 | 49 | 	MRST_TIMER_DEFAULT, | 
 | 50 | 	MRST_TIMER_APBT_ONLY, | 
 | 51 | 	MRST_TIMER_LAPIC_APBT, | 
 | 52 | }; | 
 | 53 |  | 
| H. Peter Anvin | 1467138 | 2010-05-19 14:37:40 -0700 | [diff] [blame] | 54 | extern enum mrst_timer_options mrst_timer_options; | 
 | 55 |  | 
| Dirk Brandewie | 0a91532 | 2011-11-10 13:42:53 +0000 | [diff] [blame] | 56 | /* | 
 | 57 |  * Penwell uses spread spectrum clock, so the freq number is not exactly | 
 | 58 |  * the same as reported by MSR based on SDM. | 
 | 59 |  */ | 
 | 60 | #define PENWELL_FSB_FREQ_83SKU         83200 | 
 | 61 | #define PENWELL_FSB_FREQ_100SKU        99840 | 
 | 62 |  | 
| Jacob Pan | 16ab539 | 2010-02-12 03:08:30 -0800 | [diff] [blame] | 63 | #define SFI_MTMR_MAX_NUM 8 | 
| Feng Tang | cf08945 | 2010-02-12 03:37:38 -0800 | [diff] [blame] | 64 | #define SFI_MRTC_MAX	8 | 
| Jacob Pan | 16ab539 | 2010-02-12 03:08:30 -0800 | [diff] [blame] | 65 |  | 
| Feng Tang | c20b5c3 | 2010-09-13 15:08:55 +0800 | [diff] [blame] | 66 | extern struct console early_mrst_console; | 
 | 67 | extern void mrst_early_console_init(void); | 
| Feng Tang | 4d03355 | 2010-09-13 15:08:56 +0800 | [diff] [blame] | 68 |  | 
 | 69 | extern struct console early_hsu_console; | 
| Mika Westerberg | b82e324 | 2011-11-10 13:18:09 +0000 | [diff] [blame] | 70 | extern void hsu_early_console_init(const char *); | 
| Feng Tang | 1da4b1c | 2010-11-09 11:22:58 +0000 | [diff] [blame] | 71 |  | 
 | 72 | extern void intel_scu_devices_create(void); | 
 | 73 | extern void intel_scu_devices_destroy(void); | 
 | 74 |  | 
| Feng Tang | 7309282 | 2010-11-10 17:29:00 +0000 | [diff] [blame] | 75 | /* VRTC timer */ | 
 | 76 | #define MRST_VRTC_MAP_SZ	(1024) | 
 | 77 | /*#define MRST_VRTC_PGOFFSET	(0xc00) */ | 
 | 78 |  | 
 | 79 | extern void mrst_rtc_init(void); | 
 | 80 |  | 
| Jacob Pan | af2730f | 2010-02-12 10:31:47 -0800 | [diff] [blame] | 81 | #endif /* _ASM_X86_MRST_H */ |