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