Skip to content

Commit 81b881d

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. Upstream PR #: 80042 Signed-off-by: Andrzej Głąbek <[email protected]> (cherry picked from commit 0b28040)
1 parent 2c7d35f commit 81b881d

File tree

7 files changed

+83
-21
lines changed

7 files changed

+83
-21
lines changed

boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20-pinctrl.dtsi

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,37 @@
7373
/omit-if-no-ref/ exmif_default: exmif_default {
7474
group1 {
7575
psels = <NRF_PSEL(EXMIF_CK, 6, 0)>,
76+
<NRF_PSEL(EXMIF_CS0, 6, 3)>,
77+
<NRF_PSEL(EXMIF_RWDS, 6, 2)>,
7678
<NRF_PSEL(EXMIF_DQ0, 6, 7)>,
77-
<NRF_PSEL(EXMIF_DQ1, 6, 5)>;
79+
<NRF_PSEL(EXMIF_DQ1, 6, 5)>,
80+
<NRF_PSEL(EXMIF_DQ2, 6, 10)>,
81+
<NRF_PSEL(EXMIF_DQ3, 6, 9)>,
82+
<NRF_PSEL(EXMIF_DQ4, 6, 11)>,
83+
<NRF_PSEL(EXMIF_DQ5, 6, 8)>,
84+
<NRF_PSEL(EXMIF_DQ6, 6, 6)>,
85+
<NRF_PSEL(EXMIF_DQ7, 6, 4)>;
7886
nordic,drive-mode = <NRF_DRIVE_H0H1>;
7987
};
8088
};
8189

