<?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 I2C and GPIO sharing pin control</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/127371/nrf54l15-i2c-and-gpio-sharing-pin-control</link><description>Hello, 
 I am running into an issue when trying to use both GPIO and I2C peripherals on the same set of pins on an nRF54L15 board. I have an I2C bus configured on two pins, and can see the I2C traffic on that bus working as expected. However, at times</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 13 Mar 2026 22:35:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/127371/nrf54l15-i2c-and-gpio-sharing-pin-control" /><item><title>RE: nRF54L15 I2C and GPIO sharing pin control</title><link>https://devzone.nordicsemi.com/thread/563244?ContentTypeID=1</link><pubDate>Fri, 13 Mar 2026 22:35:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08023bb5-0d1f-4813-8ca1-d5e808142990</guid><dc:creator>bvyates</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;Thank you for your response, we were able to get that working!&lt;/p&gt;
&lt;p&gt;I had a bit of confusion as to which device struct we needed to be referring as the i2c_dev with these pm_device function calls. I found that it was working when providing the pointer to the I2C bus node itself, and not the nodes for the clients on the bus (ex the EEPROM or sensor chips we&amp;#39;re talking to). But with that straightened out, this seems to be working as expected.&lt;/p&gt;
&lt;p&gt;Thanks again&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF54L15 I2C and GPIO sharing pin control</title><link>https://devzone.nordicsemi.com/thread/563001?ContentTypeID=1</link><pubDate>Wed, 11 Mar 2026 09:23:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f94ac3f3-45a2-4e40-8ade-fe13dcec4f1b</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello Ben,&lt;/p&gt;
&lt;p&gt;To be able to control the pins as regular GPIOs you must disable the TWIM peripheral first (&lt;a href="https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/twim.html#ariaid-title9"&gt;TWIM pin configuration&lt;/a&gt;) like we are doing in the bus recover function here: &lt;a href="https://github.com/nrfconnect/sdk-zephyr/blob/0218b36b4a3f5ef0f641d33006c9a9ed77471b99/drivers/i2c/i2c_nrfx_twim_common.c#L17"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/0218b36b4a3f5ef0f641d33006c9a9ed77471b99/drivers/i2c/i2c_nrfx_twim_common.c#L17&lt;/a&gt;. This &amp;nbsp;can be done from the application by enabling CONFIG_PM_DEVICE and trigger the suspend/resume task before and after any TWIM transaction.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;lt;zephyr/pm/device.h&amp;gt;

...
pm_device_action_run(i2c_dev, PM_DEVICE_ACTION_SUSPEND);
...
pm_device_action_run(i2c_dev, PM_DEVICE_ACTION_RESUME);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;PM handling code for TWIM driver:&amp;nbsp;&lt;a href="https://github.com/nrfconnect/sdk-zephyr/blob/0218b36b4a3f5ef0f641d33006c9a9ed77471b99/drivers/i2c/i2c_nrfx_twim_common.c#L105"&gt;https://github.com/nrfconnect/sdk-zephyr/blob/0218b36b4a3f5ef0f641d33006c9a9ed77471b99/drivers/i2c/i2c_nrfx_twim_common.c#L105&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>