I have been struggling to use AESB with qspi0 in Linux (5.6.x). Here is what I've done so far:
* Configured the AESB peripheral (AESB_MR = 0xE0410C) and enabled the peripheral clock in at91bootstrap
* Device tree node for qspi0 is set to
Code: Select all
qspi0: spi@f0020000 {
reg = <0xf0020000 0x100>, <0x90000000 0x08000000>;
reg-names = "qspi_base", "qspi_mmap";
clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 10>;
clock-names = "qspi0_clk", "aesb_clk";
status = "okay";
};
* Added code to atmel-quadspi.c to enable aesb_clk so that the Linux kernel does not disable the clock, thinking that it is unused.
At bootup, I see the following:
Code: Select all
spi-nand: probe of spi1.0 failed with error -110
atmel_qspi f0024000.spi: AESB clock not used
spi-nor spi2.0: sst26vf064b (8192 Kbytes)
5 fixed-partitions partitions found on MTD device spi2
Creating 5 MTD partitions on "spi2":
0x000000000000-0x000000009000 : "at91bootstrap"
0x000000009000-0x000000029000 : "device tree"
0x000000029000-0x000000040000 : "settings"
0x000000040000-0x000000500000 : "kernel"
0x000000500000-0x000000800000 : "recovery"
Errno 110 is ETIMEDOUT, and I am actively looking for where this return code originates in the Kernel.
qspi0 is connected to a winbond W25M02GV and functions properly when not trying to use AESB.
Have I missed something?