From ed763ea66287668f457b949f64061ba228fe5945 Mon Sep 17 00:00:00 2001 From: Ryan McClelland Date: Wed, 25 Sep 2024 16:11:05 -0700 Subject: [PATCH] drivers: i3c: shell: add ibi disable/enable commands Add shell commands for the `i3c_ibi_enable` and `i3c_ibi_disable` apis. Signed-off-by: Ryan McClelland --- drivers/i3c/i3c_shell.c | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/drivers/i3c/i3c_shell.c b/drivers/i3c/i3c_shell.c index 8c6ea967ef71c3..642fcf6bcf4dda 100644 --- a/drivers/i3c/i3c_shell.c +++ b/drivers/i3c/i3c_shell.c @@ -1978,6 +1978,48 @@ static void cmd_i3c_ibi_tir(const struct shell *sh, size_t argc, char **argv) shell_print(sh, "I3C: Issued IBI TIR"); } + +/* i3c ibi enable */ +static void cmd_i3c_ibi_enable(const struct shell *sh, size_t argc, char **argv) +{ + const struct device *dev, *tdev; + struct i3c_device_desc *desc; + int ret; + + ret = i3c_parse_args(sh, argv, &dev, &tdev, &desc); + if (ret != 0) { + return ret; + } + + ret = i3c_ibi_enable(desc); + if (ret != 0) { + shell_error(sh, "I3C: Unable to enable IBI"); + return ret; + } + + shell_print(sh, "I3C: Enabled IBI"); +} + +/* i3c ibi disable */ +static void cmd_i3c_ibi_disable(const struct shell *sh, size_t argc, char **argv) +{ + const struct device *dev, *tdev; + struct i3c_device_desc *desc; + int ret; + + ret = i3c_parse_args(sh, argv, &dev, &tdev, &desc); + if (ret != 0) { + return ret; + } + + ret = i3c_ibi_disable(desc); + if (ret != 0) { + shell_error(sh, "I3C: Unable to disable IBI"); + return ret; + } + + shell_print(sh, "I3C: Disabled IBI"); +} #endif static void i3c_device_list_target_name_get(size_t idx, struct shell_static_entry *entry) @@ -2038,6 +2080,14 @@ SHELL_STATIC_SUBCMD_SET_CREATE( "Send IBI CR\n" "Usage: ibi cr ", cmd_i3c_ibi_cr, 2, 0), + SHELL_CMD_ARG(enable, &dsub_i3c_device_attached_name, + "Enable receiving IBI from target\n" + "Usage: ibi enable ", + cmd_i3c_ibi_enable, 3, 0), + SHELL_CMD_ARG(disable, &dsub_i3c_device_attached_name, + "Disable receiving IBI from target\n" + "Usage: ibi disable ", + cmd_i3c_ibi_disable, 3, 0), SHELL_SUBCMD_SET_END /* Array terminated. */ ); #endif