blob: 0ec97bd05d2aedb126c903215daa956c78119dea [file] [log] [blame]
Angel Pons182dbde2020-04-02 23:49:05 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Stefan Reinauer8e073822012-04-04 00:07:22 +02002
3#ifndef SOUTHBRIDGE_INTEL_BD82X6X_CHIP_H
4#define SOUTHBRIDGE_INTEL_BD82X6X_CHIP_H
5
Arthur Heymansebf201b2019-05-28 13:51:36 +02006#include <southbridge/intel/common/spi.h>
Angel Ponsaf4bd562021-12-28 13:05:56 +01007#include <types.h>
Keith Hui943b5402024-01-22 20:11:24 -05008#include <southbridge/intel/bd82x6x/pch.h>
Elyes HAOUASc4e41932018-11-01 11:29:50 +01009
Stefan Reinauer8e073822012-04-04 00:07:22 +020010struct southbridge_intel_bd82x6x_config {
11 /**
Stefan Reinauer8e073822012-04-04 00:07:22 +020012 * GPI Routing configuration
13 *
14 * Only the lower two bits have a meaning:
15 * 00: No effect
16 * 01: SMI# (if corresponding ALT_GPI_SMI_EN bit is also set)
17 * 10: SCI (if corresponding GPIO_EN bit is also set)
18 * 11: reserved
19 */
20 uint8_t gpi0_routing;
21 uint8_t gpi1_routing;
22 uint8_t gpi2_routing;
23 uint8_t gpi3_routing;
24 uint8_t gpi4_routing;
25 uint8_t gpi5_routing;
26 uint8_t gpi6_routing;
27 uint8_t gpi7_routing;
28 uint8_t gpi8_routing;
29 uint8_t gpi9_routing;
30 uint8_t gpi10_routing;
31 uint8_t gpi11_routing;
32 uint8_t gpi12_routing;
33 uint8_t gpi13_routing;
34 uint8_t gpi14_routing;
35 uint8_t gpi15_routing;
36
37 uint32_t gpe0_en;
38 uint16_t alt_gp_smi_en;
39
40 /* IDE configuration */
Stefan Reinauer8e073822012-04-04 00:07:22 +020041 uint8_t sata_port_map;
Duncan Lauriecfb64bd2012-07-16 16:16:31 -070042 uint32_t sata_port0_gen3_tx;
43 uint32_t sata_port1_gen3_tx;
Stefan Reinauer8e073822012-04-04 00:07:22 +020044
Shawn Nematbakhshc9fc0292013-03-14 10:44:13 -070045 /**
46 * SATA Interface Speed Support Configuration
47 *
48 * Only the lower two bits have a meaning:
49 * 00 - No effect (leave as chip default)
50 * 01 - 1.5 Gb/s maximum speed
51 * 10 - 3.0 Gb/s maximum speed
52 * 11 - 6.0 Gb/s maximum speed
53 */
54 uint8_t sata_interface_speed_support;
55
Stefan Reinauer8e073822012-04-04 00:07:22 +020056 uint32_t gen1_dec;
57 uint32_t gen2_dec;
58 uint32_t gen3_dec;
59 uint32_t gen4_dec;
Duncan Laurieb9fe01c2012-04-27 10:30:51 -070060
61 /* Enable linear PCIe Root Port function numbers starting at zero */
Angel Ponsaf4bd562021-12-28 13:05:56 +010062 bool pcie_port_coalesce;
Marc Jones4adc8cd2012-10-31 16:24:37 -060063
64 /* Override PCIe ASPM */
Angel Pons02396842021-06-05 12:34:23 +020065 uint8_t pcie_aspm[8];
Vladimir Serbinenko5b044ae2014-10-25 15:20:55 +020066
Vladimir Serbinenko5b044ae2014-10-25 15:20:55 +020067 int docking_supported;
Vladimir Serbinenko36fa5b82014-10-28 23:43:20 +010068
Felix Singerf4842bb2024-01-12 21:21:06 +010069 bool pcie_hotplug_map[8];
Vladimir Serbinenkob26156e2015-01-31 17:45:50 +010070
71 /* Ports which can be routed to either EHCI or xHCI. */
72 uint32_t xhci_switchable_ports;
73 /* Ports which support SuperSpeed (USB 3.0 additional lanes). */
74 uint32_t superspeed_capable_ports;
Nicolas Reinecke59aef5c2015-04-16 23:25:00 +020075 /* Overcurrent Mapping for USB 3.0 Ports */
76 uint32_t xhci_overcurrent_mapping;
Nico Huber7b2f9f62015-10-01 19:00:51 +020077
78 uint32_t spi_uvscc;
79 uint32_t spi_lvscc;
Arthur Heymansebf201b2019-05-28 13:51:36 +020080 struct intel_swseq_spi_config spi;
Keith Hui943b5402024-01-22 20:11:24 -050081 struct southbridge_usb_port usb_port_config[14];
Stefan Reinauer8e073822012-04-04 00:07:22 +020082};
83
Stefan Reinauer8e073822012-04-04 00:07:22 +020084#endif /* SOUTHBRIDGE_INTEL_BD82X6X_CHIP_H */