mirror of
https://github.com/kidoman/embd
synced 2025-01-03 10:31:36 +01:00
gpio: make analog pin support more versatile on the bbb
This commit is contained in:
parent
5a1a40d53b
commit
f7b316332e
17
bbb.go
17
bbb.go
@ -123,7 +123,11 @@ func (p *bbbAnalogPin) init() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *bbbAnalogPin) ensureEnabled() error {
|
func (p *bbbAnalogPin) ensureEnabled() error {
|
||||||
file := "/sys/devices/bone_capemgr.8/slots"
|
pattern := "/sys/devices/bone_capemgr.*/slots"
|
||||||
|
file, err := findFirstMatchingFile(pattern)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
bytes, err := ioutil.ReadFile(file)
|
bytes, err := ioutil.ReadFile(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -142,8 +146,9 @@ func (p *bbbAnalogPin) ensureEnabled() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *bbbAnalogPin) valueFilePath() string {
|
func (p *bbbAnalogPin) valueFilePath() (string, error) {
|
||||||
return fmt.Sprintf("/sys/devices/ocp.2/helper.14/AIN%v", p.n)
|
pattern := fmt.Sprintf("/sys/devices/ocp.*/helper.*/AIN%v", p.n)
|
||||||
|
return findFirstMatchingFile(pattern)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *bbbAnalogPin) openFile(path string) (*os.File, error) {
|
func (p *bbbAnalogPin) openFile(path string) (*os.File, error) {
|
||||||
@ -151,7 +156,11 @@ func (p *bbbAnalogPin) openFile(path string) (*os.File, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *bbbAnalogPin) valueFile() (*os.File, error) {
|
func (p *bbbAnalogPin) valueFile() (*os.File, error) {
|
||||||
return p.openFile(p.valueFilePath())
|
path, err := p.valueFilePath()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return p.openFile(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *bbbAnalogPin) Read() (int, error) {
|
func (p *bbbAnalogPin) Read() (int, error) {
|
||||||
|
15
utils.go
Normal file
15
utils.go
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package embd
|
||||||
|
|
||||||
|
import "path/filepath"
|
||||||
|
|
||||||
|
// Inspiration: https://github.com/mrmorphic/hwio/blob/master/hwio.go#L451
|
||||||
|
func findFirstMatchingFile(glob string) (string, error) {
|
||||||
|
matches, err := filepath.Glob(glob)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if len(matches) >= 1 {
|
||||||
|
return matches[0], nil
|
||||||
|
}
|
||||||
|
return "", nil
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user