<h3>Contribution description</h3>
<p>Adds a driver for the TI BQ249x line of charger and power management ICs, they can be configured through I2C and this driver gives a simple interface to change it. It includes functions to change the charge and input power parameters. It can also get the charge status and the VBUS type detected, whether it's a charger, a normal USB port, on OTG mode or none.</p>
<p>These ICs only manage power and charge, and don't do monitoring of voltage, current, etc (only detection of over voltage and such, reported through interrupts).</p>
<p>It includes interrupt functionality for when the IC reports a fault, and has a dedicated register to read it, how should it be handled in this case (the register), should it have a function that reads it and the user manually checks the bitfields?</p>
<h3>Testing procedure</h3>
<ul>
<li><code>make -C tests/driver_bq2429x flash term</code> to test the example test.</li>
<li><code>USEMODULE=bq2429x_int make -C tests/driver_bq2429x flash term</code> to test the driver with interrupt functionality<br>
instead of polling.</li>
</ul>
<h3>Issues/PRs references</h3>
<p>None</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/15523'>https://github.com/RIOT-OS/RIOT/pull/15523</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>drivers: add bq2429x power management IC driver</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-fcf14c4b7b34fe7a11916195871ae66a59be87a395f28db73e345ebdc828085b">CODEOWNERS</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-28d8a48a8f24b451dadf1eda5ae95ccc90d4387a31b659472d3c315650546b8c">drivers/Kconfig</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-ac5af499fdca2cbb52e29f3ac828b3cb41e70de44b3043e4c8f4e7b7a6eb0c4f">drivers/Makefile.dep</a>
    (4)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-2ab8f2d6f7f89b02bc8c93f7a4f365c82516d4f27c2a549ca9106ac71f2e3ae1">drivers/bq2429x/Kconfig</a>
    (18)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-ad51bc323e572c1d5008fa09b4a206be368ee3102fcff0c5d841d3e9378c878b">drivers/bq2429x/Makefile</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-d7d38c80b66533ba30e028f90eb6be006a931c6ba6fe92ed0d91821e43b47a90">drivers/bq2429x/Makefile.dep</a>
    (4)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-8e04f21b010afeb3d6f0304e6c49724a09fe193329f9c54596e1825b3c97226b">drivers/bq2429x/Makefile.include</a>
    (2)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-34f5568b1235ee3039db8c2dd3cabf74055b4f26f0c406d5bf55901736c29245">drivers/bq2429x/bq2429x.c</a>
    (216)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-1fa05185b4f91c97af513382db6e29bfbf38526776c2b221d85c719c7b1f0689">drivers/bq2429x/include/bq2429x_internal.h</a>
    (81)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-87066f4dea63aa33a516ce9b3b8b615774fa57c8f6ea60657a9d9e3afd18fbcc">drivers/bq2429x/include/bq2429x_params.h</a>
    (88)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-fe0746baebbe52957b35a79011f7efd621ff9e50be2480bcee8b2481f8d7ec07">drivers/include/bq2429x.h</a>
    (320)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-d2e4f5b2cddc5eddb20e42bf88b7b16085ba4599fab8081e6f6168f60e12fedb">makefiles/pseudomodules.inc.mk</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-ebaf95496b109996c9a8ec73863efdf3c72f629f9287ad280b9715dd58291299">tests/driver_bq2429x/Makefile</a>
    (8)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-5939d3a5c2ebdbc2c62b3e64ccc4e4a81a7aefd95327b6763ca47732a442792b">tests/driver_bq2429x/README.md</a>
    (21)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-77ce0cac11b3a8f02da2bef7413e72bcadb7f7a6a4958fcde5bbf4cbe78132a0">tests/driver_bq2429x/app.config.test</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15523/files#diff-202b58a3a067d98b6392ef58336acd33e163a36ca42104f9c9f3d1d8308b6f53">tests/driver_bq2429x/main.c</a>
    (133)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/15523.patch'>https://github.com/RIOT-OS/RIOT/pull/15523.patch</a></li>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/15523.diff'>https://github.com/RIOT-OS/RIOT/pull/15523.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/15523">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYDTRWLHBMHV2X2L6CLSSOFFJANCNFSM4UHP22OA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABE7WYDR2GK5ARTS7NGUKWLSSOFFJA5CNFSM4UHP22OKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4LHIP4BA.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/15523",
"url": "https://github.com/RIOT-OS/RIOT/pull/15523",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>