Skip to content

Commit 21fc3ec

Browse files
ananglnordicjm
authored andcommitted
[nrf fromtree] 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 271a41a)
1 parent 45a4bc3 commit 21fc3ec

File tree

7 files changed

+87
-21
lines changed

7 files changed

+87
-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: 15 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,17 @@ 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+
t-reset-pulse = <10000>;
288+
t-reset-recovery = <35000>;
289+
290+
mspi-max-frequency = <DT_FREQ_M(50)>;
291+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
292+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
293+
mspi-hardware-ce-num = <1>;
294+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
295+
mspi-endian = "MSPI_BIG_ENDIAN";
296+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
286297
};
287298
};
288299

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/ pwm130_default: pwm130_default {
6489
group1 {
6590
psels = <NRF_PSEL(PWM_OUT0, 9, 2)>;

boards/nordic/nrf9280pdk/nrf9280pdk_nrf9280_cpuapp.dts

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

250250
&exmif {
251-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
252251
pinctrl-0 = <&exmif_default>;
253-
pinctrl-names = "default";
252+
pinctrl-1 = <&exmif_sleep>;
253+
pinctrl-names = "default", "sleep";
254254
status = "okay";
255+
255256
mx25uw63: mx25uw6345g@0 {
256-
compatible = "jedec,spi-nor";
257+
compatible = "jedec,mspi-nor";
257258
status = "disabled";
258259
reg = <0>;
259-
spi-max-frequency = <DT_FREQ_M(48)>;
260260
jedec-id = [c2 84 37];
261261
sfdp-bfp = [
262262
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -269,6 +269,17 @@ ipc0: &cpuapp_cpurad_ipc {
269269
has-dpd;
270270
t-enter-dpd = <10000>;
271271
t-exit-dpd = <30000>;
272+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
273+
t-reset-pulse = <10000>;
274+
t-reset-recovery = <35000>;
275+
276+
mspi-max-frequency = <DT_FREQ_M(50)>;
277+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
278+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
279+
mspi-hardware-ce-num = <1>;
280+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
281+
mspi-endian = "MSPI_BIG_ENDIAN";
282+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
272283
};
273284
};
274285

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
@@ -521,8 +521,8 @@
521521
status = "disabled";
522522
};
523523

524-
exmif: spi@95000 {
525-
compatible = "nordic,nrf-exmif";
524+
exmif: exmif@95000 {
525+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
526526
#address-cells = <1>;
527527
#size-cells = <0>;
528528
reg = <0x95000 0x500 0x95500 0xb00>;
@@ -531,7 +531,6 @@
531531
power-domains = <&gpd NRF_GPD_FAST_ACTIVE0>;
532532
clock-frequency = <DT_FREQ_M(400)>;
533533
fifo-depth = <32>;
534-
max-xfer-size = <16>;
535534
status = "disabled";
536535
};
537536

dts/common/nordic/nrf9280.dtsi

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -375,16 +375,15 @@
375375
status = "disabled";
376376
};
377377

378-
exmif: spi@95000 {
379-
compatible = "nordic,nrf-exmif";
378+
exmif: exmif@95000 {
379+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
380380
#address-cells = <1>;
381381
#size-cells = <0>;
382382
reg = <0x95000 0x500 0x95500 0xb00>;
383383
reg-names = "wrapper", "core";
384384
interrupts = <149 NRF_DEFAULT_IRQ_PRIORITY>;
385385
clock-frequency = <DT_FREQ_M(400)>;
386386
fifo-depth = <32>;
387-
max-xfer-size = <16>;
388387
status = "disabled";
389388
};
390389

0 commit comments

Comments
 (0)