blob: 07aca3af367009b7d1334f45e428c195a417c23f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<table class="head">
<tr>
<td class="head-ltitle">DS28E17IIC(4)</td>
<td class="head-vol">Device Drivers Manual</td>
<td class="head-rtitle">DS28E17IIC(4)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">ds28e17iic</code> —
<span class="Nd">Driver for Maxim DS28E17 1-Wire to I2C bridge</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="Cd">ds28e17iic* at onewire?</code></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">ds28e17iic</code> driver provides a 1-Wire to
I2C bridge with a <a class="Xr">iic(4)</a> bus at the far end using the
DS28E17 bridge chip.</p>
<p class="Pp">The DS28E17 will automatically detect and deal with a device at
the other end of the bus that uses I2C clock stretching.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL
VARIABLES</a></h1>
<p class="Pp">The following <a class="Xr">sysctl(3)</a> variables are
provided:</p>
<dl class="Bl-tag">
<dt id="hw.ds28e17iic0.readycount"><a class="permalink" href="#hw.ds28e17iic0.readycount"><code class="Li">hw.ds28e17iic0.readycount</code></a></dt>
<dd style="width: auto;"> </dd>
<dt id="hw.ds28e17iic0.readydelay"><a class="permalink" href="#hw.ds28e17iic0.readydelay"><code class="Li">hw.ds28e17iic0.readydelay</code></a></dt>
<dd>When the driver sends a transaction down the 1-Wire bus, these variables
are how long to delay before reading the status on whether or not the
conversion is done and the number of times to perform this read back. In
general, these values should be as short as possible, but if there are too
short, a EAGAIN timeout will occur when the end device is just taking a
longer than expect amount of time to respond. This may be particularly
noticed if end device is doing clock stretching.</dd>
<dt id="hw.ds28e17iic0.reportreadnostop"><a class="permalink" href="#hw.ds28e17iic0.reportreadnostop"><code class="Li">hw.ds28e17iic0.reportreadnostop</code></a></dt>
<dd>If set to 1, report that an attempt to do a Read without a Stop occurred.
The chip does not support that operation. Read without Stop will be
treated as a Read with a Stop with the hope that the end device will be
able to deal with that.</dd>
<dt id="hw.ds28e17iic0.reportzerolen"><a class="permalink" href="#hw.ds28e17iic0.reportzerolen"><code class="Li">hw.ds28e17iic0.reportzerolen</code></a></dt>
<dd>If set to 1, report that an attempt to perform a zero length read or zero
length write occurred. The chip does not support zero length reads or
writes.</dd>
<dt id="hw.ds28e17iic0.debug"><a class="permalink" href="#hw.ds28e17iic0.debug"><code class="Li">hw.ds28e17iic0.debug</code></a></dt>
<dd>If the driver is compiled with <code class="Dv">DS28E17IIC_DEBUG</code>,
this node will appear and can be used to set the debugging level.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<p class="Pp"><a class="Xr">onewire(4)</a>, <a class="Xr">iic(4)</a>,
<a class="Xr">sysctl(8)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">ds28e17iic</code> driver first appeared in
<span class="Ux">NetBSD 11.0</span>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp">The <code class="Nm">ds28e17iic</code> driver was written by
<span class="An">Brad Spencer</span>
<<a class="Mt" href="mailto:brad@anduin.eldar.org">brad@anduin.eldar.org</a>>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
<p class="Pp">While this may not be considered a bug, the DS28E17 chip will
detach itself from the <a class="Xr">onewire(4)</a> bus if there is not a
device connected to its SDA and SCL pins.</p>
<p class="Pp">The <a class="Xr">i2cscan(8)</a> command will not function
entirely correctly when run against a DS28E17 chip. The default mode of
doing a I2C Write with Stop that is zero length is not supported by the
DS28E17 chip. When the <a class="Xr">i2cscan(8)</a> command is used with its
one byte read mode it will find devices as long as the device does not NACK
on a I2C read.</p>
<p class="Pp"></p>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">January 12, 2025</td>
<td class="foot-os">NetBSD 10.1</td>
</tr>
</table>
|