Nor flash using QSPI interface outputs max freq of 25 Mhz only.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Nor flash using QSPI interface outputs max freq of 25 Mhz only.

2,036 Views
sandeep_yenugul
Contributor III

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.

Labels (1)
0 Kudos
3 Replies

1,526 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos

1,526 Views
sandeep_yenugul
Contributor III

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";
    };
};

0 Kudos

1,526 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos