soc/amd/picasso: Add acp_i2s_use_external_48mhz_osc flag
If we have use external clock source for I2S, we don't need to enable internal one. Add acp_i2s_use_external_48mhz_osc flag for the project which uses external clock source. BUG=b:174121847 BRANCH=zork TEST= build passed Signed-off-by: Eric Lai <ericr_lai@compal.corp-partner.google.com> Change-Id: Ica68ee2da5a05231eb6db0218bd0f19907507273 Reviewed-on: https://review.coreboot.org/c/coreboot/+/48637 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
		@@ -219,6 +219,8 @@ struct soc_amd_picasso_config {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	/* The array index is the general purpose PCIe clock output number. */
 | 
						/* The array index is the general purpose PCIe clock output number. */
 | 
				
			||||||
	enum gpp_clk_req_setting gpp_clk_config[GPP_CLK_OUTPUT_COUNT];
 | 
						enum gpp_clk_req_setting gpp_clk_config[GPP_CLK_OUTPUT_COUNT];
 | 
				
			||||||
 | 
						/* If using an external 48MHz OSC for codec, will disable internal X48M_OSC */
 | 
				
			||||||
 | 
						bool acp_i2s_use_external_48mhz_osc;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* __PICASSO_CHIP_H__ */
 | 
					#endif /* __PICASSO_CHIP_H__ */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,9 +89,15 @@ const struct irq_idx_name *sb_get_apic_reg_association(size_t *size)
 | 
				
			|||||||
void sb_clk_output_48Mhz(void)
 | 
					void sb_clk_output_48Mhz(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	u32 ctrl;
 | 
						u32 ctrl;
 | 
				
			||||||
 | 
						const struct soc_amd_picasso_config *cfg;
 | 
				
			||||||
 | 
						cfg = config_of_soc();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ctrl = misc_read32(MISC_CLK_CNTL1);
 | 
						ctrl = misc_read32(MISC_CLK_CNTL1);
 | 
				
			||||||
	ctrl |= BP_X48M0_OUTPUT_EN;
 | 
						/* If used external clock source for I2S, disable the internal clock output */
 | 
				
			||||||
 | 
						if (cfg->acp_i2s_use_external_48mhz_osc && cfg->acp_pin_cfg == I2S_PINS_I2S_TDM)
 | 
				
			||||||
 | 
							ctrl &= ~BP_X48M0_OUTPUT_EN;
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							ctrl |= BP_X48M0_OUTPUT_EN;
 | 
				
			||||||
	misc_write32(MISC_CLK_CNTL1, ctrl);
 | 
						misc_write32(MISC_CLK_CNTL1, ctrl);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user