drivers: mspi: add mspi is25xx0xx device driver

This device driver supports ISSI is25w/lx032/64 series flash.
Only extended SPI mode(1s-1s-1s, 1s-8s-8s, 1s-1s-8s) is implemented.

Signed-off-by: Swift Tian <swift.tian@ambiq.com>
This commit is contained in:
Swift Tian 2025-04-21 12:09:59 +08:00 committed by Benjamin Cabé
commit cc5c142535
15 changed files with 1261 additions and 16 deletions

View file

@ -26,4 +26,11 @@ config MEMC_INIT_PRIORITY
endif # MEMC
if FLASH
config FLASH_INIT_PRIORITY
default 50
endif # FLASH
endif # BOARD_APOLLO510_EVB

View file

@ -161,6 +161,44 @@
};
};
&mspi1 {
pinctrl-0 = <&mspi1_default>;
pinctrl-1 = <&mspi1_sleep>;
pinctrl-2 = <&mspi1_flash>;
pinctrl-names = "default","sleep","flash";
status = "okay";
zephyr,pm-device-runtime-auto;
ce-gpios = <&gpio32_63 21 GPIO_ACTIVE_LOW>;
cmdq-buffer-location = "SRAM_NO_CACHE";
cmdq-buffer-size = <256>;
dqs-support;
is25wx064: is25wx064@0 {
compatible = "ambiq,mspi-device", "mspi-is25xX0xx";
size = <DT_SIZE_M(64)>;
reg = <0>;
status = "disabled";
mspi-max-frequency = <96000000>;
mspi-io-mode = "MSPI_IO_MODE_OCTAL_1_8_8";
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
mspi-dqs-enable;
mspi-hardware-ce-num = <0>;
read-command = <0xCC>;
write-command = <0x8E>;
command-length = "INSTR_1_BYTE";
address-length = "ADDR_4_BYTE"; /* Avoid use of 3 byte address if Ambiq MSPI */
rx-dummy = <16>;
tx-dummy = <0>;
xip-config = <1 0 DT_SIZE_M(8) 0>;
ce-break-config = <0 0>;
ambiq,timing-config-mask = <0x62>;
ambiq,timing-config = <0 16 1 0 0 5 20 0>;
};
};
&gpio0_31 {
status = "okay";
};