Skip to content

Commit a50c40a

Browse files
committed
[nrf fromlist] dts: nordic: Change compatible property for EXMIF node
This is a follow-up to commit cdf45cb234077522b5cef2da084869af43d42dc1. Adjust the DTS node for the nRF EXMIF peripheral so that it is possible to handle the peripheral with the generic MSPI driver for DW SSI based controllers and use all its data lines in communication. Also adjust the related board files accordingly. Signed-off-by: Andrzej Głąbek <[email protected]> (cherry picked from commit 7e089051bb197229f591f5fda539abc4ee5f0e68) Upstream PR: zephyrproject-rtos/zephyr#80042
1 parent 7959796 commit a50c40a

File tree

7 files changed

+61
-21
lines changed

7 files changed

+61
-21
lines changed

boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20-pinctrl.dtsi

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,19 @@
7373
/omit-if-no-ref/ exmif_default: exmif_default {
7474
group1 {
7575
psels = <NRF_PSEL(EXMIF_CK, 6, 0)>,
76+
/* These two cannot be used until nrf-regtool
77+
* is updated.
78+
* <NRF_PSEL(EXMIF_CS0, 6, 3)>,
79+
* <NRF_PSEL(EXMIF_RWDS, 6, 2)>,
80+
*/
7681
<NRF_PSEL(EXMIF_DQ0, 6, 7)>,
77-
<NRF_PSEL(EXMIF_DQ1, 6, 5)>;
82+
<NRF_PSEL(EXMIF_DQ1, 6, 5)>,
83+
<NRF_PSEL(EXMIF_DQ2, 6, 10)>,
84+
<NRF_PSEL(EXMIF_DQ3, 6, 9)>,
85+
<NRF_PSEL(EXMIF_DQ4, 6, 11)>,
86+
<NRF_PSEL(EXMIF_DQ5, 6, 8)>,
87+
<NRF_PSEL(EXMIF_DQ6, 6, 6)>,
88+
<NRF_PSEL(EXMIF_DQ7, 6, 4)>;
7889
nordic,drive-mode = <NRF_DRIVE_H0H1>;
7990
};
8091
};

boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp.dts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -271,15 +271,18 @@ ipc0: &cpuapp_cpurad_ipc {
271271
};
272272

