github.com/tinygo-org/tinygo@v0.31.3-0.20240404173401-90b0bf646c27/src/runtime/runtime_atsame5x_can.go (about) 1 //go:build (sam && atsame51) || (sam && atsame54) 2 3 package runtime 4 5 import ( 6 "device/sam" 7 ) 8 9 func init() { 10 initCANClock() 11 } 12 13 func initCANClock() { 14 // Turn on clocks for CAN0/CAN1. 15 sam.MCLK.AHBMASK.SetBits(sam.MCLK_AHBMASK_CAN0_) 16 sam.MCLK.AHBMASK.SetBits(sam.MCLK_AHBMASK_CAN1_) 17 18 // Put Generic Clock Generator 1 as source for USB 19 sam.GCLK.PCHCTRL[sam.PCHCTRL_GCLK_CAN0].Set((sam.GCLK_PCHCTRL_GEN_GCLK1 << sam.GCLK_PCHCTRL_GEN_Pos) | 20 sam.GCLK_PCHCTRL_CHEN) 21 sam.GCLK.PCHCTRL[sam.PCHCTRL_GCLK_CAN1].Set((sam.GCLK_PCHCTRL_GEN_GCLK1 << sam.GCLK_PCHCTRL_GEN_Pos) | 22 sam.GCLK_PCHCTRL_CHEN) 23 }