zephyr/soc/arm
Ionut Catalin Pavel f450153c64 soc: arm: atmel_sam0: improved samd20/samd21/samr21 clocking mechanism
There are some issues with the current version of the code, mainly the
improper use of the internal OSC8M as a source for the DFLL48m without
division. The DFLL48M is designed to accept a maximum of ~33KHz
at it's input, as higher values will bring the multiplier down,
leading to instability.

Also added the following features:
* Support for external HF oscillator (XOSC)
* Support for crystal/external oscillators on XOSC32K/XOSC
* Automatic dividers/multiplier computation based on DT cpu frequency
* Support for user configurable NVM wait states
* Added option to skip clock (re)initialization (bootloader usecase).

Tests were performed on a custom SAMD20G18 board using different clock
sources and cpu frequencies.
Clocks were routed to GPIO pins and observed on a scope.
According to the datasheet, architecture is identical on D21/R21.

Due to the nature of the internal architecture and the fact that
DFLL48M is not really meant to output anything other than 48MHZ
some combinations of requested DT cpu frequency and source
frequency will not result in a perfect match.

Mostly insipred by the SAML21 implementation.

Signed-off-by: Ionut Catalin Pavel <iocapa@iocapa.com>
2023-04-07 13:21:44 +02:00
..
arm soc: fvp_aemv8r_aarch32: enable caches at init 2023-03-29 09:03:37 +02:00
aspeed cache: Fix libraries and drivers 2022-12-01 13:40:56 -05:00
atmel_sam drivers: clock: Add Atmel SAM PMC driver 2023-03-21 14:12:25 -07:00
atmel_sam0 soc: arm: atmel_sam0: improved samd20/samd21/samr21 clocking mechanism 2023-04-07 13:21:44 +02:00
bcm_vk include: add missing irq.h include 2022-10-11 18:05:17 +02:00
common/cortex_m
cypress include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
gigadevice soc: gd32a50x: introduce gd32a50x soc series 2023-01-12 21:45:38 +01:00
infineon_cat1 soc: infineon_cat1: Fix failing boards 2023-03-30 18:19:32 -04:00
infineon_xmc drivers: spi: Add xmc4xxx driver 2023-03-03 17:20:17 +01:00
intel_socfpga_std include: add missing nmi.h include 2022-10-11 18:05:17 +02:00
microchip_mec soc: mec172x: Add hardware debug configuration 2023-04-04 16:46:07 -04:00
nordic_nrf hal_nordic: Change scheme for RTC and TIMER reservation 2023-03-20 16:59:40 +01:00
nuvoton_npcx treewide: Disable automatic argparse argument shortening 2023-01-26 20:12:36 +09:00
nuvoton_numicro drivers: pinctrl: add numicro pinctrl driver 2022-12-08 18:46:33 +01:00
nxp_imx nxp: imx: Derive i.MX8 UARTs from DT bindings 2023-03-15 09:13:10 +01:00
nxp_kinetis drivers: gpio: Update NXP GPIO driver for the updated IP Block 2023-04-06 14:14:11 -05:00
nxp_lpc drivers: pinmux: lpc11u6x: drop driver 2023-02-23 16:56:04 -05:00
nxp_s32 boards: s32z270dc2_r52: enable Ethernet support 2023-01-24 14:37:20 +01:00
quicklogic_eos_s3 soc: arm: eos_s3: Use frequency from Kconfig to configure main clock 2022-10-20 15:41:09 +02:00
renesas_rcar
renesas_smartbond drivers: clock_control: smartbond: initial support 2023-04-05 15:09:04 +02:00
rpi_pico soc: rpi_pico: Added panic handler 2023-03-22 09:33:52 +01:00
silabs_exx32 boards: Add support for SiLabs efr32xg24_dk2601b board 2023-04-04 13:34:45 +02:00
st_stm32 treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00
ti_lm3s6965
ti_simplelink soc: arm: ti_simplelink: Add support for TI CC13X2X7 SoC series 2023-03-21 16:03:43 -04:00
xilinx_zynq7000 smp: Kconfig: Move to using MP_MAX_NUM_CPUS 2022-10-20 22:04:10 +09:00
xilinx_zynqmp
CMakeLists.txt
Kconfig