20.5.2.6 Peripheral Clock Masking

It is possible to disable/enable the AHB or APB clock for a peripheral by writing the corresponding bit in the Clock Mask registers MSKx to '0'/'1'. The default state of the peripheral clocks is shown here.

Table 20-1. Peripheral Clock Masking
ClockClock IndexSFR FieldPOR Default
CLK_AC_APB105CLKMSK3.MSK9Enabled
CLK_ADC_APB104CLKMSK3.MSK8Enabled
CLK_BSDAP_APB115CLKMSK3.MSK19Enabled
CLK_CAN0_AHB13CLKMSK0.MSK13Enabled
CLK_CAN1_AHB14CLKMSK0.MSK14Enabled
CLK_CCL_APB109CLKMSK3.MSK13Enabled
CLK_DMA0_AHB8CLKMSK0.MSK8Enabled
CLK_DMA0_APB65CLKMSK2.MSK1Enabled
CLK_DMA1_AHB9CLKMSK0.MSK9Enabled
CLK_DMA1_APB66CLKMSK2.MSK2Enabled
CLK_DSU_AHB3CLKMSK0.MSK3Enabled
CLK_DSU_APB32CLKMSK1.MSK0Enabled
CLK_EBI_AHB21CLKMSK0.MSK21Enabled
CLK_EBI_APB114CLKMSK3.MSK18Enabled
CLK_EIC_APB45CLKMSK1.MSK13Enabled
CLK_ETH_AHB15CLKMSK0.MSK15Enabled
CLK_ETH_APB111CLKMSK3.MSK15Enabled
CLK_EVSYS_APB70CLKMSK2.MSK6Enabled
CLK_FCR_AHB4CLKMSK0.MSK4Enabled
CLK_FCR_APB33CLKMSK1.MSK1Enabled
CLK_FCW_AHB5CLKMSK0.MSK5Enabled
CLK_FCW_APB34CLKMSK1.MSK2Enabled
CLK_FREQM_APB42CLKMSK1.MSK10Enabled
CLK_HSM_AHB22CLKMSK0.MSK22Enabled
CLK_IDAU_APB69CLKMSK2.MSK5Enabled
CLK_MBISTINTF_APB50CLKMSK1.MSK18Enabled
CLK_OSC32KCTRL_APB39CLKMSK1.MSK7Enabled
CLK_OSCCTRL_APB38CLKMSK1.MSK6Enabled
CLK_PAC_AHB6CLKMSK0.MSK6Enabled
CLK_PAC_APB46CLKMSK1.MSK14Enabled
CLK_PCC_APB108CLKMSK3.MSK12Enabled
CLK_PDEC_APB110CLKMSK3.MSK14Enabled
CLK_PORT_APB64CLKMSK2.MSK0Enabled
CLK_PRM_AHB12CLKMSK0.MSK12Enabled
CLK_PRM_APB68CLKMSK2.MSK4Enabled
CLK_PTC_APB106CLKMSK3.MSK10Enabled
CLK_RSTC_APB37CLKMSK1.MSK5Enabled
CLK_RTC_APB44CLKMSK1.MSK12Enabled
CLK_SDMMC0_AHB17CLKMSK0.MSK17Enabled
CLK_SDMMC1_AHB18CLKMSK0.MSK18Enabled
CLK_SERCOM0_APB71CLKMSK2.MSK7Enabled
CLK_SERCOM1_APB72CLKMSK2.MSK8Enabled
CLK_SERCOM2_APB73CLKMSK2.MSK9Enabled
CLK_SERCOM3_APB74CLKMSK2.MSK10Enabled
CLK_SERCOM4_APB96CLKMSK3.MSK0Enabled
CLK_SERCOM5_APB97CLKMSK3.MSK1Enabled
CLK_SERCOM6_APB98CLKMSK3.MSK2Enabled
CLK_SERCOM7_APB99CLKMSK3.MSK3Enabled
CLK_SPI_IXS_APB107CLKMSK3.MSK11Enabled
CLK_SQI_AHB16CLKMSK0.MSK16Enabled
CLK_TCC0_APB75CLKMSK2.MSK11Enabled
CLK_TCC1_APB76CLKMSK2.MSK12Enabled
CLK_TCC2_APB77CLKMSK2.MSK13Enabled
CLK_TCC3_APB78CLKMSK2.MSK14Enabled
CLK_TCC4_APB100CLKMSK3.MSK4Enabled
CLK_TCC5_APB101CLKMSK3.MSK5Enabled
CLK_TCC6_APB102CLKMSK3.MSK6Enabled
CLK_TCC7_APB103CLKMSK3.MSK7Enabled
CLK_TDM_APB51CLKMSK1.MSK19Enabled
CLK_TRAM_APB47CLKMSK1.MSK15Enabled
CLK_TRNG_APB112CLKMSK3.MSK16Enabled
CLK_USB_AHB19CLKMSK0.MSK19Enabled
CLK_USB_APB113CLKMSK3.MSK17Enabled
CLK_USBHS_AHB20CLKMSK0.MSK20Enabled
CLK_WDT_APB43CLKMSK1.MSK11Enabled

When the APB clock is not provided to a module, its registers cannot be read or written. The module can be re-enabled later by writing the corresponding mask bit to '1'.

A module may be connected to several clock domains (for instance, AHB and APB), in which case it will have several mask bits.

Note that clocks should only be switched off if it is certain that the module will not be used: Switching off the clock for the NVM Controller (NVMCTRL) will cause a problem if the CPU needs to read from the Flash Memory. Switching off the clock to the MCLK module (which contains the mask registers) or the corresponding APBx bridge, will make it impossible to write the mask registers again. In this case, they can only be re-enabled by a system reset.