diff --git a/drivers/dma/dma_sam_xdmac.c b/drivers/dma/dma_sam_xdmac.c
index b53d971..a7e3dea 100644
--- a/drivers/dma/dma_sam_xdmac.c
+++ b/drivers/dma/dma_sam_xdmac.c
@@ -53,7 +53,7 @@
 	const struct sam_xdmac_dev_cfg *const dev_cfg = dev->config;
 	struct sam_xdmac_dev_data *const dev_data = dev->data;
 
-	Xdmac *const xdmac = dev_cfg->regs;
+	Xdmac * const xdmac = dev_cfg->regs;
 	struct sam_xdmac_channel_cfg *channel_cfg;
 	uint32_t isr_status;
 	uint32_t err;
@@ -84,7 +84,7 @@
 {
 	const struct sam_xdmac_dev_cfg *const dev_cfg = dev->config;
 
-	Xdmac *const xdmac = dev_cfg->regs;
+	Xdmac * const xdmac = dev_cfg->regs;
 
 	if (channel >= DMA_CHANNELS_NO) {
 		return -EINVAL;
@@ -127,7 +127,7 @@
 {
 	const struct sam_xdmac_dev_cfg *const dev_cfg = dev->config;
 
-	Xdmac *const xdmac = dev_cfg->regs;
+	Xdmac * const xdmac = dev_cfg->regs;
 
 	if (channel >= DMA_CHANNELS_NO) {
 		return -EINVAL;
@@ -287,7 +287,7 @@
 {
 	const struct sam_xdmac_dev_cfg *config = dev->config;
 
-	Xdmac *const xdmac = config->regs;
+	Xdmac * const xdmac = config->regs;
 
 	if (channel >= DMA_CHANNELS_NO) {
 		return -EINVAL;
@@ -310,7 +310,7 @@
 {
 	const struct sam_xdmac_dev_cfg *config = dev->config;
 
-	Xdmac *const xdmac = config->regs;
+	Xdmac * const xdmac = config->regs;
 
 	if (channel >= DMA_CHANNELS_NO) {
 		return -EINVAL;
@@ -337,7 +337,7 @@
 {
 	const struct sam_xdmac_dev_cfg *const dev_cfg = dev->config;
 
-	Xdmac *const xdmac = dev_cfg->regs;
+	Xdmac * const xdmac = dev_cfg->regs;
 
 	/* Configure interrupts */
 	dev_cfg->irq_config();
diff --git a/drivers/flash/flash_sam.c b/drivers/flash/flash_sam.c
index f008b35..2abc46e 100644
--- a/drivers/flash/flash_sam.c
+++ b/drivers/flash/flash_sam.c
@@ -96,7 +96,7 @@
 {
 	const struct flash_sam_dev_cfg *config = dev->config;
 
-	Efc *const efc = config->regs;
+	Efc * const efc = config->regs;
 
 	uint64_t timeout_time = k_uptime_get() + SAM_FLASH_TIMEOUT_MS;
 	uint32_t fsr;
@@ -137,7 +137,7 @@
 {
 	const struct flash_sam_dev_cfg *config = dev->config;
 
-	Efc *const efc = config->regs;
+	Efc * const efc = config->regs;
 	const uint32_t *src = data;
 	uint32_t *dst = (uint32_t *)((uint8_t *)CONFIG_FLASH_BASE_ADDRESS + offset);
 
@@ -246,7 +246,7 @@
 {
 	const struct flash_sam_dev_cfg *config = dev->config;
 
-	Efc *const efc = config->regs;
+	Efc * const efc = config->regs;
 
 	LOG_DBG("offset = 0x%lx", (long)offset);
 
@@ -320,7 +320,7 @@
 {
 	const struct flash_sam_dev_cfg *config = dev->config;
 
-	Efc *const efc = config->regs;
+	Efc * const efc = config->regs;
 	int rc = 0;
 
 	if (enable) {
diff --git a/drivers/pwm/pwm_sam.c b/drivers/pwm/pwm_sam.c
index d1d381e..dca7774 100644
--- a/drivers/pwm/pwm_sam.c
+++ b/drivers/pwm/pwm_sam.c
@@ -41,7 +41,7 @@
 {
 	const struct sam_pwm_config *config = dev->config;
 
-	Pwm *const pwm = config->regs;
+	Pwm * const pwm = config->regs;
 
 	if (ch >= PWMCHNUM_NUMBER) {
 		return -EINVAL;
@@ -79,7 +79,7 @@
 {
 	const struct sam_pwm_config *config = dev->config;
 
-	Pwm *const pwm = config->regs;
+	Pwm * const pwm = config->regs;
 	uint32_t id = config->id;
 	uint8_t prescaler = config->prescaler;
 	uint8_t divider = config->divider;
diff --git a/drivers/serial/uart_sam.c b/drivers/serial/uart_sam.c
index deda50a..e2c45c3 100644
--- a/drivers/serial/uart_sam.c
+++ b/drivers/serial/uart_sam.c
@@ -95,7 +95,7 @@
 {
 	const struct uart_sam_dev_cfg *const cfg = dev->config;
 
-	Uart *const uart = cfg->regs;
+	Uart * const uart = cfg->regs;
 
 	if (!(uart->UART_SR & UART_SR_RXRDY)) {
 		return -EBUSY;
@@ -111,7 +111,7 @@
 {
 	const struct uart_sam_dev_cfg *const cfg = dev->config;
 
-	Uart *const uart = cfg->regs;
+	Uart * const uart = cfg->regs;
 
 	/* Wait for transmitter to be ready */
 	while (!(uart->UART_SR & UART_SR_TXRDY)) {
@@ -385,7 +385,7 @@
 									\
 	static const struct uart_sam_dev_cfg uart##n##_sam_config;	\
 									\
-	DEVICE_DT_INST_DEFINE(n, &uart_sam_init, 			\
+	DEVICE_DT_INST_DEFINE(n, &uart_sam_init,			\
 			    NULL, &uart##n##_sam_data,			\
 			    &uart##n##_sam_config, PRE_KERNEL_1,	\
 			    CONFIG_SERIAL_INIT_PRIORITY,		\
diff --git a/drivers/serial/uart_sam0.c b/drivers/serial/uart_sam0.c
index 0ea7482..df0743c 100644
--- a/drivers/serial/uart_sam0.c
+++ b/drivers/serial/uart_sam0.c
@@ -504,7 +504,7 @@
 	const struct uart_sam0_dev_cfg *const cfg = dev->config;
 	struct uart_sam0_dev_data *const dev_data = dev->data;
 
-	SercomUsart *const usart = cfg->regs;
+	SercomUsart * const usart = cfg->regs;
 
 #ifdef MCLK
 	/* Enable the GCLK */
@@ -633,7 +633,7 @@
 {
 	const struct uart_sam0_dev_cfg *config = dev->config;
 
-	SercomUsart *const usart = config->regs;
+	SercomUsart * const usart = config->regs;
 
 	if (!usart->INTFLAG.bit.RXC) {
 		return -EBUSY;
@@ -647,7 +647,7 @@
 {
 	const struct uart_sam0_dev_cfg *config = dev->config;
 
-	SercomUsart *const usart = config->regs;
+	SercomUsart * const usart = config->regs;
 
 	while (!usart->INTFLAG.bit.DRE) {
 	}
diff --git a/drivers/serial/usart_sam.c b/drivers/serial/usart_sam.c
index 98e08c5..f176be6 100644
--- a/drivers/serial/usart_sam.c
+++ b/drivers/serial/usart_sam.c
@@ -95,7 +95,8 @@
 static int usart_sam_poll_in(const struct device *dev, unsigned char *c)
 {
 	const struct usart_sam_dev_cfg *config = dev->config;
-	Usart *const usart = config->regs;
+
+	Usart * const usart = config->regs;
 
 	if (!(usart->US_CSR & US_CSR_RXRDY)) {
 		return -EBUSY;
@@ -111,7 +112,7 @@
 {
 	const struct usart_sam_dev_cfg *config = dev->config;
 
-	Usart *const usart = config->regs;
+	Usart * const usart = config->regs;
 
 	/* Wait for transmitter to be ready */
 	while (!(usart->US_CSR & US_CSR_TXRDY)) {
diff --git a/drivers/watchdog/wdt_sam.c b/drivers/watchdog/wdt_sam.c
index af14ca1..da2ec37 100644
--- a/drivers/watchdog/wdt_sam.c
+++ b/drivers/watchdog/wdt_sam.c
@@ -47,7 +47,7 @@
 {
 	const struct wdt_sam_dev_cfg *config = dev->config;
 	uint32_t wdt_sr;
-	Wdt *const wdt = config->regs;
+	Wdt * const wdt = config->regs;
 	struct wdt_sam_dev_data *data = dev->data;
 
 	/* Clear status bit to acknowledge interrupt by dummy read. */
@@ -83,7 +83,7 @@
 {
 	const struct wdt_sam_dev_cfg *config = dev->config;
 
-	Wdt *const wdt = config->regs;
+	Wdt * const wdt = config->regs;
 	struct wdt_sam_dev_data *data = dev->data;
 
 	/* since Watchdog mode register is 'write-once', we can't disable if
@@ -108,7 +108,7 @@
 {
 	const struct wdt_sam_dev_cfg *config = dev->config;
 
-	Wdt *const wdt = config->regs;
+	Wdt * const wdt = config->regs;
 	struct wdt_sam_dev_data *data = dev->data;
 
 	if (!data->timeout_valid) {
@@ -216,7 +216,7 @@
 	 * reloaded/feeded with the 12-bit watchdog counter
 	 * value from WDT_MR and restarted
 	 */
-	Wdt *const wdt = config->regs;
+	Wdt * const wdt = config->regs;
 
 	wdt->WDT_CR |= WDT_CR_KEY_PASSWD | WDT_CR_WDRSTT;
 