273273
&exmif {
274-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
275274
pinctrl-0 = <&exmif_default>;
276275
pinctrl-names = "default";
277276
status = "okay";
277+
/* Hardware control of CS0 cannot be used until nrf-regtool is updated.
278+
* Use GPIO instead for now.
279+
*/
280+
ce-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
281+
278282
mx25uw63: mx25uw6345g@0 {
279-
compatible = "jedec,spi-nor";
280-
status = "disabled";
283+
compatible = "jedec,mspi-nor";
284+
status = "okay";
281285
reg = <0>;
282-
spi-max-frequency = <DT_FREQ_M(48)>;
283286
jedec-id = [c2 84 37];
284287
sfdp-bfp = [
285288
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -292,6 +295,15 @@ ipc0: &cpuapp_cpurad_ipc {
292295
has-dpd;
293296
t-enter-dpd = <10000>;
294297
t-exit-dpd = <30000>;
298+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
299+
300+
mspi-max-frequency = <DT_FREQ_M(50)>;
301+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
302+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
303+
mspi-hardware-ce-num = <1>;
304+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
305+
mspi-endian = "MSPI_BIG_ENDIAN";
306+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
295307
};
296308
};
297309

boards/nordic/nrf9280pdk/nrf9280pdk_nrf9280-pinctrl.dtsi

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,19 @@
5454
/omit-if-no-ref/ exmif_default: exmif_default {
5555
group1 {
5656
psels = <NRF_PSEL(EXMIF_CK, 6, 0)>,
57+
/* These two cannot be used until nrf-regtool
58+
* is updated.
59+
* <NRF_PSEL(EXMIF_CS0, 6, 3)>,
60+
* <NRF_PSEL(EXMIF_RWDS, 6, 2)>,
61+
*/
5762
<NRF_PSEL(EXMIF_DQ0, 6, 7)>,
58-
<NRF_PSEL(EXMIF_DQ1, 6, 5)>;
63+
<NRF_PSEL(EXMIF_DQ1, 6, 5)>,
64+
<NRF_PSEL(EXMIF_DQ2, 6, 10)>,
65+
<NRF_PSEL(EXMIF_DQ3, 6, 9)>,
66+
<NRF_PSEL(EXMIF_DQ4, 6, 11)>,
67+
<NRF_PSEL(EXMIF_DQ5, 6, 8)>,
68+
<NRF_PSEL(EXMIF_DQ6, 6, 6)>,
69+
<NRF_PSEL(EXMIF_DQ7, 6, 4)>;
5970
nordic,drive-mode = <NRF_DRIVE_H0H1>;
6071
};
6172
};

boards/nordic/nrf9280pdk/nrf9280pdk_nrf9280_cpuapp.dts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,15 +266,18 @@ ipc0: &cpuapp_cpurad_ipc {
266266
};
267267

268268
&exmif {
269-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
270269
pinctrl-0 = <&exmif_default>;
271270
pinctrl-names = "default";
272271
status = "okay";
272+
/* Hardware control of CS0 cannot be used until nrf-regtool is updated.
273+
* Use GPIO instead for now.
274+
*/
275+
ce-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
276+
273277
mx25uw63: mx25uw6345g@0 {
274-
compatible = "jedec,spi-nor";
275-
status = "disabled";
278+
compatible = "jedec,mspi-nor";
279+
status = "okay";
276280
reg = <0>;
277-
spi-max-frequency = <DT_FREQ_M(48)>;
278281
jedec-id = [c2 84 37];
279282
sfdp-bfp = [
280283
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -287,6 +290,15 @@ ipc0: &cpuapp_cpurad_ipc {
287290
has-dpd;
288291
t-enter-dpd = <10000>;
289292
t-exit-dpd = <30000>;
293+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
294+
295+
mspi-max-frequency = <DT_FREQ_M(50)>;
296+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
297+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
298+
mspi-hardware-ce-num = <1>;
299+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
300+
mspi-endian = "MSPI_BIG_ENDIAN";
301+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
290302
};
291303
};
292304

dts/bindings/spi/nordic,nrf-exmif.yaml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,4 @@ description: Nordic External Memory Interface (EXMIF)
55

66
compatible: "nordic,nrf-exmif"
77

8-
include: snps,designware-spi.yaml
9-
10-
properties:
11-
reg:
12-
required: true
8+
include: snps,designware-ssi.yaml

dts/common/nordic/nrf54h20.dtsi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -505,16 +505,15 @@
505505
status = "disabled";
506506
};
507507

508-
exmif: spi@95000 {
509-
compatible = "nordic,nrf-exmif";
508+
exmif: exmif@95000 {
509+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
510510
#address-cells = <1>;
511511
#size-cells = <0>;
512512
reg = <0x95000 0x500 0x95500 0xb00>;
513513
reg-names = "wrapper", "core";
514514
interrupts = <149 NRF_DEFAULT_IRQ_PRIORITY>;
515515
clock-frequency = <DT_FREQ_M(400)>;
516516
fifo-depth = <32>;
517-
max-xfer-size = <16>;
518517
status = "disabled";
519518
};
520519

dts/common/nordic/nrf9280.dtsi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,16 +369,15 @@
369369
status = "disabled";
370370
};
371371

372-
exmif: spi@95000 {
373-
compatible = "nordic,nrf-exmif";
372+
exmif: exmif@95000 {
373+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
374374
#address-cells = <1>;
375375
#size-cells = <0>;
376376
reg = <0x95000 0x500 0x95500 0xb00>;
377377
reg-names = "wrapper", "core";
378378
interrupts = <149 NRF_DEFAULT_IRQ_PRIORITY>;
379379
clock-frequency = <DT_FREQ_M(400)>;
380380
fifo-depth = <32>;
381-
max-xfer-size = <16>;
382381
status = "disabled";
383382
};
384383

0 commit comments

Comments
 (0)