spi: zynqmp_gqspi: Fix tap delay values
There is no need of read modify write for tapdelay settings ans hence remove the read operations while setting tapdelays. Also, correct tapdelay value settings at 40MHZ by modifying the if check to <= instead of <. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
committed by
Michal Simek
parent
3aa57bd9e2
commit
cebc700b71
@@ -348,23 +348,18 @@ void zynqmp_qspi_set_tapdelay(struct udevice *bus, u32 baudrateval)
|
||||
debug("%s, req_hz:%d, clk_rate:%d, baudrateval:%d\n",
|
||||
__func__, reqhz, clk_rate, baudrateval);
|
||||
|
||||
if (reqhz < GQSPI_FREQ_40MHZ) {
|
||||
zynqmp_mmio_read(IOU_TAPDLY_BYPASS_OFST, &tapdlybypass);
|
||||
tapdlybypass |= (TAP_DLY_BYPASS_LQSPI_RX_VALUE <<
|
||||
if (reqhz <= GQSPI_FREQ_40MHZ) {
|
||||
tapdlybypass = (TAP_DLY_BYPASS_LQSPI_RX_VALUE <<
|
||||
TAP_DLY_BYPASS_LQSPI_RX_SHIFT);
|
||||
} else if (reqhz <= GQSPI_FREQ_100MHZ) {
|
||||
zynqmp_mmio_read(IOU_TAPDLY_BYPASS_OFST, &tapdlybypass);
|
||||
tapdlybypass |= (TAP_DLY_BYPASS_LQSPI_RX_VALUE <<
|
||||
tapdlybypass = (TAP_DLY_BYPASS_LQSPI_RX_VALUE <<
|
||||
TAP_DLY_BYPASS_LQSPI_RX_SHIFT);
|
||||
lpbkdlyadj = readl(®s->lpbkdly);
|
||||
lpbkdlyadj |= (GQSPI_LPBK_DLY_ADJ_LPBK_MASK);
|
||||
datadlyadj = readl(®s->gqspidlyadj);
|
||||
datadlyadj |= ((GQSPI_USE_DATA_DLY << GQSPI_USE_DATA_DLY_SHIFT)
|
||||
lpbkdlyadj = (GQSPI_LPBK_DLY_ADJ_LPBK_MASK);
|
||||
datadlyadj = ((GQSPI_USE_DATA_DLY << GQSPI_USE_DATA_DLY_SHIFT)
|
||||
| (GQSPI_DATA_DLY_ADJ_VALUE <<
|
||||
GQSPI_DATA_DLY_ADJ_SHIFT));
|
||||
} else if (reqhz <= GQSPI_FREQ_150MHZ) {
|
||||
lpbkdlyadj = readl(®s->lpbkdly);
|
||||
lpbkdlyadj |= ((GQSPI_LPBK_DLY_ADJ_LPBK_MASK) |
|
||||
lpbkdlyadj = ((GQSPI_LPBK_DLY_ADJ_LPBK_MASK) |
|
||||
GQSPI_LPBK_DLY_ADJ_DLY_0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user