summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/qualcomm/common/include/soc/qspi_common.h12
-rw-r--r--src/soc/qualcomm/common/qspi.c24
-rw-r--r--src/soc/qualcomm/sc7180/bootblock.c2
-rw-r--r--src/soc/qualcomm/sc7280/bootblock.c7
-rw-r--r--src/soc/qualcomm/sc7280/clock.c10
5 files changed, 7 insertions, 48 deletions
diff --git a/src/soc/qualcomm/common/include/soc/qspi_common.h b/src/soc/qualcomm/common/include/soc/qspi_common.h
index a0c8e46812..6e4b779aee 100644
--- a/src/soc/qualcomm/common/include/soc/qspi_common.h
+++ b/src/soc/qualcomm/common/include/soc/qspi_common.h
@@ -26,7 +26,6 @@ struct qcom_qspi_regs {
u32 current_mem_addr;
u32 hw_version;
u32 rd_fifo[16];
- u32 sampling_clk_cfg;
};
check_member(qcom_qspi_regs, rd_fifo, 0x50);
@@ -98,16 +97,7 @@ static struct qcom_qspi_regs * const qcom_qspi = (void *)QSPI_BASE;
#define QSPI_MAX_PACKET_COUNT 0xFFC0
-/*
- * quadspi_init(): Configure SPI
- *
- * @param hz: SPI frequency in Hz
- * @param sdelay: sampling delay in sdelay/8 cycle units example, if sdelay=1,
- * then will delay sampling clock by 1/8 cycle. Note that
- * setting sdelay to 4-7 would result in a negative sampling
- * delay compared to 0.
- */
-void quadspi_init(uint32_t hz, uint32_t sdelay);
+void quadspi_init(uint32_t hz);
int qspi_claim_bus(const struct spi_slave *slave);
int qspi_setup_bus(const struct spi_slave *slave);
void qspi_release_bus(const struct spi_slave *slave);
diff --git a/src/soc/qualcomm/common/qspi.c b/src/soc/qualcomm/common/qspi.c
index eb0c062a81..3340c00dd6 100644
--- a/src/soc/qualcomm/common/qspi.c
+++ b/src/soc/qualcomm/common/qspi.c
@@ -221,26 +221,11 @@ static void queue_data(uint8_t *data, uint32_t data_bytes,
queue_bounce_data(epilog_ptr, epilog_bytes, data_mode, write);
}
-/*
- * The way to encode the sampling delay is:
- *
- * QSPI_SAMPLE_CLK_CONFIG delay (cycle)
- * ----------------------------------------
- * 0xFFFh = 1111 1111 1111b 7/8
- * 0xDB6h = 1101 1011 0110b 6/8
- * 0xB6Dh = 1011 0110 1101b 5/8
- * 0x924h = 1001 0010 0100b 4/8
- * 0x6DBh = 0110 1101 1011b 3/8
- * 0x492h = 0100 1001 0010b 2/8
- * 0x249h = 0010 0100 1001b 1/8
- * 0x000h = 0000 0000 0000b None
- */
-static void reg_init(uint32_t sdelay)
+static void reg_init(void)
{
uint32_t spi_mode;
uint32_t tx_data_oe_delay, tx_data_delay;
uint32_t mstr_config;
- uint32_t sampling_delay;
spi_mode = 0;
@@ -251,6 +236,7 @@ static void reg_init(uint32_t sdelay)
(tx_data_delay << TX_DATA_DELAY_SHIFT) | (SBL_EN) |
(spi_mode << SPI_MODE_SHIFT) |
(PIN_HOLDN) |
+ (FB_CLK_EN) |
(DMA_ENABLE) |
(FULL_CYCLE_MODE);
@@ -260,16 +246,14 @@ static void reg_init(uint32_t sdelay)
write32(&qcom_qspi->mstr_int_sts, 0xFFFFFFFF);
write32(&qcom_qspi->rd_fifo_cfg, 0x0);
write32(&qcom_qspi->rd_fifo_rst, RESET_FIFO);
- sampling_delay = sdelay << 9 | sdelay << 6 | sdelay << 3 | sdelay << 0;
- write32(&qcom_qspi->sampling_clk_cfg, sampling_delay);
}
-void quadspi_init(uint32_t hz, uint32_t sdelay)
+void quadspi_init(uint32_t hz)
{
assert(dcache_line_bytes() == CACHE_LINE_SIZE);
clock_configure_qspi(hz * 4);
configure_gpios();
- reg_init(sdelay);
+ reg_init();
}
int qspi_claim_bus(const struct spi_slave *slave)
diff --git a/src/soc/qualcomm/sc7180/bootblock.c b/src/soc/qualcomm/sc7180/bootblock.c
index c108157573..365b7d4460 100644
--- a/src/soc/qualcomm/sc7180/bootblock.c
+++ b/src/soc/qualcomm/sc7180/bootblock.c
@@ -8,6 +8,6 @@
void bootblock_soc_init(void)
{
clock_init();
- quadspi_init(37500 * KHz, 0);
+ quadspi_init(37500 * KHz);
qupv3_fw_init();
}
diff --git a/src/soc/qualcomm/sc7280/bootblock.c b/src/soc/qualcomm/sc7280/bootblock.c
index 0926127baf..bdabea1fbb 100644
--- a/src/soc/qualcomm/sc7280/bootblock.c
+++ b/src/soc/qualcomm/sc7280/bootblock.c
@@ -8,11 +8,6 @@
void bootblock_soc_init(void)
{
clock_init();
- /*
- * Through experimentation, we have determined
- * that a delay of 1/8 cycle is best for herobrine.
- * See b/190231148
- */
- quadspi_init(75000 * KHz, 1);
+ quadspi_init(50000 * KHz);
qupv3_fw_init();
}
diff --git a/src/soc/qualcomm/sc7280/clock.c b/src/soc/qualcomm/sc7280/clock.c
index 7b017c4d80..4441e48083 100644
--- a/src/soc/qualcomm/sc7280/clock.c
+++ b/src/soc/qualcomm/sc7280/clock.c
@@ -28,16 +28,6 @@ static struct clock_freq_config qspi_core_cfg[] = {
.div = QCOM_CLOCK_DIV(3),
},
{
- .hz = 240 * MHz,
- .src = SRC_GPLL0_MAIN_600MHZ,
- .div = QCOM_CLOCK_DIV(2.5),
- },
- {
- .hz = 300 * MHz,
- .src = SRC_GPLL0_MAIN_600MHZ,
- .div = QCOM_CLOCK_DIV(2),
- },
- {
.hz = 400 * MHz,
.src = SRC_GPLL0_MAIN_600MHZ,
.div = QCOM_CLOCK_DIV(1.5),