blob: 05a4cf21f47ca760b54eebaf651ab0b16fce825e [file] [log] [blame]
Angel Pons89ab2502020-04-03 01:22:28 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +01002
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +01003#include <stdint.h>
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +01004#include <arch/io.h>
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +01005#include <ec/acpi/ec.h>
Kyösti Mälkki1a1b04e2020-01-07 22:34:33 +02006#include <device/smbus_host.h>
Angel Pons95de2312020-02-17 13:08:53 +01007#include <northbridge/intel/ironlake/ironlake.h>
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +01008
Arthur Heymans39f8a1a2019-10-02 17:13:02 +02009const struct southbridge_usb_port mainboard_usb_ports[] = {
10 /* Enabled, Current table lookup index, OC map */
11 { 1, IF1_557, 0 },
12 { 1, IF1_55F, 1 },
13 { 1, IF1_74B, 3 },
14 { 1, IF1_74B, 3 },
15 { 1, IF1_557, 3 },
16 { 1, IF1_14B, 3 },
17 { 1, IF1_74B, 3 },
18 { 1, IF1_74B, 3 },
19 { 1, IF1_74B, 4 },
20 { 1, IF1_74B, 5 },
21 { 1, IF1_55F, 7 },
22 { 1, IF1_55F, 7 },
23 { 1, IF1_557, 7 },
24 { 1, IF1_55F, 7 },
25};
26
Vladimir Serbinenko9817a372014-02-19 22:07:12 +010027static void set_fsb_frequency(void)
28{
29 u8 block[5];
30 u16 fsbfreq = 62879;
31 smbus_block_read(0x69, 0, 5, block);
32 block[0] = fsbfreq;
33 block[1] = fsbfreq >> 8;
34
35 smbus_block_write(0x69, 0, 5, block);
36}
37
Arthur Heymanscea4fd92019-10-03 08:54:35 +020038void mainboard_pre_raminit(void)
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010039{
Vladimir Serbinenko9817a372014-02-19 22:07:12 +010040 set_fsb_frequency();
Arthur Heymanscea4fd92019-10-03 08:54:35 +020041}
Vladimir Serbinenko9817a372014-02-19 22:07:12 +010042
Arthur Heymanscea4fd92019-10-03 08:54:35 +020043void mainboard_get_spd_map(u8 *spd_addrmap)
44{
45 spd_addrmap[0] = 0x50;
46 spd_addrmap[2] = 0x51;
Vladimir Serbinenko9bf05de2013-11-14 19:11:19 +010047}