Skip to content

Commit 68db780

Browse files
committed
dts: nordic: Change compatible property for EXMIF node
This is a follow-up to commit cdf45cb. 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]>
1 parent 04dcf19 commit 68db780

File tree

7 files changed

+54
-21
lines changed

7 files changed

+54
-21
lines changed

boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20-pinctrl.dtsi

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,16 @@
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
};

boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20_cpuapp.dts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,15 +251,14 @@ ipc0: &cpuapp_cpurad_ipc {
251251
};
252252

253253
&exmif {
254-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
255254
pinctrl-0 = <&exmif_default>;
256255
pinctrl-names = "default";
257256
status = "okay";
257+
258258
mx25uw63: mx25uw6345g@0 {
259-
compatible = "jedec,spi-nor";
260-
status = "disabled";
259+
compatible = "jedec,mspi-nor";
260+
status = "okay";
261261
reg = <0>;
262-
spi-max-frequency = <DT_FREQ_M(48)>;
263262
jedec-id = [c2 84 37];
264263
sfdp-bfp = [
265264
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -272,6 +271,15 @@ ipc0: &cpuapp_cpurad_ipc {
272271
has-dpd;
273272
t-enter-dpd = <10000>;
274273
t-exit-dpd = <30000>;
274+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
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";
275283
};
276284
};
277285

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
@@ -243,15 +243,18 @@ ipc0: &cpuapp_cpurad_ipc {
243243
};
244244

245245
&exmif {
246-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
247246
pinctrl-0 = <&exmif_default>;
248247
pinctrl-names = "default";
249248
status = "okay";
249+
/* Hardware control of CS0 cannot be used until nrf-regtool is updated.
250+
* Use GPIO instead for now.
251+
*/
252+
ce-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
253+
250254
mx25uw63: mx25uw6345g@0 {
251-
compatible = "jedec,spi-nor";
252-
status = "disabled";
255+
compatible = "jedec,mspi-nor";
256+
status = "okay";
253257
reg = <0>;
254-
spi-max-frequency = <DT_FREQ_M(48)>;
255258
jedec-id = [c2 84 37];
256259
sfdp-bfp = [
257260
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -264,6 +267,15 @@ ipc0: &cpuapp_cpurad_ipc {
264267
has-dpd;
265268
t-enter-dpd = <10000>;
266269
t-exit-dpd = <30000>;
270+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
271+
272+
mspi-max-frequency = <DT_FREQ_M(50)>;
273+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
274+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
275+
mspi-hardware-ce-num = <1>;
276+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
277+
mspi-endian = "MSPI_BIG_ENDIAN";
278+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
267279
};
268280
};
269281

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
@@ -493,8 +493,8 @@
493493
status = "disabled";
494494
};
495495

496-
exmif: spi@95000 {
497-
compatible = "nordic,nrf-exmif";
496+
exmif: exmif@95000 {
497+
compatible = "nordic,nrf-exmif", "snps,designware-ssi";
498498
#address-cells = <1>;
499499
#size-cells = <0>;
500500
reg = <0x95000 0x500 0x95500 0xb00>;
@@ -503,7 +503,6 @@
503503
power-domains = <&gpd NRF_GPD_FAST_ACTIVE0>;
504504
clock-frequency = <DT_FREQ_M(400)>;
505505
fifo-depth = <32>;
506-
max-xfer-size = <16>;
507506
status = "disabled";
508507
};
509508

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)