xref: /aosp_15_r20/external/coreboot/src/mainboard/amd/birman/update_devicetree_phoenix_opensil.c (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
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)10 static 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)44 static 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)50 void mainboard_update_devicetree_opensil(void)
51 {
52 	mainboard_update_mpio();
53 	mainboard_update_ddi();
54 }
55