1
0
Fork 0
mirror of https://github.com/kidoman/embd synced 2025-07-03 11:57:38 +02:00

gpio: allow specifying the digital logical pin number as required

This commit is contained in:
Karan Misra 2014-03-23 01:11:24 +05:30
parent 83c5f3f4d7
commit 53e6c55378
5 changed files with 153 additions and 108 deletions

View file

@ -12,13 +12,13 @@ type pin interface {
type gpioDriver struct {
pinMap PinMap
initializedPins map[int]pin
initializedPins map[string]pin
}
func newGPIODriver(pinMap PinMap) *gpioDriver {
return &gpioDriver{
pinMap: pinMap,
initializedPins: map[int]pin{},
initializedPins: map[string]pin{},
}
}
@ -32,9 +32,9 @@ func (io *gpioDriver) digitalPin(key interface{}) (*digitalPin, error) {
return nil, fmt.Errorf("gpio: could not find pin matching %q", key)
}
n := pd.N
id := pd.ID
p, ok := io.initializedPins[n]
p, ok := io.initializedPins[id]
if ok {
dp, ok := p.(*digitalPin)
if !ok {
@ -51,8 +51,8 @@ func (io *gpioDriver) digitalPin(key interface{}) (*digitalPin, error) {
glog.Infof("gpio: pin %q is not a dedicated digital io pin. please refer to the system reference manual for more details", key)
}
dp := newDigitalPin(n)
io.initializedPins[n] = dp
dp := newDigitalPin(pd.DigitalLogical)
io.initializedPins[id] = dp
return dp, nil
}