1 /* 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 is_sata_config(void)7static int is_sata_config(void) 8 { 9 return !((SataNativeIde == CONFIG_STONEYRIDGE_SATA_MODE) 10 || (SataLegacyIde == CONFIG_STONEYRIDGE_SATA_MODE)); 11 } 12 sb_sata_enable(void)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 sb_ide_enable(void)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 SetFchResetParams(FCH_RESET_INTERFACE * params)27void SetFchResetParams(FCH_RESET_INTERFACE *params) 28 { 29 params->Xhci0Enable = CONFIG(STONEYRIDGE_XHCI_ENABLE); 30 if (is_dev_enabled(DEV_PTR(sata))) { 31 params->SataEnable = sb_sata_enable(); 32 params->IdeEnable = sb_ide_enable(); 33 } else { 34 params->SataEnable = FALSE; 35 params->IdeEnable = FALSE; 36 } 37 } 38 SetFchEnvParams(FCH_INTERFACE * params)39void SetFchEnvParams(FCH_INTERFACE *params) 40 { 41 params->AzaliaController = AzEnable; 42 params->SataClass = CONFIG_STONEYRIDGE_SATA_MODE; 43 if (is_dev_enabled(DEV_PTR(sata))) { 44 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 SetFchMidParams(FCH_INTERFACE * params)55void SetFchMidParams(FCH_INTERFACE *params) 56 { 57 SetFchEnvParams(params); 58 } 59