From 9f84889779395665ca56e2b47592f23dafada4c7 Mon Sep 17 00:00:00 2001 From: Piotr Mienkowski Date: Fri, 4 Jan 2019 20:14:52 +0100 Subject: [PATCH] soc: same70: Add SWO logger support This commit configures ETM/TPIU clock upon startup in case SWO logger backend is enabled on Atmel SAM E70 SoC. Signed-off-by: Piotr Mienkowski --- soc/arm/atmel_sam/same70/Kconfig.series | 1 + soc/arm/atmel_sam/same70/soc_config.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/soc/arm/atmel_sam/same70/Kconfig.series b/soc/arm/atmel_sam/same70/Kconfig.series index bedc0c83af8..040b7c032dc 100644 --- a/soc/arm/atmel_sam/same70/Kconfig.series +++ b/soc/arm/atmel_sam/same70/Kconfig.series @@ -15,6 +15,7 @@ config SOC_SERIES_SAME70 select SYS_POWER_LOW_POWER_STATE_SUPPORTED select CPU_HAS_ARM_MPU select ARM_MPU + select HAS_SWO help Enable support for Atmel SAM E70 ARM Cortex-M7 Microcontrollers. Part No.: SAME70J19, SAME70J20, SAME70J21, SAME70N19, SAME70N20, diff --git a/soc/arm/atmel_sam/same70/soc_config.c b/soc/arm/atmel_sam/same70/soc_config.c index f6c3fe7af83..82750efe848 100644 --- a/soc/arm/atmel_sam/same70/soc_config.c +++ b/soc/arm/atmel_sam/same70/soc_config.c @@ -35,6 +35,22 @@ static int atmel_same70_config(struct device *dev) /* Disable TDI function on PB4 pin, this is controlled by Bus Matrix */ MATRIX->CCFG_SYSIO |= CCFG_SYSIO_SYSIO4; +#ifdef CONFIG_LOG_BACKEND_SWO + /* Disable PCK3 clock used by ETM module */ + PMC->PMC_SCDR = PMC_SCDR_PCK3; + while ((PMC->PMC_SCSR) & PMC_SCSR_PCK3) { + ; + } + /* Select PLLA clock as PCK3 clock */ + PMC->PMC_PCK[3] = PMC_MCKR_CSS_PLLA_CLK; + /* Enable PCK3 clock */ + PMC->PMC_SCER = PMC_SCER_PCK3; + /* Wait for PCK3 setup to complete */ + while (!((PMC->PMC_SR) & PMC_SR_PCKRDY3)) { + ; + } +#endif + return 0; }