Subject: [PATCH v3 0/2] mmc: atmel-mci: Convert to gpio descriptors

Replace legacy gpio apis with gpio descriptors

v3:

- [PATCH v3 1/2] mmc: atmel-mci: Convert to gpio descriptors
Convert devm_gpiod_get_from_of_node() into devm_fwnode_gpiod_get()

v2:

- [PATCH 1/2] mmc: atmel-mci: Convert to gpio descriptors
Remove "#include <linux/gpio.h>" as it is not necessary

- [PATCH 2/2] mmc: atmel-mci: move atmel MCI header file
Move linux/atmel-mci.h into drivers/mmc/host/atmel-mci.c as it is
used only by one file

Balamanikandan Gunasundar (2):
mmc: atmel-mci: Convert to gpio descriptors
mmc: atmel-mci: move atmel MCI header file

drivers/mmc/host/atmel-mci.c | 117 ++++++++++++++++++++++-------------
include/linux/atmel-mci.h | 46 --------------
2 files changed, 75 insertions(+), 88 deletions(-)
delete mode 100644 include/linux/atmel-mci.h

--
2.25.1


Subject: [PATCH v3 2/2] mmc: atmel-mci: move atmel MCI header file

Move the contents of linux/atmel-mci.h into
drivers/mmc/host/atmel-mci.c as it is only used in one file

Signed-off-by: Balamanikandan Gunasundar <[email protected]>
---
drivers/mmc/host/atmel-mci.c | 39 +++++++++++++++++++++++++++++-
include/linux/atmel-mci.h | 46 ------------------------------------
2 files changed, 38 insertions(+), 47 deletions(-)
delete mode 100644 include/linux/atmel-mci.h

diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 6ab43733ba9f..b48e440a2df8 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -30,7 +30,6 @@
#include <linux/mmc/host.h>
#include <linux/mmc/sdio.h>

-#include <linux/atmel-mci.h>
#include <linux/atmel_pdc.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
@@ -41,6 +40,8 @@
#include <asm/unaligned.h>
#include "../core/pwrseq.h"

+#define ATMCI_MAX_NR_SLOTS 2
+
/*
* Superset of MCI IP registers integrated in Atmel AT91 Processor
* Registers and bitfields marked with [2] are only available in MCI2
@@ -202,6 +203,42 @@ enum atmci_pdc_buf {
PDC_SECOND_BUF,
};

+/**
+ * struct mci_slot_pdata - board-specific per-slot configuration
+ * @bus_width: Number of data lines wired up the slot
+ * @detect_pin: GPIO pin wired to the card detect switch
+ * @wp_pin: GPIO pin wired to the write protect sensor
+ * @detect_is_active_high: The state of the detect pin when it is active
+ * @non_removable: The slot is not removable, only detect once
+ *
+ * If a given slot is not present on the board, @bus_width should be
+ * set to 0. The other fields are ignored in this case.
+ *
+ * Any pins that aren't available should be set to a negative value.
+ *
+ * Note that support for multiple slots is experimental -- some cards
+ * might get upset if we don't get the clock management exactly right.
+ * But in most cases, it should work just fine.
+ */
+struct mci_slot_pdata {
+ unsigned int bus_width;
+ struct gpio_desc *detect_pin;
+ struct gpio_desc *wp_pin;
+ bool detect_is_active_high;
+ bool non_removable;
+};
+
+/**
+ * struct mci_platform_data - board-specific MMC/SDcard configuration
+ * @dma_slave: DMA slave interface to use in data transfers.
+ * @slot: Per-slot configuration data.
+ */
+struct mci_platform_data {
+ void *dma_slave;
+ dma_filter_fn dma_filter;
+ struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS];
+};
+
struct atmel_mci_caps {
bool has_dma_conf_reg;
bool has_pdc;
diff --git a/include/linux/atmel-mci.h b/include/linux/atmel-mci.h
deleted file mode 100644
index 017e7d8f6126..000000000000
--- a/include/linux/atmel-mci.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __LINUX_ATMEL_MCI_H
-#define __LINUX_ATMEL_MCI_H
-
-#include <linux/types.h>
-#include <linux/dmaengine.h>
-
-#define ATMCI_MAX_NR_SLOTS 2
-
-/**
- * struct mci_slot_pdata - board-specific per-slot configuration
- * @bus_width: Number of data lines wired up the slot
- * @detect_pin: GPIO pin wired to the card detect switch
- * @wp_pin: GPIO pin wired to the write protect sensor
- * @detect_is_active_high: The state of the detect pin when it is active
- * @non_removable: The slot is not removable, only detect once
- *
- * If a given slot is not present on the board, @bus_width should be
- * set to 0. The other fields are ignored in this case.
- *
- * Any pins that aren't available should be set to a negative value.
- *
- * Note that support for multiple slots is experimental -- some cards
- * might get upset if we don't get the clock management exactly right.
- * But in most cases, it should work just fine.
- */
-struct mci_slot_pdata {
- unsigned int bus_width;
- struct gpio_desc *detect_pin;
- struct gpio_desc *wp_pin;
- bool detect_is_active_high;
- bool non_removable;
-};
-
-/**
- * struct mci_platform_data - board-specific MMC/SDcard configuration
- * @dma_slave: DMA slave interface to use in data transfers.
- * @slot: Per-slot configuration data.
- */
-struct mci_platform_data {
- void *dma_slave;
- dma_filter_fn dma_filter;
- struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS];
-};
-
-#endif /* __LINUX_ATMEL_MCI_H */
--
2.25.1

