<?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>Async callback support in nrf connect i2c drivers</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/113211/async-callback-support-in-nrf-connect-i2c-drivers</link><description>I&amp;#39;m working on porting an existing product based on NRF5 which uses the nrf_twi_mngr with asynchronous calls in its drivers. The drivers takes advantage of the non-blocking queue-based operation with callbacks to link operations together within ISR&amp;#39;s</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 24 Jul 2024 12:36:37 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/113211/async-callback-support-in-nrf-connect-i2c-drivers" /><item><title>RE: Async callback support in nrf connect i2c drivers</title><link>https://devzone.nordicsemi.com/thread/495413?ContentTypeID=1</link><pubDate>Wed, 24 Jul 2024 12:36:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:50543ce6-8af9-44ef-ac1a-05bc915418ee</guid><dc:creator>Naeem Maroof</dc:creator><description>&lt;p&gt;Hi Anthony,&lt;/p&gt;
&lt;p&gt;You may like to look at NRFX TWI sample that demonstrates the functionality of TWIM and TWIS in the non-blocking mode:&amp;nbsp;&lt;a href="https://github.com/zephyrproject-rtos/hal_nordic/tree/master/nrfx/samples/src/nrfx_twim_twis/tx_rx_non_blocking"&gt;NRFX TWIM/TWIS Non-Blocking Sample&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Naeem&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Async callback support in nrf connect i2c drivers</title><link>https://devzone.nordicsemi.com/thread/494871?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2024 16:59:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb2751cc-2129-4f3d-a781-f43a022cca97</guid><dc:creator>Anthony Ambuehl</dc:creator><description>&lt;p&gt;The zephyr i2c.h provides an API template for async (callback) operations, however Nordic&amp;#39;s drivers do not implement the API function for the async/callback operation.&lt;/p&gt;
&lt;p&gt;Also Zephyr&amp;#39;s API for async/callback does not easily support flexible queueing like work queues since the parameters are passed as distinct arguments instead of in a static/persistent data structure which could include space for an slist node or a worker.&lt;/p&gt;
&lt;p&gt;Without the queueing yes the operations&amp;nbsp;may&amp;nbsp;be non-blocking (depending on the implementation), but they will fail with an error if the driver is busy with another operation, and then the driver itself would need to implement a retry through some other queuing mechanism such as a work queue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Async callback support in nrf connect i2c drivers</title><link>https://devzone.nordicsemi.com/thread/494789?ContentTypeID=1</link><pubDate>Fri, 19 Jul 2024 11:51:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b9d80d1b-2e25-4abd-a530-29583e4a3778</guid><dc:creator>Jared</dc:creator><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;We have not ported the twi_manager lib to Zephyr. But if the only feature that you want is to do non-blocking read/writes then you can use the Zephyr I2C lib, as it supports async read/writes,&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;
&lt;p&gt;Jared&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>