Documentation ¶
Overview ¶
Package gpioreg defines a registry for the known digital pins.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Aliases ¶
Aliases returns all pin aliases.
The list is guaranteed to be in order of aliase name.
func All ¶
All returns all the GPIO pins available on this host.
The list is guaranteed to be in order of number.
This list excludes aliases.
This list excludes non-GPIO pins like GROUND, V3_3, etc, since they are not GPIO.
Example ¶
fmt.Print("GPIO pins available:\n") for _, pin := range All() { fmt.Printf("- %s: %s\n", pin, pin.Function()) }
Output:
func ByName ¶
ByName returns a GPIO pin from its name, gpio number or one of its aliases.
For example on a Raspberry Pi, the following values will return the same GPIO: the gpio as a number "2", the chipset name "GPIO2", the board pin position "P1_3", it's function name "I2C1_SDA".
Returns nil if the gpio pin is not present.
Example ¶
p := ByName("GPIO6") if p == nil { log.Fatal("Failed to find GPIO6") } fmt.Printf("%s: %s\n", p, p.Function())
Output:
Example (Alias) ¶
p := ByName("LCD-D2") if p == nil { log.Fatal("Failed to find LCD-D2") } if rp, ok := p.(gpio.RealPin); ok { fmt.Printf("%s is an alias for %s\n", p, rp.Real()) } else { fmt.Printf("%s is not an alias!\n", p) }
Output:
Example (Number) ¶
// The string representation of a number works too. p := ByName("6") if p == nil { log.Fatal("Failed to find GPIO6") } fmt.Printf("%s: %s\n", p, p.Function())
Output:
func Register ¶
Register registers a GPIO pin.
Registering the same pin number or name twice is an error.
`preferred` should be true when the pin being registered is exposing as much functionality as possible via the underlying hardware. This is normally done by accessing the CPU memory mapped registers directly.
`preferred` should be false when the functionality is provided by the OS and is limited or slower.
The pin registered cannot implement the interface RealPin.
func RegisterAlias ¶
RegisterAlias registers an alias for a GPIO pin.
It is possible to register an alias for a pin that itself has not been registered yet. It is valid to register an alias to another alias or to a number. It is valid to register the same alias to the same dest multiple times.
Types ¶
This section is empty.