Skip to content

Commit 0fc47f3

Browse files
committed
app: Add 91M1 overlay for pin configuration
Add overlay and documentation for 91M1 pin configuration for v2.x pre-releases. Signed-off-by: Markus Lassila <markus.lassila@nordicsemi.no>
1 parent 258d067 commit 0fc47f3

5 files changed

Lines changed: 158 additions & 0 deletions

File tree

app/overlay-91m1.overlay

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/*
2+
* Copyright (c) 2026 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/* AT command UART */
8+
&uart0 {
9+
compatible = "nordic,nrf-uarte";
10+
current-speed = <115200>;
11+
hw-flow-control;
12+
status = "okay";
13+
14+
dtr_uart0: dtr-uart {
15+
compatible = "nordic,dtr-uart";
16+
dtr-gpios = <&gpio0 31 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; /* 9151 SiP LGA pin: 50 */
17+
ri-gpios = <&gpio0 30 GPIO_ACTIVE_LOW>; /* 9151 SiP LGA pin: 49 */
18+
status = "okay";
19+
};
20+
pinctrl-0 = <&uart0_default_91m1>;
21+
pinctrl-1 = <&uart0_sleep_91m1>;
22+
pinctrl-names = "default", "sleep";
23+
};
24+
25+
&gpio0 {
26+
status = "okay";
27+
/* Use PORT event for DTR (31) pin to save power */
28+
sense-edge-mask = <0x80000000>;
29+
};
30+
31+
/* Log / Trace UART */
32+
&uart1 {
33+
pinctrl-0 = <&uart1_default_91m1>;
34+
pinctrl-1 = <&uart1_sleep_91m1>;
35+
pinctrl-names = "default", "sleep";
36+
};
37+
38+
&pinctrl {
39+
uart0_default_91m1: uart0_default_91m1 {
40+
group1 {
41+
psels = <NRF_PSEL(UART_RX, 0, 26)>; /* 9151 SiP LGA pin: 44 */
42+
bias-pull-up;
43+
};
44+
group2 {
45+
psels = <NRF_PSEL(UART_CTS, 0, 15)>; /* 9151 SiP LGA pin: 75 */
46+
bias-pull-down;
47+
};
48+
group3 {
49+
psels = <NRF_PSEL(UART_TX, 0, 27)>, /* 9151 SiP LGA pin: 45 */
50+
<NRF_PSEL(UART_RTS, 0, 14)>; /* 9151 SiP LGA pin: 74 */
51+
};
52+
};
53+
54+
uart0_sleep_91m1: uart0_sleep_91m1 {
55+
group1 {
56+
psels = <NRF_PSEL(UART_TX, 0, 27)>,
57+
<NRF_PSEL(UART_RX, 0, 26)>,
58+
<NRF_PSEL(UART_RTS, 0, 14)>,
59+
<NRF_PSEL(UART_CTS, 0, 15)>;
60+
low-power-enable;
61+
};
62+
};
63+
64+
uart1_default_91m1: uart1_default_91m1 {
65+
group1 {
66+
psels = <NRF_PSEL(UART_TX, 0, 29)>; /* 9151 SiP LGA pin: 48 */
67+
};
68+
69+
group2 {
70+
psels = <NRF_PSEL(UART_RX, 0, 28)>; /* 9151 SiP LGA pin: 47 (floating) */
71+
bias-pull-up;
72+
};
73+
};
74+
75+
uart1_sleep_91m1: uart1_sleep_91m1 {
76+
group1 {
77+
psels = <NRF_PSEL(UART_TX, 0, 29)>,
78+
<NRF_PSEL(UART_RX, 0, 28)>;
79+
low-power-enable;
80+
};
81+
};
82+
};

app/sample.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ tests:
9696
- thingy91x/nrf9151/ns
9797
integration_platforms:
9898
- nrf9151dk/nrf9151/ns
99+
serial_modem.91m1:
100+
sysbuild: true
101+
build_only: true
102+
extra_args:
103+
- EXTRA_CONF_FILE="overlay-cmux.conf;overlay-ppp.conf"
104+
- EXTRA_DTC_OVERLAY_FILE="overlay-91m1.overlay"
105+
platform_allow:
106+
- nrf9151dk/nrf9151/ns
99107
serial_modem.memfault:
100108
sysbuild: true
101109
build_only: true

