On Thursday, September 12, 2019, 5:43:13 AM EDT, Richard Miller <9fans@hamnavoe.com> wrote: > > Do you also need the man pages for i2c and > > spi, or did I send those the first time around? > > If you sent them, they must have gone astray ... if you can > supply a new copy, I'll add them to the image too. Thanks! Okay. I've appened at the end here both of them, i2c first. I think they're up to date, but it's been a while since I did much with them, and I can't vouch for how well my memory works as the years go by. BLS .TH I2C 3 .SH NAME i2c \- basic I2C interface .SH SYNOPSIS .B bind -a .BI #J n .B /dev .PP .BI /dev/i2c. n .ctl . br .BI /dev/i2c. n .data .fi .SH DESCRIPTION .I I2c serves a one-level directory with two files that give access to the target device with address .I n (given in hexadecimal) on the system's I2C bus. .I N is usually determined by the I2C device manufacturer. I2C gives address 0 special meaning as the `general call' address. See an I2C specification for details. .PP The control file .BI i2c. n .ctl accepts commands to set the valid address range and subaddressing mode for the corresponding data file. The following control messages can be written to it: .TP .B a10 Force 10-bit addressing instead of 7-bit addressing. Otherwise 10-bit addressing is used only if the device address .I n is bigger than 255. .TP .BI size " nbytes" .br Set the logical size of the target device to .IR nbytes . (By default when opened, it is 256 bytes, enough for most small I2C devices.) IO requests will be kept within this limit. This value is also returned by .B Sys->stat as the length of the data file. .TP .BI subaddress " \fR[\fP n \fR]\fP" .br Cause subsequent reads and writes on the data file to use I2C subaddressing with .I n byte subaddresses (default: 1 byte). .I N must be no larger than 4. The target device must support subaddressing. By default, the device is not subaddressed. Setting .I n to zero switches off subaddressing. .PP When read, the control file displays the current settings. .PP The data file .BI i2c. n .data can be read or written to exchange data with the slave device with address .I n (where .I n is given in hexadecimal). Each write request transmits the given data to the device. Each read request sends a receive request to the device and returns the resulting data. If the I2C target is subaddressed, the current file offset is used as the subaddress; otherwise the file offset is ignored, and the device typically starts at 0 for each transfer request. Read and write requests are trimmed to the declared size of the device. .SH SOURCE .B /sys/src/9/bcm/devi2c.c .br .B /sys/src/9/bcm/i2c.c .TH SPI 3 .SH NAME spi \- access to the main Raspberry Pi SPI interface .SH SYNOPSIS .B bind -a #π /dev .PP .B /dev/spictl .br .B /dev/spi0 .br .B /dev/spi1 .SH DESCRIPTION The Broadcom SoC on the Raspberry Pi has three SPI interfaces: the main SPI interface, designated SPI0, and two auxiliary SPI interfaces, designated SPI1 and SPI2. On the first generation Pis, only SPI0 was brought out to the header on the board. For the B+ and Pi2 models, SPI0 and SPI1 are available. The driver described in this man page only supports SPI0. .PP Reads and writes to the files .B spi0 and .B spi1 transfer data over the SPI bus. Accesses to .B spi0 cause the transfers to take place with the CE0\_0 line asserted low. Similarly, transfers to .B spi1 are carried out with CE1\_0 asserted low. .PP The .B spictl file is used to set various control parameters. It accepts the following commands: .TP .BI clock " freq" Set the frequency of the SPI clock. The clock from which the SPI clock is derived runs at 250MHz, and the Broadcom documentation specifies that the divisor must be a power of 2. The driver sets the divisor to the highest power of 2 that results in a clock rate that is less than or equal to the .I freq parameter in MHz. .TP .BI mode " n" Treats .I n as a two-bit number specifying the settings for the clock phase and clock polarity. The default value of 0 matches the polarity and phase requirements of most peripheral devices. .TP .B lossi Enable a bidirectional mode where the MOSI line is used for both reads and writes. .SH SOURCE .B /sys/src/9/bcm/devspi.c .br .B /sys/src/9/bcm/spi.c .SH BUGS The various SPI modes are untested and the LoSSI support is unimplemented.