Skip to content

Commit 8e5f046

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 09015c7 commit 8e5f046

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
@@ -263,15 +263,18 @@ ipc0: &cpuapp_cpurad_ipc {
263263
};
264264

265265
&exmif {
266-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
267266
pinctrl-0 = <&exmif_default>;
268267
pinctrl-names = "default";
269268
status = "okay";
269+
/* Hardware control of CS0 cannot be used until nrf-regtool is updated.
270+
* Use GPIO instead for now.
271+
*/
272+
ce-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
273+
270274
mx25uw63: mx25uw6345g@0 {
271-
compatible = "jedec,spi-nor";
272-
status = "disabled";
275+
compatible = "jedec,mspi-nor";
276+
status = "okay";
273277
reg = <0>;
274-
spi-max-frequency = <DT_FREQ_M(48)>;
275278
jedec-id = [c2 84 37];
276279
sfdp-bfp = [
277280
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -284,6 +287,15 @@ ipc0: &cpuapp_cpurad_ipc {
284287
has-dpd;
285288
t-enter-dpd = <10000>;
286289
t-exit-dpd = <30000>;
290+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
291+
292+
mspi-max-frequency = <DT_FREQ_M(50)>;
293+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
294+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
295+
mspi-hardware-ce-num = <1>;
296+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
297+
mspi-endian = "MSPI_BIG_ENDIAN";
298+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
287299
};
288300
};
289301

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

256256
&exmif {
257-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
258257
pinctrl-0 = <&exmif_default>;
259258
pinctrl-names = "default";
260259
status = "okay";
260+
/* Hardware control of CS0 cannot be used until nrf-regtool is updated.
261+
* Use GPIO instead for now.
262+
*/
263+
ce-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
264+
261265
mx25uw63: mx25uw6345g@0 {
262-
compatible = "jedec,spi-nor";
263-
status = "disabled";
266+
compatible = "jedec,mspi-nor";
267+
status = "okay";
264268
reg = <0>;
265-
spi-max-frequency = <DT_FREQ_M(48)>;
266269
jedec-id = [c2 84 37];
267270
sfdp-bfp = [
268271
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -275,6 +278,15 @@ ipc0: &cpuapp_cpurad_ipc {
275278
has-dpd;
276279
t-enter-dpd = <10000>;
277280
t-exit-dpd = <30000>;
281+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
282+
283+
mspi-max-frequency = <DT_FREQ_M(50)>;
284+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
285+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
286+
mspi-hardware-ce-num = <1>;
287+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
288+
mspi-endian = "MSPI_BIG_ENDIAN";
289+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
278290
};
279291
};
280292

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
@@ -506,16 +506,15 @@
506506
status = "disabled";
507507
};
508508

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

dts/common/nordic/nrf9280.dtsi

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

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

0 commit comments

Comments
 (0)