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 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 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