func init() { embd.Register(embd.HostRPi, func(rev int) *embd.Descriptor { // Refer to http://elinux.org/RPi_HardwareHistory#Board_Revision_History // for details. pins := rev3Pins if rev < 16 { pins = rev2Pins } if rev < 4 { pins = rev1Pins } return &embd.Descriptor{ GPIODriver: func() embd.GPIODriver { return embd.NewGPIODriver(pins, generic.NewDigitalPin, nil, nil) }, I2CDriver: func() embd.I2CDriver { return embd.NewI2CDriver(generic.NewI2CBus) }, LEDDriver: func() embd.LEDDriver { return embd.NewLEDDriver(ledMap, generic.NewLED) }, SPIDriver: func() embd.SPIDriver { return embd.NewSPIDriver(spiDeviceMinor, generic.NewSPIBus, nil) }, W1Driver: func() embd.W1Driver { return embd.NewW1Driver(NewW1Bus) }, } }) }
func init() { embd.Register(embd.HostBBB, func(rev int) *embd.Descriptor { return &embd.Descriptor{ GPIODriver: func() embd.GPIODriver { return embd.NewGPIODriver(pins, generic.NewDigitalPin, newAnalogPin, newPWMPin) }, I2CDriver: func() embd.I2CDriver { return embd.NewI2CDriver(generic.NewI2CBus) }, LEDDriver: func() embd.LEDDriver { return embd.NewLEDDriver(ledMap, generic.NewLED) }, SPIDriver: func() embd.SPIDriver { return embd.NewSPIDriver(spiDeviceMinor, generic.NewSPIBus, spiInitializer) }, } }) }