mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 02:28:41 +00:00
fix requested changes by @aykevl
This commit is contained in:
@@ -3,7 +3,15 @@ package drivers
|
||||
// I2C represents an I2C bus. It is notably implemented by the
|
||||
// machine.I2C type.
|
||||
type I2C interface {
|
||||
// ReadRegister(addr uint8, r uint8, buf []byte) error
|
||||
// WriteRegister(addr uint8, r uint8, buf []byte) error
|
||||
// Tx performs a [I²C] transaction with address addr.
|
||||
// Most I2C peripherals have some sort of register mapping scheme to allow
|
||||
// users to interact with them:
|
||||
//
|
||||
// bus.Tx(addr, []byte{reg}, buf) // Reads register reg into buf.
|
||||
// bus.Tx(addr, append([]byte{reg}, buf...), nil) // Writes buf into register reg.
|
||||
//
|
||||
// The semantics of most I2C transactions require that the w write buffer be non-empty.
|
||||
//
|
||||
// [I²C]: https://en.wikipedia.org/wiki/I%C2%B2C
|
||||
Tx(addr uint16, w, r []byte) error
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,10 +5,10 @@ const MaxRegisters = 255
|
||||
|
||||
type I2CDevice interface {
|
||||
// ReadRegister implements I2C.ReadRegister.
|
||||
ReadRegister(r uint8, buf []byte) error
|
||||
readRegister(r uint8, buf []byte) error
|
||||
|
||||
// WriteRegister implements I2C.WriteRegister.
|
||||
WriteRegister(r uint8, buf []byte) error
|
||||
writeRegister(r uint8, buf []byte) error
|
||||
|
||||
// Tx implements I2C.Tx
|
||||
Tx(w, r []byte) error
|
||||
|
||||
+4
-4
@@ -33,7 +33,7 @@ func (d *I2CDevice16) Addr() uint8 {
|
||||
}
|
||||
|
||||
// ReadRegister implements I2C.ReadRegister.
|
||||
func (d *I2CDevice16) ReadRegister(r uint8, buf []byte) error {
|
||||
func (d *I2CDevice16) readRegister(r uint8, buf []byte) error {
|
||||
if d.Err != nil {
|
||||
return d.Err
|
||||
}
|
||||
@@ -54,7 +54,7 @@ func (d *I2CDevice16) ReadRegister(r uint8, buf []byte) error {
|
||||
}
|
||||
|
||||
// WriteRegister implements I2C.WriteRegister.
|
||||
func (d *I2CDevice16) WriteRegister(r uint8, buf []byte) error {
|
||||
func (d *I2CDevice16) writeRegister(r uint8, buf []byte) error {
|
||||
if d.Err != nil {
|
||||
return d.Err
|
||||
}
|
||||
@@ -80,11 +80,11 @@ func (bus *I2CDevice16) Tx(w, r []byte) error {
|
||||
bus.c.Fatalf("i2c mock: need a write byte")
|
||||
return nil
|
||||
case 1:
|
||||
return bus.ReadRegister(w[0], r)
|
||||
return bus.readRegister(w[0], r)
|
||||
default:
|
||||
if len(r) > 0 || len(w) == 1 {
|
||||
bus.c.Fatalf("i2c mock: unsupported lengths in Tx(%d, %d)", len(w), len(r))
|
||||
}
|
||||
return bus.WriteRegister(w[0], w[1:])
|
||||
return bus.writeRegister(w[0], w[1:])
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -34,7 +34,7 @@ func (d *I2CDevice8) Addr() uint8 {
|
||||
}
|
||||
|
||||
// ReadRegister implements I2C.ReadRegister.
|
||||
func (d *I2CDevice8) ReadRegister(r uint8, buf []byte) error {
|
||||
func (d *I2CDevice8) readRegister(r uint8, buf []byte) error {
|
||||
if d.Err != nil {
|
||||
return d.Err
|
||||
}
|
||||
@@ -47,7 +47,7 @@ func (d *I2CDevice8) ReadRegister(r uint8, buf []byte) error {
|
||||
}
|
||||
|
||||
// WriteRegister implements I2C.WriteRegister.
|
||||
func (d *I2CDevice8) WriteRegister(r uint8, buf []byte) error {
|
||||
func (d *I2CDevice8) writeRegister(r uint8, buf []byte) error {
|
||||
if d.Err != nil {
|
||||
return d.Err
|
||||
}
|
||||
@@ -63,12 +63,12 @@ func (bus *I2CDevice8) Tx(w, r []byte) error {
|
||||
bus.c.Fatalf("i2c mock: need a write byte")
|
||||
return nil
|
||||
case 1:
|
||||
return bus.ReadRegister(w[0], r)
|
||||
return bus.readRegister(w[0], r)
|
||||
default:
|
||||
if len(r) > 0 || len(w) == 1 {
|
||||
bus.c.Fatalf("i2c mock: unsupported lengths in Tx(%d, %d)", len(w), len(r))
|
||||
}
|
||||
return bus.WriteRegister(w[0], w[1:])
|
||||
return bus.writeRegister(w[0], w[1:])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -50,7 +50,7 @@ func (d *I2CDeviceCmd) Addr() uint8 {
|
||||
}
|
||||
|
||||
// ReadRegister implements I2C.ReadRegister.
|
||||
func (d *I2CDeviceCmd) ReadRegister(r uint8, buf []byte) error {
|
||||
func (d *I2CDeviceCmd) readRegister(r uint8, buf []byte) error {
|
||||
if d.Err != nil {
|
||||
return d.Err
|
||||
}
|
||||
@@ -59,7 +59,7 @@ func (d *I2CDeviceCmd) ReadRegister(r uint8, buf []byte) error {
|
||||
}
|
||||
|
||||
// WriteRegister implements I2C.WriteRegister.
|
||||
func (d *I2CDeviceCmd) WriteRegister(r uint8, buf []byte) error {
|
||||
func (d *I2CDeviceCmd) writeRegister(r uint8, buf []byte) error {
|
||||
if d.Err != nil {
|
||||
return d.Err
|
||||
}
|
||||
|
||||
+2
-2
@@ -38,12 +38,12 @@ func (bus *I2CBus) NewDevice(addr uint8) *I2CDevice8 {
|
||||
|
||||
// ReadRegister implements I2C.ReadRegister.
|
||||
func (bus *I2CBus) ReadRegister(addr uint8, r uint8, buf []byte) error {
|
||||
return bus.FindDevice(addr).ReadRegister(r, buf)
|
||||
return bus.FindDevice(addr).readRegister(r, buf)
|
||||
}
|
||||
|
||||
// WriteRegister implements I2C.WriteRegister.
|
||||
func (bus *I2CBus) WriteRegister(addr uint8, r uint8, buf []byte) error {
|
||||
return bus.FindDevice(addr).WriteRegister(r, buf)
|
||||
return bus.FindDevice(addr).writeRegister(r, buf)
|
||||
}
|
||||
|
||||
// Tx implements I2C.Tx.
|
||||
|
||||
Reference in New Issue
Block a user