mirror of
https://github.com/kidoman/embd
synced 2024-06-08 03:57:48 +02:00
Merge remote-tracking branch 'kidoman/master'
* kidoman/master: i2c: added debug logs i2c: fixed missing init call
This commit is contained in:
commit
0e820bad5b
|
@ -11,6 +11,7 @@ import (
|
|||
"time"
|
||||
"unsafe"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"github.com/kidoman/embd"
|
||||
)
|
||||
|
||||
|
@ -58,6 +59,8 @@ func (b *i2cBus) init() error {
|
|||
return err
|
||||
}
|
||||
|
||||
glog.V(2).Infof("i2c: bus %v initialized", b.l)
|
||||
|
||||
b.initialized = true
|
||||
|
||||
return nil
|
||||
|
@ -65,6 +68,7 @@ func (b *i2cBus) init() error {
|
|||
|
||||
func (b *i2cBus) setAddress(addr byte) error {
|
||||
if addr != b.addr {
|
||||
glog.V(2).Infof("i2c: setting bus %v address to %#02x", b.l, addr)
|
||||
if _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, b.file.Fd(), slaveCmd, uintptr(addr)); errno != 0 {
|
||||
return syscall.Errno(errno)
|
||||
}
|
||||
|
@ -79,6 +83,10 @@ func (b *i2cBus) ReadByte(addr byte) (byte, error) {
|
|||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
@ -97,6 +105,10 @@ func (b *i2cBus) WriteByte(addr, value byte) error {
|
|||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -114,6 +126,10 @@ func (b *i2cBus) WriteBytes(addr byte, value []byte) error {
|
|||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -138,6 +154,10 @@ func (b *i2cBus) ReadFromReg(addr, reg byte, value []byte) error {
|
|||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -187,6 +207,10 @@ func (b *i2cBus) WriteToReg(addr, reg byte, value []byte) error {
|
|||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -217,6 +241,10 @@ func (b *i2cBus) WriteByteToReg(addr, reg, value byte) error {
|
|||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -248,6 +276,10 @@ func (b *i2cBus) WriteWordToReg(addr, reg byte, value uint16) error {
|
|||
b.mu.Lock()
|
||||
defer b.mu.Unlock()
|
||||
|
||||
if err := b.init(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := b.setAddress(addr); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user