Hi,
I am working on a custom board with Nor-flash over QSPI interface. I am able to read/write on flash PART winbond W25Q256JWPIQ. I am trying to Run QSPI on 100 Mhz but not able to achieve it. How can I modify the QSPI freq.
I have set the maximum freq, in dts node 10MHz still get 25 Mhz.
Hi sandeep
seems QSPI_CLK_ROOT set to default value given in Table 5-1. Clock Root Table
i.MX8MDQ Reference Manual
https://www.nxp.com/docs/en/reference-manual/IMX8MDQLQRM.pdf
So one can try to adjust it to other suitable values in
uboot/board/freescale/imx8mq_evk/imx8mq_evk.c
imx8mq_evk.c\imx8mq_evk\freescale\board - uboot-imx - i.MX U-Boot
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi igorpadykov,
At u-boot it is already set to 100MHz, But I need steps to set 100 MHz at kernel side. So can you please share dts node or kernel changes for setting QSPI freq to 100Mhz. Below is my changes n dts and dtsi files.
dtsi file:
qspi: qspi@30bb0000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx7d-qspi";
reg = <0 0x30bb0000 0 0x10000>, <0 0x08000000 0 0x10000000>;
reg-names = "QuadSPI", "QuadSPI-memory";
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8MQ_CLK_QSPI_ROOT>,
<&clk IMX8MQ_CLK_QSPI_ROOT>;
clock-names = "qspi_en", "qspi";
status = "disabled";
};
dts file:
&qspi {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_qspi>;
status = "okay";
flash0: w25q256@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
compatible = "sst,w25q256";
spi-max-frequency = <100000000>;
spi-nor,ddr-quad-read-dummy = <4>;
status = "okay";
};
};
linux driver does not change frequency so no additional dts settings are
needed, in general you can try to debug it in qspi driver.
fsl-quadspi.c\spi-nor\mtd\drivers - linux-imx - i.MX Linux kernel
linux clock driver
clk-imx8mq.c\imx\clk\drivers - linux-imx - i.MX Linux kernel
Best regards
igor