1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <device/device.h> 4 #include <soc/amd/phoenix/chip.h> 5 #include <soc/soc_util.h> 6 #include <vendorcode/amd/opensil/chip/mpio/chip.h> 7 #include "display_card_type.h" 8 #include "update_devicetree.h" 9 mainboard_update_mpio(void)10static void mainboard_update_mpio(void) 11 { 12 struct device *mxm_bridge = DEV_PTR(gpp_bridge_1_1); 13 struct device *ssd1_bridge = DEV_PTR(gpp_bridge_1_2); 14 struct device *wwan_bridge = DEV_PTR(gpp_bridge_2_2); 15 struct device *wlan_bridge = DEV_PTR(gpp_bridge_2_3); 16 struct vendorcode_amd_opensil_chip_mpio_config *mxm_bridge_cfg = config_of(mxm_bridge); 17 struct vendorcode_amd_opensil_chip_mpio_config *ssd1_bridge_cfg = config_of(ssd1_bridge); 18 struct vendorcode_amd_opensil_chip_mpio_config *wwan_bridge_cfg = config_of(wwan_bridge); 19 struct vendorcode_amd_opensil_chip_mpio_config *wlan_bridge_cfg = config_of(wlan_bridge); 20 21 /* Phoenix 2 has less PCIe lanes than Phoenix */ 22 if (get_soc_type() == SOC_PHOENIX2) { 23 mxm_bridge_cfg->end_lane = 3; 24 ssd1_bridge_cfg->end_lane = 9; 25 } 26 if (!CONFIG(ENABLE_EVAL_CARD)) { 27 mxm_bridge->enabled = false; 28 } 29 if (CONFIG(DISABLE_DT_M2)) { 30 ssd1_bridge->enabled = false; 31 } 32 /* When the WLAN card uses 2 lanes, the WWAN card can't be used */ 33 if (CONFIG(WLAN01)) { 34 wwan_bridge->enabled = false; 35 wlan_bridge_cfg->end_lane = 14; 36 } 37 /* When the WWAN card uses 2 lanes, the WLAN card can't be used */ 38 if (CONFIG(WWAN01)) { 39 wlan_bridge->enabled = false; 40 wwan_bridge_cfg->end_lane = 15; 41 } 42 } 43 mainboard_update_ddi(void)44static void mainboard_update_ddi(void) 45 { 46 struct soc_amd_phoenix_config *cfg = config_of_soc(); 47 cfg->ddi[1].connector_type = get_ddi1_type(); 48 } 49 mainboard_update_devicetree_opensil(void)50void mainboard_update_devicetree_opensil(void) 51 { 52 mainboard_update_mpio(); 53 mainboard_update_ddi(); 54 } 55