1 /*
2  * Copyright (c) 2017 - 2020, Broadcom
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef SR_UTILS_H
8 #define SR_UTILS_H
9 
10 #include <lib/mmio.h>
11 
12 #include <chip_id.h>
13 #include <cmn_plat_util.h>
14 #include <sr_def.h>
15 
brcm_stingray_set_qspi_mux(int enable_ap)16 static inline void brcm_stingray_set_qspi_mux(int enable_ap)
17 {
18 	mmio_write_32(QSPI_HOLD_N_MODE_SEL_CONTROL, enable_ap);
19 	mmio_write_32(QSPI_WP_N_MODE_SEL_CONTROL, enable_ap);
20 	mmio_write_32(QSPI_SCK_MODE_SEL_CONTROL, enable_ap);
21 	mmio_write_32(QSPI_CS_N_MODE_SEL_CONTROL, enable_ap);
22 	mmio_write_32(QSPI_MOSI_MODE_SEL_CONTROL, enable_ap);
23 	mmio_write_32(QSPI_MISO_MODE_SEL_CONTROL, enable_ap);
24 }
25 
brcm_stingray_set_straps(uint32_t boot_source)26 static inline void brcm_stingray_set_straps(uint32_t boot_source)
27 {
28 	/* Enable software strap override */
29 	mmio_setbits_32(CDRU_CHIP_STRAP_CTRL,
30 			BIT(CDRU_CHIP_STRAP_CTRL__SOFTWARE_OVERRIDE));
31 
32 	/* set straps to the next boot source */
33 	mmio_clrsetbits_32(CDRU_CHIP_STRAP_DATA,
34 			   BOOT_SOURCE_MASK,
35 			   boot_source);
36 
37 	/* Disable software strap override */
38 	mmio_clrbits_32(CDRU_CHIP_STRAP_CTRL,
39 			BIT(CDRU_CHIP_STRAP_CTRL__SOFTWARE_OVERRIDE));
40 }
41 
42 #endif
43