soc: realrek: ec: Add debug_swj initial version of RTS5912.

Add swj driver for Realtek RTS5912.

Signed-off-by: Lin Yu-Cheng <lin_yu_cheng@realtek.com>
This commit is contained in:
Lin Yu-Cheng 2024-11-22 18:23:37 +08:00 committed by Benjamin Cabé
commit 471cc3512d
5 changed files with 54 additions and 0 deletions

View file

@ -80,6 +80,13 @@
reg = <0x40090000 0x300>; reg = <0x40090000 0x300>;
}; };
}; };
swj_port: swj-port {
compatible = "swj-connector";
pinctrl-0 = <&jtag_tdi_gpio87 &jtag_tdo_gpio88 &jtag_rst_gpio89
&jtag_clk_gpio90 &jtag_tms_gpio91>;
pinctrl-names = "default";
};
}; };
&nvic { &nvic {

View file

@ -12,4 +12,6 @@ zephyr_sources_ifdef(CONFIG_PM
power.c power.c
) )
zephyr_sources_ifdef(CONFIG_DT_HAS_SWJ_CONNECTOR_ENABLED debug_swj.c)
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "") set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "")

View file

@ -0,0 +1,27 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7
* Author: Titan Chen <titan.chen@realtek.com>
*/
#include <zephyr/drivers/pinctrl.h>
#include <zephyr/init.h>
#define SWJ_NODE DT_NODELABEL(swj_port)
PINCTRL_DT_DEFINE(SWJ_NODE);
const struct pinctrl_dev_config *swj_pcfg = PINCTRL_DT_DEV_CONFIG_GET(SWJ_NODE);
int swj_connector_init(void)
{
int err;
err = pinctrl_apply_state(swj_pcfg, PINCTRL_STATE_DEFAULT);
if (err < 0) {
return err;
}
return 0;
}

View file

@ -0,0 +1,8 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright (c) 2024 Realtek Semiconductor Corporation, SIBG-SD7
* Author: Lin Yu-Cheng <lin_yu_cheng@realtek.com>
*/
int swj_connector_init(void);

View file

@ -8,6 +8,10 @@
#include <zephyr/kernel.h> #include <zephyr/kernel.h>
#include <zephyr/device.h> #include <zephyr/device.h>
#include <zephyr/init.h> #include <zephyr/init.h>
#include <zephyr/logging/log.h>
#include "debug_swj.h"
LOG_MODULE_REGISTER(soc, CONFIG_SOC_LOG_LEVEL);
#if defined(CONFIG_RTS5912_ON_ENTER_CPU_IDLE_HOOK) #if defined(CONFIG_RTS5912_ON_ENTER_CPU_IDLE_HOOK)
bool z_arm_on_enter_cpu_idle(void) bool z_arm_on_enter_cpu_idle(void)
@ -24,5 +28,11 @@ bool z_arm_on_enter_cpu_idle(void)
*/ */
void soc_early_init_hook(void) void soc_early_init_hook(void)
{ {
int ret;
/* Apply device related preinit configuration */ /* Apply device related preinit configuration */
ret = swj_connector_init();
if (ret < 0) {
LOG_ERR("SWJ init failed");
}
} }