<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <link>http://nxr.netbsd.org/rss/src/sys/modules/emcfan/Makefile</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>A driver and userland utility for a couple of families of the<br/>Microchip Technology / SMSC fan controller chips.<br/><br/>The driver and utility supports the:<br/><br/>o EMC2101 and EMC2101-R<br/>o EMC2103-1, EMC2102-2 and EMC2103-4<br/>o EMC2104<br/>o EMC2106<br/>o EMC2301<br/>o EMC2302<br/>o EMC2303<br/>o EMC2305<br/><br/>The EMC210X family supports 1 or 2 fans with tachometer.  Depending on<br/>the chip, it may support 2 additional fans without tach and might<br/>support a high side attachment (i.e. a fan, usually 5v, driven<br/>directly from the chip and not PWM or DAC).  All versions of EMC210X<br/>support internal temperature measurements, and depending on the chip,<br/>may support up to 5 additional temperature zones.  The tachometers and<br/>temperature measurements are provided to the system via the envsys(4)<br/>framework.  Some chip types support GPIO pins and support is provided<br/>via the gpio(4) framework.<br/><br/>The EMC230X family supports 1, 2, 3 or 5 fans with the same number of<br/>tachometers.  No temperature zone or GPIO support.  The tachometers<br/>are provided to the system via the envsys(4) framework.  The fan<br/>support can be provided by PWM signaling or DAC.<br/><br/>The two chip families mostly do PWM signaling for the fan speed, but a<br/>number of them support DAC output, a 0 to 3v or so voltage.  When the<br/>chip supports external temperature zones, this is done usually by a<br/>bipolar NPN or PNP transister configured as a diode, but some of the<br/>chip varients support thermistors.<br/><br/>The emcfan(4) kernel driver provides a simple read / write / seek<br/>device in /dev/ to the register set in the chip.  The heavy lifting is<br/>done in the userland utility emcfanctl(8) which provides the ability<br/>to read and write to any valid register and provides some basic higher<br/>level commands to control fan behavior.  The output is simple text<br/>lines, or JSON.<br/><br/>The kernel driver does not reset or other mess with the chip, aside<br/>from reading registers.  It is entirely possible that something else<br/>in any particular system is the major manager of the fan controller<br/>and it would not do for the kernel driver to mess too much with the<br/>attached device.  All interactions are intentional via the userland<br/>utility.<br/><br/>It is known that a EMC2301 is present on the Raspberry PI 4 Compute IO<br/>module (not to be confused with the Raspberry PI 4 Compute module<br/>itself) and there is a breakout board from Adafruit with a EMC2101 on<br/>it.  The chips themselves are pretty inexpensive from Mouser or<br/>Digi-key and can be soldered using the simpler SMD soldering<br/>techniques.  A number of the variants are QFN packages, but the pads<br/>are exposed to the side of the chip.  No other external components are<br/>required to use these fan controllers.</title>
    <description>/src/sys/modules/emcfan/Makefile - 1.1</description>
    <pubDate>Tue Mar 11 13:56:46 UTC 2025</pubDate>
    <dc:creator>brad</dc:creator>
</item>
</channel></rss>

