DS28E17IIC(4)
π DS28E17IIC β the Maxim DS28E17 1-Wire to I2C bridge driver, bestie edition
okay so picture this: it's a ds28e17iic driver page from the Kernel Interfaces Manual (section 4, the device drivers girlies β¨), and it's literally about a tiny chip that bridges 1-Wire to I2C. ngl it's kind of iconic. let's get into it π«Ά
π SYNOPSIS
ds28e17iic* at onewire?
that's the whole config line, periodt. it attaches at onewire? and that's it π
β¨ DESCRIPTION β¨
so the ds28e17iic driver gives you a 1-Wire to I2C bridge β with a iic(4) bus sitting at the far end of it β using the DS28E17 bridge chip. it's giving translator, it's giving middleman with main character energy π§
and the DS28E17? it will automatically detect and deal with a device at the other end of the bus that uses I2C clock stretching. no cap, it just handles it. slay. π
π SYSCTL VARIABLES π
the following sysctl(3) variables are provided, bestie:
hw.ds28e17iic0.readycountβ the how-many-times knob (seereadydelayright below, they're a duo π―)hw.ds28e17iic0.readydelayβ okay so when the driver sends a transaction down the 1-Wire bus,readycountandreadydelaytogether control 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 they're too short, aEAGAINtimeout will occur when the end device is just taking a longer than expected amount of time to respond π this may be particularly noticed if the end device is doing clock stretching. ask me how I know πhw.ds28e17iic0.reportreadnostopβ if set to1, report that an attempt to do a Read without a Stop occurred. the chip does not support that operation, bestie, it simply does not π so 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. fingers crossed fr fr π€hw.ds28e17iic0.reportzerolenβ if set to1, 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. that's it. that's the rule. π«hw.ds28e17iic0.debugβ if the driver is compiled withDS28E17IIC_DEBUG, this node will appear and can be used to set the debugging level. debugging mode: activated π₯
π SEE ALSO π
onewire(4), iic(4), sysctl(8) β go read those too, iykyk π
π¦ HISTORY π¦
the ds28e17iic driver first appeared in NetBSD 11.0. a legend was born β¨π
π AUTHORS π
the ds28e17iic driver was written by Brad Spencer <brad@anduin.eldar.org>. thank you brad, you ate π«Άπ
π BUGS π
- while this may not be considered a bug (okay but it's weird tho), the DS28E17 chip will detach itself from the
onewire(4)bus if there is not a device connected to itsSDAandSCLpins. it's giving abandonment issues π plug something in, bestie!! - the
i2cscan(8)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 thei2cscan(8)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. so likeβ¦ it kinda works? it's giving "works on my machine" ππ just know the vibes are limited here.
that's the whole page, bestie!! π this lil rewrite came to you from the Debian edition, dated January 12, 2025 β mwah, stay hydrated, and don't forget to terminate your buses πβ¨π
π¦ where this page comes from
- nixpkgs unstable: netbsd-source 11.0
- Copyright (c) 2025 Brad Spencer <brad@anduin.eldar.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms