blob: 179999a47f46df8fb3a48c258fc1ae6017a0e5f0 [file] [log] [blame]
Felix Held25aa5602021-12-15 20:52:10 +01001/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <amdblocks/agesawrapper.h>
4#include <device/device.h>
5#include <soc/pci_devs.h>
6
7static int is_sata_config(void)
8{
9 return !((SataNativeIde == CONFIG_STONEYRIDGE_SATA_MODE)
10 || (SataLegacyIde == CONFIG_STONEYRIDGE_SATA_MODE));
11}
12
13static inline int sb_sata_enable(void)
14{
15 /* True if IDE or AHCI. */
16 return (SataNativeIde == CONFIG_STONEYRIDGE_SATA_MODE) ||
17 (SataAhci == CONFIG_STONEYRIDGE_SATA_MODE);
18}
19
20static inline int sb_ide_enable(void)
21{
22 /* True if IDE or LEGACY IDE. */
23 return (SataNativeIde == CONFIG_STONEYRIDGE_SATA_MODE) ||
24 (SataLegacyIde == CONFIG_STONEYRIDGE_SATA_MODE);
25}
26
27void SetFchResetParams(FCH_RESET_INTERFACE *params)
28{
Felix Held25aa5602021-12-15 20:52:10 +010029 params->Xhci0Enable = CONFIG(STONEYRIDGE_XHCI_ENABLE);
Felix Held727ee6672023-12-20 22:47:03 +010030 if (is_dev_enabled(DEV_PTR(sata))) {
Felix Held25aa5602021-12-15 20:52:10 +010031 params->SataEnable = sb_sata_enable();
32 params->IdeEnable = sb_ide_enable();
33 } else {
34 params->SataEnable = FALSE;
35 params->IdeEnable = FALSE;
36 }
37}
38
39void SetFchEnvParams(FCH_INTERFACE *params)
40{
Felix Held25aa5602021-12-15 20:52:10 +010041 params->AzaliaController = AzEnable;
42 params->SataClass = CONFIG_STONEYRIDGE_SATA_MODE;
Felix Held727ee6672023-12-20 22:47:03 +010043 if (is_dev_enabled(DEV_PTR(sata))) {
Felix Held25aa5602021-12-15 20:52:10 +010044 params->SataEnable = is_sata_config();
45 params->IdeEnable = !params->SataEnable;
46 params->SataIdeMode = (CONFIG_STONEYRIDGE_SATA_MODE ==
47 SataLegacyIde);
48 } else {
49 params->SataEnable = FALSE;
50 params->IdeEnable = FALSE;
51 params->SataIdeMode = FALSE;
52 }
53}
54
55void SetFchMidParams(FCH_INTERFACE *params)
56{
57 SetFchEnvParams(params);
58}