[PATCH] mtd: spi-nor: XTX: Add support for XTX XT25F128B
Tudor.Ambarus at microchip.com
Tudor.Ambarus at microchip.com
Mon Apr 5 09:52:11 BST 2021
Hi,
On 4/2/21 11:15 PM, Chris Morgan wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> Add support for a new vendor (XTX) along with a new chip from the
> vendor (XT25F128B). This chip is used in the Odroid Go Advance,
> and has been tested extensively using the spi-gpio driver, as it
> is connected to a serial flash controller that is not currently
> supported (but the pins can be repurposed to GPIO). Read, write, and
> erase all work as expected.
>
> Datasheet can be found here:
> https://datasheet.lcsc.com/szlcsc/2005251034_XTX-XT25F128BSSIGT_C558844.pdf
>
> Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
Chris, we're trying to figure out how to deal with the continuation codes.
Discussions on going at:
https://lkml.org/lkml/2021/2/7/223
https://www.spinics.net/lists/kernel/msg3808260.html
> ---
> drivers/mtd/spi-nor/Makefile | 1 +
> drivers/mtd/spi-nor/core.c | 1 +
> drivers/mtd/spi-nor/core.h | 1 +
> drivers/mtd/spi-nor/xtx.c | 24 ++++++++++++++++++++++++
> 4 files changed, 27 insertions(+)
> create mode 100644 drivers/mtd/spi-nor/xtx.c
>
> diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile
> index 653923896205..3f7a52d7fa0b 100644
> --- a/drivers/mtd/spi-nor/Makefile
> +++ b/drivers/mtd/spi-nor/Makefile
> @@ -17,6 +17,7 @@ spi-nor-objs += sst.o
> spi-nor-objs += winbond.o
> spi-nor-objs += xilinx.o
> spi-nor-objs += xmc.o
> +spi-nor-objs += xtx.o
> obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o
>
> obj-$(CONFIG_MTD_SPI_NOR) += controllers/
> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index 0522304f52fa..9a89ec473e4b 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
> @@ -2215,6 +2215,7 @@ static const struct spi_nor_manufacturer *manufacturers[] = {
> &spi_nor_winbond,
> &spi_nor_xilinx,
> &spi_nor_xmc,
> + &spi_nor_xtx,
> };
>
> static const struct flash_info *
> diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
> index 4a3f7f150b5d..ee0e45eaffcd 100644
> --- a/drivers/mtd/spi-nor/core.h
> +++ b/drivers/mtd/spi-nor/core.h
> @@ -425,6 +425,7 @@ extern const struct spi_nor_manufacturer spi_nor_sst;
> extern const struct spi_nor_manufacturer spi_nor_winbond;
> extern const struct spi_nor_manufacturer spi_nor_xilinx;
> extern const struct spi_nor_manufacturer spi_nor_xmc;
> +extern const struct spi_nor_manufacturer spi_nor_xtx;
>
> void spi_nor_spimem_setup_op(const struct spi_nor *nor,
> struct spi_mem_op *op,
> diff --git a/drivers/mtd/spi-nor/xtx.c b/drivers/mtd/spi-nor/xtx.c
> new file mode 100644
> index 000000000000..4eec737e94c7
> --- /dev/null
> +++ b/drivers/mtd/spi-nor/xtx.c
> @@ -0,0 +1,24 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (C) 2021, Chris Morgan <macromorgan at hotmail.com>
> + * Based on XMC SPI NOR module
> + * Copyright (C) 2005, Intec Automation Inc.
> + * Copyright (C) 2014, Freescale Semiconductor, Inc.
> + */
> +
> +#include <linux/mtd/spi-nor.h>
> +
> +#include "core.h"
> +
> +static const struct flash_info xtx_parts[] = {
> + /* XTX (XTX Technology Limited) */
> + { "XT25F128B", INFO(0x0b4018, 0, 64 * 1024, 256,
> + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
> + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) },
> +};
> +
> +const struct spi_nor_manufacturer spi_nor_xtx = {
> + .name = "xtx",
> + .parts = xtx_parts,
> + .nparts = ARRAY_SIZE(xtx_parts),
> +};
> --
> 2.25.1
>
More information about the linux-mtd
mailing list