]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardClkGens/BoardClkGens.h
Vlv2TbltDevicePkg: fix ASSERT_EFI_ERROR() typos
[mirror_edk2.git] / Vlv2TbltDevicePkg / Library / MultiPlatformLib / BoardClkGens / BoardClkGens.h
CommitLineData
3cbfba02
DW
1/**@file\r
2 Clock generator setting for multiplatform.\r
3\r
4 This file includes package header files, library classes.\r
5\r
6 Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
7 \r\r
8 This program and the accompanying materials are licensed and made available under\r\r
9 the terms and conditions of the BSD License that accompanies this distribution. \r\r
10 The full text of the license may be found at \r\r
11 http://opensource.org/licenses/bsd-license.php. \r\r
12 \r\r
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r\r
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r\r
15 \r\r
16**/\r
17\r
18#ifndef _BOARD_CLK_GEN_H_\r
19#define _BOARD_CLK_GEN_H_\r
20\r
21#include <PiPei.h>\r
22#include <Library/HobLib.h>\r
23#include <Library/IoLib.h>\r
24#include <Library/DebugLib.h>\r
25#include <Library/SmbusLib.h>\r
26#include <Ppi/Smbus.h>\r
27#include <IndustryStandard/SmBus.h>\r
28#include <Guid/PlatformInfo.h>\r
29\r
30\r
31#define CLOCK_GENERATOR_ADDRESS 0xd2\r
32\r
33#define CLOCK_GENERATOR_SEETINGS_TABLET {0xB1, 0x82, 0xFF, 0xBF, 0xFF, 0x80}\r
34#define CLOCK_GENERATOR_SETTINGS_MOBILE {0xB1, 0x82, 0xFF, 0xBF, 0xFF, 0x80}\r
35#define CLOCK_GENERATOR_SETTINGS_DESKTOP {0xB1, 0x82, 0xFF, 0xBF, 0xFF, 0x80}\r
36\r
37typedef enum {\r
38 ClockGeneratorCk410,\r
39 ClockGeneratorCk505,\r
40 ClockGeneratorMax\r
41} CLOCK_GENERATOR_TYPE;\r
42\r
43typedef struct {\r
44 CLOCK_GENERATOR_TYPE ClockType;\r
45 UINT8 ClockId;\r
46 UINT8 SpreadSpectrumByteOffset;\r
47 UINT8 SpreadSpectrumBitOffset;\r
48} CLOCK_GENERATOR_DETAILS;\r
49\r
50#define MAX_CLOCK_GENERATOR_BUFFER_LENGTH 0x20\r
51\r
52//\r
53// CK410 Definitions\r
54//\r
55#define CK410_GENERATOR_ID 0x65\r
56#define CK410_GENERATOR_SPREAD_SPECTRUM_BYTE 1\r
57#define CK410_GENERATOR_SPREAD_SPECTRUM_BIT BIT0\r
58#define CK410_GENERATOR_CLOCK_FREERUN_BYTE 4\r
59#define CK410_GENERATOR_CLOCK_FREERUN_BIT (BIT0 | BIT1 | BIT2)\r
60\r
61//\r
62// CK505 Definitions\r
63//\r
64#define VF_CK505_GENERATOR_ID 0x5\r
65#define CK505_GENERATOR_ID 0x5 // Confirmed readout is 5\r
66#define CK505_GENERATOR_SPREAD_SPECTRUM_BYTE 4\r
67#define CK505_GENERATOR_SPREAD_SPECTRUM_BIT (BIT0 | BIT1)\r
68#define CK505_GENERATOR_PERCENT_SPREAD_BYTE 1\r
69#define CK505_GENERATOR_PERCENT_MASK ~(0xE)\r
70#define CK505_GENERATOR_PERCENT_250_VALUE 0xC\r
71#define CK505_GENERATOR_PERCENT_050_VALUE 0x4\r
72#define CK505_GENERATOR_PERCENT_000_VALUE 0x2\r
73\r
74//\r
75// IDT Definitions\r
76//\r
77#define IDT_GENERATOR_ID_REVA 0x1 //IDT Rev A\r
78#define IDTRevA_GENERATOR_SPREAD_SPECTRUM_BYTE 0\r
79#define IDTRevA_GENERATOR_SPREAD_SPECTRUM_BIT BIT0\r
80#define IDTRevA_GENERATOR_PERCENT_SPREAD_BYTE 5\r
81#define IDTRevA_GENERATOR_PERCENT_250_VALUE 0xF\r
82#define IDTRevA_GENERATOR_PERCENT_050_VALUE 0x3\r
83#define IDTRevA_GENERATOR_PERCENT_000_VALUE 0xE\r
84#define IDTRevA_GENERATOR_PERCENT_MASK ~(0xF)\r
85\r
86#define IDT_GENERATOR_ID_REVB 0x11 //IDT RevB\r
87#define IDT_GENERATOR_ID_REVD 0x21 //IDT RevD\r
88\r
89//\r
90// CLOCK CONTROLLER\r
91// SmBus address to read DIMM SPD\r
92//\r
93#define SMBUS_BASE_ADDRESS 0xEFA0\r
94#define SMBUS_BUS_DEV_FUNC 0x1F0300\r
95#define PLATFORM_NUM_SMBUS_RSVD_ADDRESSES 4\r
96#define SMBUS_ADDR_CH_A_1 0xA0\r
97#define SMBUS_ADDR_CH_A_2 0xA2\r
98#define SMBUS_ADDR_CH_B_1 0xA4\r
99#define SMBUS_ADDR_CH_B_2 0xA6\r
100\r
101//\r
102