<?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>How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/49657/how-to-link-nrfx-gpiote-and-ppi-in-zephyr</link><description>Hello, 
 
 Zephyr 1.14.0 includes the nrfx code to use GPIOTE and PPI and my code compiles but I get 
 undefined reference errors to the nrfx_gpiote_ and nrfx_ppi_ functions. 
 All the Kconfig options regarding nrfx based PPI and GPIOTE are without prompts</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 18 Jul 2019 15:49:18 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/49657/how-to-link-nrfx-gpiote-and-ppi-in-zephyr" /><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/199347?ContentTypeID=1</link><pubDate>Thu, 18 Jul 2019 15:49:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2784b4a5-df8b-4f77-9ddd-2492c73b8595</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Didrik,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;thank you!&lt;/p&gt;
&lt;p&gt;Simply putting a &lt;strong&gt;Kconfig&lt;/strong&gt; file with this content:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;config ACTIVATE_NRFX_PPI_AND_GPIOTE&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; bool &amp;quot;Turn on the invisible NRFX_PPI and NRFX_GPIOTE options&amp;quot;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; select NRFX_PPI if HAS_HW_NRF_PPI&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; select NRFX_GPIOTE if HAS_HW_NRF_GPIOTE&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; help&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; Turn on the invisible NRFX_PPI and NRFX_GPIOTE options.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;source &amp;quot;Kconfig.zephyr&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;into the project folder and using it in the &lt;strong&gt;prj.conf:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONFIG_ACTIVATE_NRFX_PPI_AND_GPIOTE=y&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;does it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&amp;Aacute;rp&amp;aacute;d&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/199314?ContentTypeID=1</link><pubDate>Thu, 18 Jul 2019 13:37:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:060e98b2-0c3e-4f84-8deb-4d6f427e4203</guid><dc:creator>Didrik Rokhaug</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;You can add your own Kconfig file in your application, similar to the PPI trace sample.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Didrik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/198090?ContentTypeID=1</link><pubDate>Fri, 12 Jul 2019 09:20:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:245a2f10-092f-4947-a15a-cf8c0e16bb6f</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;These are the invisible Kconfig options which can not be set directly from the prj.conf&amp;nbsp;or menuconfig.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The project&amp;nbsp;&lt;a href="https://github.com/NordicPlayground/fw-nrfconnect-nrf/tree/master/samples/debug/ppi_trace"&gt;https://github.com/NordicPlayground/fw-nrfconnect-nrf/tree/master/samples/debug/ppi_trace&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;shows another way:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;1. define a visible Kconfig option which selects the options above (the second select is different then in&amp;nbsp;&lt;a href="https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/subsys/debug/ppi_trace/Kconfig"&gt;https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/subsys/debug/ppi_trace/Kconfig&lt;/a&gt;):&lt;/p&gt;
&lt;table class="highlight tab-size js-file-line-container"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="blob-code blob-code-inner js-file-line" id="LC7"&gt;menuconfig PPI_TRACE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="blob-num js-line-number" id="L8"&gt;&lt;/td&gt;
&lt;td class="blob-code blob-code-inner js-file-line" id="LC8"&gt;bool &amp;quot;Enable PPI trace&amp;quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="blob-num js-line-number" id="L9"&gt;&lt;/td&gt;
&lt;td class="blob-code blob-code-inner js-file-line" id="LC9"&gt;select NRFX_PPI if HAS_HW_NRF_PPI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="blob-num js-line-number" id="L10"&gt;&lt;/td&gt;
&lt;td class="blob-code blob-code-inner js-file-line" id="LC10"&gt;
&lt;pre&gt;select NRFX_GPIOTE if HAS_HW_NRF_GPIOTE&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="blob-num js-line-number" id="L11"&gt;&lt;/td&gt;
&lt;td class="blob-code blob-code-inner js-file-line" id="LC11"&gt;help&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="blob-num js-line-number" id="L12"&gt;&lt;/td&gt;
&lt;td class="blob-code blob-code-inner js-file-line" id="LC12"&gt;Enable PPI trace module which enables forwarding hardware events to&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="blob-num js-line-number" id="L13"&gt;&lt;/td&gt;
&lt;td class="blob-code blob-code-inner js-file-line" id="LC13"&gt;GPIOs.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;2. use this new option in the prj.conf&lt;/p&gt;
&lt;p&gt;&lt;span&gt;CONFIG_PPI_TRACE=y&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This works but currently I&amp;nbsp;hacks the Zephyr main Kconfig to define&amp;nbsp;this visible option.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What is the right solution without hacking Zephyr?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/198080?ContentTypeID=1</link><pubDate>Fri, 12 Jul 2019 08:49:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b45d51f6-9f58-4451-ae5b-8cfb9687c8ed</guid><dc:creator>Martin Lesund</dc:creator><description>&lt;p&gt;I may have been a bit quick with my answer.&lt;/p&gt;
&lt;p&gt;Please try to enable with:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_NRFX_GPIOTE=y

