[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