Skip to content

Commit de18632

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 cfa335f commit de18632

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
@@ -256,15 +256,15 @@ ipc0: &cpuapp_cpurad_ipc {
256256
};
257257

258258
&exmif {
259-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
260259
pinctrl-0 = <&exmif_default>;
261-
pinctrl-names = "default";
260+
pinctrl-1 = <&exmif_sleep>;
261+
pinctrl-names = "default", "sleep";
262262
status = "okay";
263+
263264
mx25uw63: mx25uw6345g@0 {
264-
compatible = "jedec,spi-nor";
265+
compatible = "jedec,mspi-nor";
265266
status = "disabled";
266267
reg = <0>;
267-
spi-max-frequency = <DT_FREQ_M(48)>;
268268
jedec-id = [c2 84 37];
269269
sfdp-bfp = [
270270
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -277,6 +277,17 @@ ipc0: &cpuapp_cpurad_ipc {
277277
has-dpd;
278278
t-enter-dpd = <10000>;
279279
t-exit-dpd = <30000>;
280+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
281+
t-reset-pulse = <10000>;
282+
t-reset-recovery = <35000>;
283+
284+
mspi-max-frequency = <DT_FREQ_M(50)>;
285+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
286+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
287+
mspi-hardware-ce-num = <1>;
288+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
289+
mspi-endian = "MSPI_BIG_ENDIAN";
290+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
280291
};
281292
};
282293

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

244244
&exmif {
245-
cs-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
246245
pinctrl-0 = <&exmif_default>;
247-
pinctrl-names = "default";
246+
pinctrl-1 = <&exmif_sleep>;
247+
pinctrl-names = "default", "sleep";
248248
status = "okay";
249+
249250
mx25uw63: mx25uw6345g@0 {
250-
compatible = "jedec,spi-nor";
251+
compatible = "jedec,mspi-nor";
251252
status = "disabled";
252253
reg = <0>;
253-
spi-max-frequency = <DT_FREQ_M(48)>;
254254
jedec-id = [c2 84 37];
255255
sfdp-bfp = [
256256
e5 20 8a ff ff ff ff 03 00 ff 00 ff 00 ff 00 ff
@@ -263,6 +263,17 @@ ipc0: &cpuapp_cpurad_ipc {
263263
has-dpd;
264264
t-enter-dpd = <10000>;
265265
t-exit-dpd = <30000>;
266+
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
267+
t-reset-pulse = <10000>;
268+
t-reset-recovery = <35000>;
269+
270+
mspi-max-frequency = <DT_FREQ_M(50)>;
271+
mspi-io-mode = "MSPI_IO_MODE_OCTAL";
272+
mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
273+
mspi-hardware-ce-num = <1>;
274+
mspi-cpp-mode = "MSPI_CPP_MODE_0";
275+
mspi-endian = "MSPI_BIG_ENDIAN";
276+
mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
266277
};
267278
};
268279

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

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

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)