From 854145c8843a6e111685c1b5e61fae2dc12abad6 Mon Sep 17 00:00:00 2001 From: Akshai M Date: Thu, 23 Apr 2020 20:09:50 +0530 Subject: [PATCH 1/2] drivers/mtd_sdard : Add MACRO and CONFIG_ Replace MTD_SDCARD_SKIP_ERASE with MTD_SDCARD_ERASE Add CONFIG_ Prefix to MTD_SDCARD_ERASE Model CONFIG_MTD_SDCARD_ERASE as bool --- drivers/include/mtd_sdcard.h | 15 ++++++++------- drivers/mtd_sdcard/mtd_sdcard.c | 12 +++++++----- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/include/mtd_sdcard.h b/drivers/include/mtd_sdcard.h index 5f6881aee873..b4228c30fd8b 100644 --- a/drivers/include/mtd_sdcard.h +++ b/drivers/include/mtd_sdcard.h @@ -49,15 +49,16 @@ typedef struct { * @{ */ /** - * @brief Enable Skip SDCard Erase + * @brief Enable SDCard Erase * @note SDCards handle sector erase internally so it's - * possible to directly write to the card without erasing - * the sector first. - * Attention: an erase call will therefore NOT touch the content, - * so disable this feature to ensure overriding the data. + * possible to directly write to the card without erasing + * the sector first. + * Attention: an erase call will therefore NOT touch the content, + * so enable this feature to ensure overriding the data. + * This feature is currently not supported. */ -#ifndef MTD_SDCARD_SKIP_ERASE -#define MTD_SDCARD_SKIP_ERASE (1) +#ifdef DOXYGEN +#define CONFIG_MTD_SDCARD_ERASE #endif /** @} */ diff --git a/drivers/mtd_sdcard/mtd_sdcard.c b/drivers/mtd_sdcard/mtd_sdcard.c index 860bc9addcc9..b240ceae9e58 100644 --- a/drivers/mtd_sdcard/mtd_sdcard.c +++ b/drivers/mtd_sdcard/mtd_sdcard.c @@ -24,6 +24,7 @@ #include "mtd_sdcard.h" #include "sdcard_spi.h" #include "sdcard_spi_internal.h" +#include "kernel_defines.h" #include #include @@ -103,11 +104,12 @@ static int mtd_sdcard_erase(mtd_dev_t *dev, (void)addr; (void)size; -#if MTD_SDCARD_SKIP_ERASE == 1 - return 0; -#else - return -ENOTSUP; /* explicit erase currently not supported */ -#endif + if (!IS_ACTIVE(CONFIG_MTD_SDCARD_ERASE)) { + return 0; + } + else { + return -ENOTSUP; /* explicit erase currently not supported */ + } } static int mtd_sdcard_power(mtd_dev_t *dev, enum mtd_power_state power) From 9737db935dcf3d554e3d734f2d65a2602008974b Mon Sep 17 00:00:00 2001 From: Akshai M Date: Thu, 23 Apr 2020 20:18:06 +0530 Subject: [PATCH 2/2] drivers/mtd_sdcard : Expose to kconfig Expose Configurations to Kconfig --- drivers/Kconfig | 6 +++++- drivers/mtd_sdcard/Kconfig | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 drivers/mtd_sdcard/Kconfig diff --git a/drivers/Kconfig b/drivers/Kconfig index 969a6d9e3b5a..0659c2681c42 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -12,6 +12,8 @@ endmenu # Actuator Device Drivers rsource "Kconfig.net" +rsource "periph_common/Kconfig" + menu "Sensor Device Drivers" rsource "ads101x/Kconfig" rsource "fxos8700/Kconfig" @@ -22,6 +24,8 @@ rsource "opt3001/Kconfig" rsource "sps30/Kconfig" endmenu # Sensor Device Drivers -rsource "periph_common/Kconfig" +menu "Storage Device Drivers" +rsource "mtd_sdcard/Kconfig" +endmenu # Storage Device Drivers endmenu # Drivers diff --git a/drivers/mtd_sdcard/Kconfig b/drivers/mtd_sdcard/Kconfig new file mode 100644 index 000000000000..00135ccac938 --- /dev/null +++ b/drivers/mtd_sdcard/Kconfig @@ -0,0 +1,23 @@ +# Copyright (c) 2020 Freie Universitaet Berlin +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. +# +menuconfig KCONFIG_MODULE_MTD_SDCARD + bool "Configure MTD_SDCARD driver" + depends on MODULE_MTD_SDCARD + help + Configure the MTD_SDCARD driver using Kconfig. + +if KCONFIG_MODULE_MTD_SDCARD + +config MTD_SDCARD_ERASE + bool "Enable SD card erase" + help + Enable this to erase sector before a data write operation. + SDCards handle sector erase internally so it's + possible to directly write to the card without erasing + the sector first hence this feature is disabled by default. + +endif # KCONFIG_MODULE_MTD_SDCARD