9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Brian L. Stuart" <blstuart@bellsouth.net>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] Raspberry Pi 2 GPIO
Date: Mon, 16 Sep 2019 18:41:10 +0000 (UTC)	[thread overview]
Message-ID: <2144324215.5454047.1568659270850@mail.yahoo.com> (raw)
In-Reply-To: <5f5924f18bda47cb4178935608cb5c9b@hamnavoe.com>

[-- Attachment #1: Type: text/plain, Size: 4516 bytes --]

 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.

  

[-- Attachment #2: Type: text/html, Size: 4998 bytes --]

      reply	other threads:[~2019-09-16 18:41 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-31  8:03 Олег Бахарев
2019-09-07 13:30 ` Richard Miller
2019-09-10 14:23   ` Олег Бахарев
2019-09-10 15:42     ` Brian L. Stuart
2019-09-10 16:20       ` Richard Miller
2019-09-10 23:18         ` Brian L. Stuart
2019-09-12  9:39           ` Richard Miller
2019-09-16 18:41             ` Brian L. Stuart [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2144324215.5454047.1568659270850@mail.yahoo.com \
    --to=blstuart@bellsouth.net \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).