Skip to content

Commit 0b28040

Browse files
ananglnordicjm
authored andcommitted
[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]>
1 parent 9dc8c82 commit 0b28040

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
@@ -253,15 +253,15 @@ ipc0: &cpuapp_cpurad_ipc {
253253
};
254254

255255
&exmif {
256-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
257256
pinctrl-0 = <&exmif_default>;
258-
pinctrl-names = "default";
257+
pinctrl-1 = <&exmif_sleep>;
258+
pinctrl-names = "default", "sleep";
259259
status = "okay";
260+
260261
mx25uw63: mx25uw6345g@0 {
261-
compatible = "jedec,spi-nor";
262+
compatible = "jedec,mspi-nor";
262263
status = "disabled";
263264
reg = <0>;
264-
spi-max-frequency = <DT_FREQ_M(48)>;
265265
jedec-id = [c2 84 37];
266266
sfdp-bfp = [
267267
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -274,6 +274,15 @@ ipc0: &cpuapp_cpurad_ipc {
274274
has-dpd;
275275
t-enter-dpd = <10000>;
276276
t-exit-dpd = <30000>;
277+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
278+
279+
mspi-max-frequency = <DT_FREQ_M(50)>;
280+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
281+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
282+
mspi-hardware-ce-num = <1>;
283+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
284+
mspi-endian = "MSPI_BIG_ENDIAN";
285+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
277286
};
278287
};
279288

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
@@ -509,8 +509,8 @@
509509
status = "disabled";
510510
};
511511

512-
exmif: spi@95000 {
513-
compatible = "nordic,nrf-exmif";
512+
exmif: exmif@95000 {
513+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
514514
#address-cells = <1>;
515515
#size-cells = <0>;
516516
reg = <0x95000 0x500 0x95500 0xb00>;
@@ -519,7 +519,6 @@
519519
power-domains = <&gpd NRF_GPD_FAST_ACTIVE0>;
520520
clock-frequency = <DT_FREQ_M(400)>;
521521
fifo-depth = <32>;
522-
max-xfer-size = <16>;
523522
status = "disabled";
524523
};
525524

dts/common/nordic/nrf9280.dtsi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,16 +360,15 @@
360360
status = "disabled";
361361
};
362362

363-
exmif: spi@95000 {
364-
compatible = "nordic,nrf-exmif";
363+
exmif: exmif@95000 {
364+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
365365
#address-cells = <1>;
366366
#size-cells = <0>;
367367
reg = <0x95000 0x500 0x95500 0xb00>;
368368
reg-names = "wrapper", "core";
369369
interrupts = <149 NRF_DEFAULT_IRQ_PRIORITY>;
370370
clock-frequency = <DT_FREQ_M(400)>;
371371
fifo-depth = <32>;
372-
max-xfer-size = <16>;
373372
status = "disabled";
374373
};
375374

0 commit comments

Comments
 (0)