From d4e5736712aa97db859798049af3b185d82adae4 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Wed, 5 Feb 2020 18:32:33 -0300 Subject: [PATCH] Improvements to gs2200m gs2200m: Make CHECK_VERSION use Kconfig gs2200m: Add a config to set log level --- drivers/wireless/Kconfig | 11 +++++++++++ drivers/wireless/gs2200m.c | 26 ++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/drivers/wireless/Kconfig b/drivers/wireless/Kconfig index 2490a40c4e..299b6648e9 100644 --- a/drivers/wireless/Kconfig +++ b/drivers/wireless/Kconfig @@ -40,6 +40,17 @@ config WL_GS2200M_DISABLE_DHCPC bool "Disable the internal dhcp client" default n +config WL_GS2200M_CHECK_VERSION + bool "Check the version of GS2200M" + default n + +config WL_GS2200M_LOGLEVEL + int "Log level" + default 0 + range 0 2 + ---help--- + The debug level of GS2200M. (AT+LOGLVL) + endif source drivers/wireless/spirit/Kconfig diff --git a/drivers/wireless/gs2200m.c b/drivers/wireless/gs2200m.c index 7c89ea21f3..297d925deb 100644 --- a/drivers/wireless/gs2200m.c +++ b/drivers/wireless/gs2200m.c @@ -1966,11 +1966,27 @@ static enum pkt_type_e gs2200m_set_gpio(FAR struct gs2200m_dev_s *dev, } #endif +/**************************************************************************** + * Name: gs2200m_set_loglevel + * NOTE: See 11.3.1 Log Level + ****************************************************************************/ + +#if CONFIG_WL_GS2200M_LOGLEVEL > 0 +static enum pkt_type_e gs2200m_set_loglevel(FAR struct gs2200m_dev_s *dev, + int level) +{ + char cmd[16]; + + snprintf(cmd, sizeof(cmd), "AT+LOGLVL=%d\r\n", level); + return gs2200m_send_cmd(dev, cmd, NULL); +} +#endif + /**************************************************************************** * Name: gs2200m_get_version ****************************************************************************/ -#ifdef CHECK_VERSION +#ifdef CONFIG_WL_GS2200M_CHECK_VERSION static enum pkt_type_e gs2200m_get_version(FAR struct gs2200m_dev_s *dev) { char cmd[16]; @@ -2875,7 +2891,13 @@ static int gs2200m_start(FAR struct gs2200m_dev_s *dev) t = gs2200m_enable_echo(dev, 0); ASSERT(TYPE_OK == t); -#ifdef CHECK_VERSION +#if CONFIG_WL_GS2200M_LOGLEVEL > 0 + /* Set log level */ + t = gs2200m_set_loglevel(dev, CONFIG_WL_GS2200M_LOGLEVEL); + ASSERT(TYPE_OK == t); +#endif + +#ifdef CONFIG_WL_GS2200M_CHECK_VERSION /* Version */ t = gs2200m_get_version(dev);