doc/app/sm_configuration.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ The following configuration files are provided:
274274
The overlay is pin compatible with nRF9151DK.
275275
For other setups, you can customize the overlay to fit your configuration.
276276

277+
* :file:`overlay-91m1.overlay` - Devicetree overlay for use with the nRF91M1 SiP.
278+
Configures ``uart0`` and ``uart1`` with pins suitable for both 9151 DK usage and for connecting to an external MCU.
279+
See :ref:`uart_configuration_nrf91m1` for pin details.
280+
277281
* :file:`overlay-carrier.conf` - Configuration file that adds |NCS| `LwM2M carrier`_ support.
278282
See :ref:`sm_carrier_library_support` for more information on how to connect to an operator's device management platform.
279283

doc/links.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
.. _`nRF91 DK`: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/device_guides/nrf91/index.html#ug-nrf91
1818
.. _`nrf9151dk`: https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/boards/nordic/nrf9151dk/doc/index.html#nrf9151dk
1919
.. _`nRF9151 Product Specification`: https://docs.nordicsemi.com/bundle/ps_nrf9151/page/nRF9151_html5_keyfeatures.html
20+
.. _`nRF9151 LGA pin assignments`: https://docs.nordicsemi.com/bundle/ps_nrf9151/page/pin.html#ariaid-title2
2021
.. _`Thingy91x_firmware_update`: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/device_guides/thingy91x/thingy91x_updating_fw_programmer.html#updating_the_firmware_on_the_nrf5340_soc
2122
.. _`shared TF-M logging`: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/device_guides/nrf91/nrf91_snippet.html#tfm-enable-share-uart
2223

doc/uart_configuration.rst

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,69 @@ The following tables shows how to connect the UART pins to the corresponding pin
163163
The RI pin is connected to the blue LED, which is used to indicate incoming data.
164164

165165

166+
.. _uart_configuration_nrf91m1:
167+
168+
nRF91M1 - pre-programmed |SM| application
169+
===================================================
170+
171+
nRF91M1 is a pre-programmed nRF9151 SiP that runs the |SM| application out of the box.
172+
173+
The pin mapping of the nRF91M1 follows the `nrf9151dk`_ board configuration.
174+
91M1 software can be flashed to `nrf9151dk`_ board for development and testing purposes.
175+
176+
The following table shows how to connect the UART pins to the corresponding pins on the nRF91M1 SiP:
177+
178+
.. list-table::
179+
:header-rows: 1
180+
181+
* - Signal
182+
- `nrf9151dk`_
183+
- `nRF9151 LGA pin assignments`_
184+
* - UART0 TX
185+
- P0.27
186+
- 45
187+
* - UART0 RX
188+
- P0.26 (pull-up)
189+
- 44 (pull-up)
190+
* - UART0 RTS
191+
- P0.14
192+
- 74
193+
* - UART0 CTS
194+
- P0.15 (pull-down)
195+
- 75 (pull-down)
196+
* - UART0 DTR
197+
- P0.31 (active low, pull-up) (Wire to GND to power on the UART0)
198+
- 50 (active low, pull-up)
199+
* - UART0 RI
200+
- P0.30 (active low)
201+
- 49 (active low)
202+
* - UART1 TX
203+
- P0.29
204+
- 48
205+
206+
**AT UART:**
207+
208+
* UART instance: UART0 (VCOM0)
209+
* Baud rate: 115200
210+
* Hardware flow control: Enabled
211+
212+
**Log / Trace UART:**
213+
214+
* UART instance: UART1 (VCOM1)
215+
* Baud rate: 1000000
216+
* Hardware flow control: Disabled
217+
218+
.. important::
219+
When working with `nrf9151dk`_ board with a PC host, the DTR pin must be wired to GND to power on the UART0.
220+
Currently, this needs to be done with a physical jumper wire, but in the future, this can be done in the `Board Configurator app`_.
221+
222+
By default in the `nrf9151dk`_ board, the UART0 is routed to VCOM0 on the interface chip, and UART1 is routed to VCOM1 on the interface chip.
223+
This allows the `nrf9151dk`_ board to be used with a PC host for development and testing.
224+
225+
When working with `nrf9151dk`_ board with external MCU host, VCOM0 and VCOM1 must be disabled in the `Board Configurator app`_ to release the UART pins for external use.
226+
227+
This setup is provided in the :file:`app/overlay-91m1.overlay` devicetree overlay file.
228+
166229
Host application
167230
================
168231

0 commit comments

Comments
 (0)