/* * Copyright (c) 2017 - 2020, Broadcom * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef SR_UTILS_H #define SR_UTILS_H #include #include #include #include static inline void brcm_stingray_set_qspi_mux(int enable_ap) { mmio_write_32(QSPI_HOLD_N_MODE_SEL_CONTROL, enable_ap); mmio_write_32(QSPI_WP_N_MODE_SEL_CONTROL, enable_ap); mmio_write_32(QSPI_SCK_MODE_SEL_CONTROL, enable_ap); mmio_write_32(QSPI_CS_N_MODE_SEL_CONTROL, enable_ap); mmio_write_32(QSPI_MOSI_MODE_SEL_CONTROL, enable_ap); mmio_write_32(QSPI_MISO_MODE_SEL_CONTROL, enable_ap); } static inline void brcm_stingray_set_straps(uint32_t boot_source) { /* Enable software strap override */ mmio_setbits_32(CDRU_CHIP_STRAP_CTRL, BIT(CDRU_CHIP_STRAP_CTRL__SOFTWARE_OVERRIDE)); /* set straps to the next boot source */ mmio_clrsetbits_32(CDRU_CHIP_STRAP_DATA, BOOT_SOURCE_MASK, boot_source); /* Disable software strap override */ mmio_clrbits_32(CDRU_CHIP_STRAP_CTRL, BIT(CDRU_CHIP_STRAP_CTRL__SOFTWARE_OVERRIDE)); } #endif