<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nRF54L15 configurable sQSPI pins feature request</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/128626/nrf54l15-configurable-sqspi-pins-feature-request</link><description>Hi, 
 In our PCB using the nRF54L15, we used different P2 pins for the sQSPI, believing after reading the docs and driver API, that one could configure different pins than the defaults. Looking at the C driver, however, it looks like the pin numbers are</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 03 Sep 2026 07:26:26 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/128626/nrf54l15-configurable-sqspi-pins-feature-request" /><item><title>RE: nRF54L15 configurable sQSPI pins feature request</title><link>https://devzone.nordicsemi.com/thread/570859?ContentTypeID=1</link><pubDate>Thu, 03 Sep 2026 07:26:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f31548cb-cd31-463c-8e1a-f0af5d537ff8</guid><dc:creator>AHaug</dc:creator><description>&lt;p&gt;Hi Piet,&lt;/p&gt;
&lt;p&gt;I assume that the context here&amp;#39;s the sQSPI to interface the nRF54L15 and the nRF7001. If that is the case then you&amp;#39;re understanding is correct. &lt;br /&gt;&lt;br /&gt;sQSPI for VPR/FLPR VIO[0] is P2.1 for the CLK pin. VIO[1-5] are mapped to the pins in my suggested route. This is a hardware limitation in the sQSPI implementation on the L15 where only VIO[0-5] can be used.&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF54L15 configurable sQSPI pins feature request</title><link>https://devzone.nordicsemi.com/thread/570823?ContentTypeID=1</link><pubDate>Wed, 02 Sep 2026 12:11:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:051883e3-9951-4016-9a01-e1eb78aade45</guid><dc:creator>Piet0</dc:creator><description>&lt;p&gt;Hi Andreas, we have a PCB design featuring the nrf54l15 and the nrf7001 (shared antenna PCB) where the pins are connected in the following way:&lt;/p&gt;
&lt;p&gt;sck p2.06&lt;br /&gt;cs p2.05&lt;br /&gt;d0 p2.07&lt;br /&gt;d1 p2.08&lt;br /&gt;d2 p2.09&lt;br /&gt;d3 p2.10&lt;/p&gt;
&lt;p&gt;Is this not correct and should be done in the following way? route SCK to P2.01, IO0 to P2.02, IO1 to P2.04, IO2 to P2.03, IO3 to P2.00, CSN to P2.05,&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Piet&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF54L15 configurable sQSPI pins feature request</title><link>https://devzone.nordicsemi.com/thread/568847?ContentTypeID=1</link><pubDate>Tue, 07 Jul 2026 09:13:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f6a9bfc6-c27d-4a9d-85da-093a9f857ff6</guid><dc:creator>AHaug</dc:creator><description>&lt;p&gt;Hi Ulf,&lt;/p&gt;
&lt;p&gt;Yes, you are right here. Took some time to gather the relevant info, but to reiterate/summarize:&lt;/p&gt;
&lt;p&gt;From the driver, every use of&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;p_config-&amp;gt;pins.*&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;on nRF54L does this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;nrf_gpio_cfg(pin, ...)&lt;/code&gt;&amp;nbsp;configures the pad&amp;#39;s&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;DIR&lt;/code&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;INPUT&lt;/code&gt;, pull, drive strength on the CPU-side GPIO peripheral.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nrf_gpio_pin_control_select(pin, NRF_GPIO_PIN_SEL_VPR)&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;— sets&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;PIN_CNF.CTRLSEL = VPR&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;on that pad so it listens to its (silicon-fixed) FLPR output channel.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There is&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;no&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;third step where the pin numbers get written into shared RAM / a control-block register / a firmware handshake.&amp;nbsp;So the sQSPI firmware&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;has no runtime knowledge of which pins to drive. I&lt;/span&gt;t just writes to FLPR output channels&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;0..5&lt;/code&gt;, and whichever pads happen to be wired to those channels are what it drives.&lt;/p&gt;
&lt;p&gt;Only the six pins on&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;P2 that the silicon wires to VIO channels 0..5&lt;/span&gt;, in this exact role order:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;VIO ch&lt;/th&gt;
&lt;th&gt;Pin&lt;/th&gt;
&lt;th&gt;sQSPI role&lt;/th&gt;
&lt;th&gt;Pad direction&lt;/th&gt;
&lt;th&gt;Input buffer&lt;/th&gt;
&lt;th&gt;Pull&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;0&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;&lt;span&gt;P2.01&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;SCK&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Output&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Disconnected&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;No pull&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;&lt;span&gt;P2.02&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;IO0&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Output&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Connected&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Pull-up&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;&lt;span&gt;P2.04&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;IO1&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Output&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Connected&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Pull-up&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;&lt;span&gt;P2.03&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;IO2&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Output&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Connected&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Pull-up&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;&lt;span&gt;P2.00&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;IO3&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Output&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Connected&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Pull-up&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;&lt;span&gt;P2.05&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;CSN&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Output&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;Disconnected&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;div&gt;No pull&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A few sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Datasheet,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.nordicsemi.com/r/bundle/ps_nrf54l15/page/chapters/pin.html-dedicated_pins" rel="noopener noreferrer" target="_blank"&gt;Pin assignments — Dedicated pins&lt;/a&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;&amp;quot;FLPR — Uses dedicated pins on P2 for emulated peripherals such as QSPI.&amp;quot;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Datasheet package pin tables (QFN48 / QFN52 / QFN40 / CSP47): P2.00..P2.05 each list &amp;quot;QSPI D3 / SCK / D0 / D2 / D1 / CSN&amp;quot; as their&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;FLPR (QSPI)&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;dedicated function.&lt;/li&gt;
&lt;li&gt;sQSPI porting guide,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://nrfconnectdocs.nordicsemi.com/ncs/latest/nrfxlib/softperipheral/doc/sQSPI/sqspi_nrf54L_series_porting_v1_2_1.html#gpio-configuration" rel="noopener noreferrer" target="_blank"&gt;GPIO configuration&lt;/a&gt;: the default GPIO/pad table.&lt;/li&gt;
&lt;li&gt;NCS docs,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://nrfconnectdocs.nordicsemi.com/ncs/latest/nrf/app_dev/device_guides/coprocessors/rt_peripherals.html#vpr-io-vio" rel="noopener noreferrer" target="_blank"&gt;Real-time peripherals — VPR IO&lt;/a&gt;: the VIO-index&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/2194.svg" title="Left right arrow"&gt;&amp;#x2194;&lt;/span&gt;&amp;nbsp;physical-pin table.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional constraints that go with this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;Role order is fixed.&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Because the sQSPI FLPR firmware (v1.2.1) hardcodes &amp;quot;SCK = VIO ch 0, IO0 = VIO ch 1, ...&amp;quot;, you can&amp;#39;t e.g. put SCK on P2.02. If you pass a different pin ordering in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&lt;span&gt;nrf_sqspi_cfg_t.pins&lt;/span&gt;&lt;/code&gt;, the CPU driver will configure the wrong pads but the signal will still come out on the six pins above.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;P2.06..P2.10 don&amp;#39;t work for sQSPI.&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;They exist as VIO channels 6..10, but v1.2.1 sQSPI only writes to channels 0..5.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;P0.x and P1.x can never work due to&lt;/span&gt;&amp;nbsp;no VIO wiring at all, i.e a hardware limitation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So for a working PCB layout: route SCK to P2.01, IO0 to P2.02, IO1 to P2.04, IO2 to P2.03, IO3 to P2.00, CSN to P2.05, and no substitutions.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve asked the softperipheral team for the request/question if it is possible to expand the VIO table to include P2.06-2.10 or if this is restricted by design choice (I&amp;#39;m suspecting the latter)&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;br /&gt;Andreas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>