[PATCH] mtd: spi-nor: XTX: Add support for XTX XT25F128B

Alex Bee knaerzche at gmail.com
Fri Jul 2 05:49:12 PDT 2021


Hi Chris, guys


Am 02.04.21 um 22:15 schrieb Chris Morgan:
> 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.
Once you've figured out how vendor id stuff is read out correctly, would 
you mind also adding the the XT25F32B variant?
 From what I've checked it has all things in common with XT25F128B - 
just has a 64 instead of 256 sectors.

Datasheet can be found at:
https://datasheet.lcsc.com/szlcsc/2005251035_XTX-XT25F32BSOIGU-S_C558851.pdf

> 
> Datasheet can be found here:
> https://datasheet.lcsc.com/szlcsc/2005251034_XTX-XT25F128BSSIGT_C558844.pdf
> 
> Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
> ---
>   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),
> +};
> 




More information about the linux-mtd mailing list