CONFIG_NRFX_PPI=y&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/198053?ContentTypeID=1</link><pubDate>Fri, 12 Jul 2019 08:21:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6d192634-8a1d-467c-909b-49792cdfd5f8</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Martin,&lt;/p&gt;
&lt;p&gt;as I see these examples creates a new Kconfig option CONFIG_PPI_TRACE which when selected selects the not directly selectable CONFIG_&lt;span&gt;NRFX_PPI. What I don&amp;#39;t see, how to integrate this Kconfig fragment into the Kconfig tree to parse without hacking Zephyr?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;Aacute;rp&amp;aacute;d&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/198020?ContentTypeID=1</link><pubDate>Fri, 12 Jul 2019 07:43:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f345f5e9-2060-485e-a52a-0ff8fe17ace2</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;It seems to me that the problem is the missing PPI setup.&lt;/p&gt;
&lt;p&gt;How can I activate the PPI by Kconfig?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/198011?ContentTypeID=1</link><pubDate>Fri, 12 Jul 2019 07:33:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ae0998b0-9513-4b92-8e94-ddfa5b470a89</guid><dc:creator>PopradiArpad</dc:creator><description>&lt;p&gt;Hi Martin,&lt;/p&gt;
&lt;p&gt;thanks for the quick answer.&lt;/p&gt;
&lt;p&gt;I have&amp;nbsp;updated my prj.conf&amp;nbsp;with the 3 config options above but got the same problem.&lt;/p&gt;
&lt;p&gt;You mean&amp;nbsp;&lt;/p&gt;
&lt;p&gt;#include &amp;lt;nrfx_gpiote.h&amp;gt;&lt;/p&gt;
&lt;p&gt;and not&lt;/p&gt;
&lt;p&gt;#include &amp;lt;nrf_gpiote.h&amp;gt;&lt;/p&gt;
&lt;p&gt;I think.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I study the code samples you lists yet.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&amp;Aacute;rp&amp;aacute;d&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to link nrfx GPIOTE and PPI in Zephyr?</title><link>https://devzone.nordicsemi.com/thread/198003?ContentTypeID=1</link><pubDate>Fri, 12 Jul 2019 07:17:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e44ad1ad-c892-407f-9993-7608871dde75</guid><dc:creator>Martin Lesund</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;span&gt;Árpád,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;PPI is used in&amp;nbsp;the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;PPI trace sample:&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/NordicPlayground/fw-nrfconnect-nrf/tree/master/samples/debug/ppi_trace"&gt;https://github.com/NordicPlayground/fw-nrfconnect-nrf/tree/master/samples/debug/ppi_trace&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And the&amp;nbsp;&lt;strong&gt;subsys&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;(sub system):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/subsys/debug/ppi_trace/ppi_trace.c"&gt;https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/subsys/debug/ppi_trace/ppi_trace.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The sample can be used both for 52 and 91 so that’s why the sample is called “PPI”. (nrf91 uses DPPI)&lt;/p&gt;
&lt;p&gt;In the code you have for example:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#ifdef DPPI_PRESENT&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;which will in turn use the nrfx_&lt;strong&gt;dppi&lt;/strong&gt;_channel_alloc() function.&lt;/p&gt;
&lt;p&gt;(while if&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;not&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;DPPI_PRESENT then it’s the “standard” nrfx_&lt;strong&gt;ppi&lt;/strong&gt;_channel_alloc())&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So in your case, you should use this sample as a reference on how to use PPI for nrf52.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;em&gt;Remember to add:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#include &amp;lt;nrfx_ppi.h&amp;gt;
#include &amp;lt;nrf_gpiote.h&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Have you made sure to enable these configurations in either &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/kconfig/index.html#checking-changes-in-menuconfig" rel="noopener noreferrer" target="_blank"&gt;&amp;quot;ninja menuconfig&amp;quot;&lt;/a&gt; or adding it in prj.conf?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_GPIO=y

CONFIG_GPIO_NRFX=y

CONFIG_GPIO_NRF_P0=y&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;best regards,&lt;br /&gt;martin L.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>