<h3>Contribution description</h3>
<p>Taken from <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="232162594" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/7107" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/7107/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/7107">#7107</a> by <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=317506" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gebart">@gebart</a>:</p>
<blockquote>
<p>This is the radio found in NXP Kinetis KW41Z, KW21Z. Only 802.15.4 mode<br>
is implemented (KW41Z also supports BLE on the same transceiver).</p>
<p>The driver uses vendor supplied initialization code for the low level<br>
XCVR hardware, these files were imported from mcuxpresso.nxp.com (KSDK 2.2.0, framework_5.3.5)</p>
<p>The reason for using the vendor code is that setting up the XCVR module requires a lot of precalculated values which I don't have time to recreate. The vendor code works and was imported with minimal modifications to support easy updates if a new version comes out.</p>
<p>Tested with two FRDM-KW41Z boards running gnrc_networking example</p>
</blockquote>
<p>Since <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="232162594" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/7107" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/7107/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/7107">#7107</a> I fixed the known bugs that were reported there and I've used it extensively for months. By now I think it's getting to be a pretty mature radio driver.</p>
<h3>Testing procedure</h3>
<p>Confirm <code>gnrc_networking</code> example works as intended.</p>
<h3>Issues/PRs references</h3>
<p>Taken from <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="232162594" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/7107" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/7107/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/7107">#7107</a>. Compatible with (but does not depend on) <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="464078105" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/11789" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/11789/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/11789">#11789</a>.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/RIOT-OS/RIOT/pull/12277'>https://github.com/RIOT-OS/RIOT/pull/12277</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>drivers/kw41zrf: Transceiver driver for the KW41Z radio</li>
  <li>examples/default: Add kw41z boards to netif boards list</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-0">boards/common/kw41z/Makefile.dep</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-1">drivers/Makefile.dep</a>
    (10)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-2">drivers/Makefile.include</a>
    (4)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-3">drivers/include/kw41zrf.h</a>
    (148)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-4">drivers/kw41zrf/Makefile</a>
    (4)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-5">drivers/kw41zrf/include/kw41zrf_getset.h</a>
    (213)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-6">drivers/kw41zrf/include/kw41zrf_intern.h</a>
    (294)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-7">drivers/kw41zrf/include/kw41zrf_netdev.h</a>
    (36)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-8">drivers/kw41zrf/kw41zrf.c</a>
    (262)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-9">drivers/kw41zrf/kw41zrf_getset.c</a>
    (301)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-10">drivers/kw41zrf/kw41zrf_intern.c</a>
    (235)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-11">drivers/kw41zrf/kw41zrf_netdev.c</a>
    (1230)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-12">drivers/kw41zrf/kw41zrf_xcvr.c</a>
    (912)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-13">drivers/kw41zrf/vendor/OSAbstraction/Interface/fsl_os_abstraction.h</a>
    (616)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-14">drivers/kw41zrf/vendor/OSAbstraction/Interface/fsl_os_abstraction_config.h</a>
    (78)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-15">drivers/kw41zrf/vendor/XCVR/MKW41Z4/Makefile</a>
    (8)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-16">drivers/kw41zrf/vendor/XCVR/MKW41Z4/fsl_os_abstraction_riot.c</a>
    (27)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-17">drivers/kw41zrf/vendor/XCVR/MKW41Z4/fsl_xcvr.h</a>
    (833)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-18">drivers/kw41zrf/vendor/XCVR/MKW41Z4/fsl_xcvr_common_config.c</a>
    (628)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-19">drivers/kw41zrf/vendor/XCVR/MKW41Z4/fsl_xcvr_mode_datarate_config.c</a>
    (217)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-20">drivers/kw41zrf/vendor/XCVR/MKW41Z4/fsl_xcvr_zgbe_config.c</a>
    (249)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-21">drivers/kw41zrf/vendor/XCVR/MKW41Z4/ifr_radio.c</a>
    (535)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-22">drivers/kw41zrf/vendor/XCVR/MKW41Z4/ifr_radio.h</a>
    (193)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-23">examples/default/Makefile</a>
    (8)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-24">sys/auto_init/auto_init.c</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/12277/files#diff-25">sys/auto_init/netif/auto_init_kw41zrf.c</a>
    (81)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/12277.patch'>https://github.com/RIOT-OS/RIOT/pull/12277.patch</a></li>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/12277.diff'>https://github.com/RIOT-OS/RIOT/pull/12277.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/12277?email_source=notifications&email_token=ABE7WYAVVRYPHDZSKW7HG2DQKQUQXA5CNFSM4IYRYIOKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HMR5TKA">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYF2HFIIOEED7EQDZATQKQUQXANCNFSM4IYRYIOA">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABE7WYFCH55W5HGU76EEZNDQKQUQXA5CNFSM4IYRYIOKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HMR5TKA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/12277?email_source=notifications\u0026email_token=ABE7WYAVVRYPHDZSKW7HG2DQKQUQXA5CNFSM4IYRYIOKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HMR5TKA",
"url": "https://github.com/RIOT-OS/RIOT/pull/12277?email_source=notifications\u0026email_token=ABE7WYAVVRYPHDZSKW7HG2DQKQUQXA5CNFSM4IYRYIOKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HMR5TKA",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>