QSPI does not work in quad mode

Hello,

I am using the NRF52840 with the flash chip W25Q32. I tried using the sample program "Flash Sample" with my device set in qspi. I can get the flash device reading and writing when I use:

writeoc = "pp";  
readoc = "fastread";  
It fails when using quad I/O. I noticed that the Quad enable bit is different for when using the W25Q32 vs the one MX flash used on the dev kits. Does this need to be set?
&qspi {
    status = "okay";
    pinctrl-0 = <&qspi_default>;
    pinctrl-1 = <&qspi_sleep>;
    pinctrl-names = "default", "sleep";
    w25q32: w25q32jv@0 {
        compatible = "nordic,qspi-nor";
        reg = <0>;
        writeoc = "pp4io";    // Quad Input Page Program
        readoc = "read4io";   // Fast Read Quad I/O
        sck-frequency = <8000000>; // 8MHz SPI clock
        jedec-id = [EF 40 16];  // Manufacturer and device ID
        size = <33554432>;  // 4MB (32Mb)
        has-dpd;
        t-enter-dpd = <10000>;  // Enter Deep Power Down time (10µs)
        t-exit-dpd = <35000>;   // Exit Deep Power Down time (35µs)
    };
};
Is there flash command to read and write the status registers so I can set them myself?
Thanks
  • I believe I answered my own question and didn't update. 

    I was talking about the Quad Enable bit for the flash. There is a bit in the status register that is supposed to be written depending on if you want to be in QSPI mode or not. I believe this is what the nordic qpsi param "quad-enable-requirements" means. It tells the software where the QE bit is located. 

    quad-enable-requirements = "S2B1v1";


    I found out that none of this is relevant though, as I ordered the flash chip that has the QE bit fixed to ON. :) 



Related