2022-12-28 13:42:18

by Ludovic Desroches

[permalink] [raw]
Subject: Re: [PATCH v3 2/2] mmc: atmel-mci: move atmel MCI header file

On 26/12/2022 08:39, Balamanikandan Gunasundar wrote:
> Move the contents of linux/atmel-mci.h into
> drivers/mmc/host/atmel-mci.c as it is only used in one file
>
> Signed-off-by: Balamanikandan Gunasundar <[email protected]>
Reviewed-by: Ludovic Desroches <[email protected]>

> ---
> drivers/mmc/host/atmel-mci.c | 39 +++++++++++++++++++++++++++++-
> include/linux/atmel-mci.h | 46 ------------------------------------
> 2 files changed, 38 insertions(+), 47 deletions(-)
> delete mode 100644 include/linux/atmel-mci.h
>
> diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
> index 6ab43733ba9f..b48e440a2df8 100644
> --- a/drivers/mmc/host/atmel-mci.c
> +++ b/drivers/mmc/host/atmel-mci.c
> @@ -30,7 +30,6 @@
> #include <linux/mmc/host.h>
> #include <linux/mmc/sdio.h>
>
> -#include <linux/atmel-mci.h>
> #include <linux/atmel_pdc.h>
> #include <linux/pm.h>
> #include <linux/pm_runtime.h>
> @@ -41,6 +40,8 @@
> #include <asm/unaligned.h>
> #include "../core/pwrseq.h"
>
> +#define ATMCI_MAX_NR_SLOTS 2
> +
> /*
> * Superset of MCI IP registers integrated in Atmel AT91 Processor
> * Registers and bitfields marked with [2] are only available in MCI2
> @@ -202,6 +203,42 @@ enum atmci_pdc_buf {
> PDC_SECOND_BUF,
> };
>
> +/**
> + * struct mci_slot_pdata - board-specific per-slot configuration
> + * @bus_width: Number of data lines wired up the slot
> + * @detect_pin: GPIO pin wired to the card detect switch
> + * @wp_pin: GPIO pin wired to the write protect sensor
> + * @detect_is_active_high: The state of the detect pin when it is active
> + * @non_removable: The slot is not removable, only detect once
> + *
> + * If a given slot is not present on the board, @bus_width should be
> + * set to 0. The other fields are ignored in this case.
> + *
> + * Any pins that aren't available should be set to a negative value.
> + *
> + * Note that support for multiple slots is experimental -- some cards
> + * might get upset if we don't get the clock management exactly right.
> + * But in most cases, it should work just fine.
> + */
> +struct mci_slot_pdata {
> + unsigned int bus_width;
> + struct gpio_desc *detect_pin;
> + struct gpio_desc *wp_pin;
> + bool detect_is_active_high;
> + bool non_removable;
> +};
> +
> +/**
> + * struct mci_platform_data - board-specific MMC/SDcard configuration
> + * @dma_slave: DMA slave interface to use in data transfers.
> + * @slot: Per-slot configuration data.
> + */
> +struct mci_platform_data {
> + void *dma_slave;
> + dma_filter_fn dma_filter;
> + struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS];
> +};
> +
> struct atmel_mci_caps {
> bool has_dma_conf_reg;
> bool has_pdc;
> diff --git a/include/linux/atmel-mci.h b/include/linux/atmel-mci.h
> deleted file mode 100644
> index 017e7d8f6126..000000000000
> --- a/include/linux/atmel-mci.h
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0 */
> -#ifndef __LINUX_ATMEL_MCI_H
> -#define __LINUX_ATMEL_MCI_H
> -
> -#include <linux/types.h>
> -#include <linux/dmaengine.h>
> -
> -#define ATMCI_MAX_NR_SLOTS 2
> -
> -/**
> - * struct mci_slot_pdata - board-specific per-slot configuration
> - * @bus_width: Number of data lines wired up the slot
> - * @detect_pin: GPIO pin wired to the card detect switch
> - * @wp_pin: GPIO pin wired to the write protect sensor
> - * @detect_is_active_high: The state of the detect pin when it is active
> - * @non_removable: The slot is not removable, only detect once
> - *
> - * If a given slot is not present on the board, @bus_width should be
> - * set to 0. The other fields are ignored in this case.
> - *
> - * Any pins that aren't available should be set to a negative value.
> - *
> - * Note that support for multiple slots is experimental -- some cards
> - * might get upset if we don't get the clock management exactly right.
> - * But in most cases, it should work just fine.
> - */
> -struct mci_slot_pdata {
> - unsigned int bus_width;
> - struct gpio_desc *detect_pin;
> - struct gpio_desc *wp_pin;
> - bool detect_is_active_high;
> - bool non_removable;
> -};
> -
> -/**
> - * struct mci_platform_data - board-specific MMC/SDcard configuration
> - * @dma_slave: DMA slave interface to use in data transfers.
> - * @slot: Per-slot configuration data.
> - */
> -struct mci_platform_data {
> - void *dma_slave;
> - dma_filter_fn dma_filter;
> - struct mci_slot_pdata slot[ATMCI_MAX_NR_SLOTS];
> -};
> -
> -#endif /* __LINUX_ATMEL_MCI_H */