90+
/omit-if-no-ref/ exmif_sleep: exmif_sleep {
91+
group1 {
92+
low-power-enable;
93+
psels = <NRF_PSEL(EXMIF_CK, 6, 0)>,
94+
<NRF_PSEL(EXMIF_CS0, 6, 3)>,
95+
<NRF_PSEL(EXMIF_RWDS, 6, 2)>,
96+
<NRF_PSEL(EXMIF_DQ0, 6, 7)>,
97+
<NRF_PSEL(EXMIF_DQ1, 6, 5)>,
98+
<NRF_PSEL(EXMIF_DQ2, 6, 10)>,
99+
<NRF_PSEL(EXMIF_DQ3, 6, 9)>,
100+
<NRF_PSEL(EXMIF_DQ4, 6, 11)>,
101+
<NRF_PSEL(EXMIF_DQ5, 6, 8)>,
102+
<NRF_PSEL(EXMIF_DQ6, 6, 6)>,
103+
<NRF_PSEL(EXMIF_DQ7, 6, 4)>;
104+
};
105+
};
106+
82107
/omit-if-no-ref/ can120_default: can120_default {
83108
group1 {
84109
psels = <NRF_PSEL(CAN_RX, 9, 4)>,

boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp.dts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -262,15 +262,15 @@ ipc0: &cpuapp_cpurad_ipc {
262262
};
263263

264264
&exmif {
265-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
266265
pinctrl-0 = <&exmif_default>;
267-
pinctrl-names = "default";
266+
pinctrl-1 = <&exmif_sleep>;
267+
pinctrl-names = "default", "sleep";
268268
status = "okay";
269+
269270
mx25uw63: mx25uw6345g@0 {
270-
compatible = "jedec,spi-nor";
271+
compatible = "jedec,mspi-nor";
271272
status = "disabled";
272273
reg = <0>;
273-
spi-max-frequency = <DT_FREQ_M(48)>;
274274
jedec-id = [c2 84 37];
275275
sfdp-bfp = [
276276
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -283,6 +283,15 @@ ipc0: &cpuapp_cpurad_ipc {
283283
has-dpd;
284284
t-enter-dpd = <10000>;
285285
t-exit-dpd = <30000>;
286+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
287+
288+
mspi-max-frequency = <DT_FREQ_M(50)>;
289+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
290+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
291+
mspi-hardware-ce-num = <1>;
292+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
293+
mspi-endian = "MSPI_BIG_ENDIAN";
294+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
286295
};
287296
};
288297

boards/nordic/nrf9280pdk/nrf9280pdk_nrf9280-pinctrl.dtsi

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,37 @@
5454
/omit-if-no-ref/ exmif_default: exmif_default {
5555
group1 {
5656
psels = <NRF_PSEL(EXMIF_CK, 6, 0)>,
57+
<NRF_PSEL(EXMIF_CS0, 6, 3)>,
58+
<NRF_PSEL(EXMIF_RWDS, 6, 2)>,
5759
<NRF_PSEL(EXMIF_DQ0, 6, 7)>,
58-
<NRF_PSEL(EXMIF_DQ1, 6, 5)>;
60+
<NRF_PSEL(EXMIF_DQ1, 6, 5)>,
61+
<NRF_PSEL(EXMIF_DQ2, 6, 10)>,
62+
<NRF_PSEL(EXMIF_DQ3, 6, 9)>,
63+
<NRF_PSEL(EXMIF_DQ4, 6, 11)>,
64+
<NRF_PSEL(EXMIF_DQ5, 6, 8)>,
65+
<NRF_PSEL(EXMIF_DQ6, 6, 6)>,
66+
<NRF_PSEL(EXMIF_DQ7, 6, 4)>;
5967
nordic,drive-mode = <NRF_DRIVE_H0H1>;
6068
};
6169
};
6270

71+
/omit-if-no-ref/ exmif_sleep: exmif_sleep {
72+
group1 {
73+
low-power-enable;
74+
psels = <NRF_PSEL(EXMIF_CK, 6, 0)>,
75+
<NRF_PSEL(EXMIF_CS0, 6, 3)>,
76+
<NRF_PSEL(EXMIF_RWDS, 6, 2)>,
77+
<NRF_PSEL(EXMIF_DQ0, 6, 7)>,
78+
<NRF_PSEL(EXMIF_DQ1, 6, 5)>,
79+
<NRF_PSEL(EXMIF_DQ2, 6, 10)>,
80+
<NRF_PSEL(EXMIF_DQ3, 6, 9)>,
81+
<NRF_PSEL(EXMIF_DQ4, 6, 11)>,
82+
<NRF_PSEL(EXMIF_DQ5, 6, 8)>,
83+
<NRF_PSEL(EXMIF_DQ6, 6, 6)>,
84+
<NRF_PSEL(EXMIF_DQ7, 6, 4)>;
85+
};
86+
};
87+
6388
/omit-if-no-ref/ can120_default: can120_default {
6489
group1 {
6590
psels = <NRF_PSEL(CAN_RX, 9, 4)>,

boards/nordic/nrf9280pdk/nrf9280pdk_nrf9280_cpuapp.dts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,15 +249,15 @@ ipc0: &cpuapp_cpurad_ipc {
249249
};
250250

251251
&exmif {
252-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
253252
pinctrl-0 = <&exmif_default>;
254-
pinctrl-names = "default";
253+
pinctrl-1 = <&exmif_sleep>;
254+
pinctrl-names = "default", "sleep";
255255
status = "okay";
256+
256257
mx25uw63: mx25uw6345g@0 {
257-
compatible = "jedec,spi-nor";
258+
compatible = "jedec,mspi-nor";
258259
status = "disabled";
259260
reg = <0>;
260-
spi-max-frequency = <DT_FREQ_M(48)>;
261261
jedec-id = [c2 84 37];
262262
sfdp-bfp = [
263263
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -270,6 +270,15 @@ ipc0: &cpuapp_cpurad_ipc {
270270
has-dpd;
271271
t-enter-dpd = <10000>;
272272
t-exit-dpd = <30000>;
273+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
274+
275+
mspi-max-frequency = <DT_FREQ_M(50)>;
276+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
277+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
278+
mspi-hardware-ce-num = <1>;
279+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
280+
mspi-endian = "MSPI_BIG_ENDIAN";
281+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
273282
};
274283
};
275284

dts/bindings/spi/nordic,nrf-exmif.yaml renamed to dts/bindings/mspi/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
@@ -519,8 +519,8 @@
519519
status = "disabled";
520520
};
521521

522-
exmif: spi@95000 {
523-
compatible = "nordic,nrf-exmif";
522+
exmif: exmif@95000 {
523+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
524524
#address-cells = <1>;
525525
#size-cells = <0>;
526526
reg = <0x95000 0x500 0x95500 0xb00>;
@@ -529,7 +529,6 @@
529529
power-domains = <&gpd NRF_GPD_FAST_ACTIVE0>;
530530
clock-frequency = <DT_FREQ_M(400)>;
531531
fifo-depth = <32>;
532-
max-xfer-size = <16>;
533532
status = "disabled";
534533
};
535534

dts/common/nordic/nrf9280.dtsi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,16 +364,15 @@
364364
status = "disabled";
365365
};
366366

367-
exmif: spi@95000 {
368-
compatible = "nordic,nrf-exmif";
367+
exmif: exmif@95000 {
368+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
369369
#address-cells = <1>;
370370
#size-cells = <0>;
371371
reg = <0x95000 0x500 0x95500 0xb00>;
372372
reg-names = "wrapper", "core";
373373
interrupts = <149 NRF_DEFAULT_IRQ_PRIORITY>;
374374
clock-frequency = <DT_FREQ_M(400)>;
375375
fifo-depth = <32>;
376-
max-xfer-size = <16>;
377376
status = "disabled";
378377
};
379378

0 commit comments

Comments
 (0)