machine/atsamd21: support for USB CDC aka serial interface

Signed-off-by: Ron Evans <ron@hybridgroup.com>
This commit is contained in:
Ron Evans
2019-02-21 20:29:12 +01:00
committed by Ayke van Laethem
parent 7f027ddd33
commit 5438f16fcb
4 changed files with 1545 additions and 11 deletions
+13 -1
View File
@@ -24,8 +24,9 @@ func init() {
initRTC()
initUARTClock()
initI2CClock()
initUSBClock()
// connect to UART
// connect to USB CDC interface
machine.UART0.Configure(machine.UARTConfig{})
}
@@ -331,3 +332,14 @@ func initI2CClock() {
sam.GCLK_CLKCTRL_CLKEN)
waitForSync()
}
func initUSBClock() {
// Turn on clock for USB
sam.PM.APBBMASK |= sam.PM_APBBMASK_USB_
// Put Generic Clock Generator 0 as source for Generic Clock Multiplexer 6 (USB reference)
sam.GCLK.CLKCTRL = sam.RegValue16((sam.GCLK_CLKCTRL_ID_USB << sam.GCLK_CLKCTRL_ID_Pos) |
(sam.GCLK_CLKCTRL_GEN_GCLK0 << sam.GCLK_CLKCTRL_GEN_Pos) |
sam.GCLK_CLKCTRL_CLKEN)
waitForSync()
}