u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt
@ 2022-08-25  7:48 tkuw584924
  2022-08-25  7:48 ` [PATCH 1/3] mtd: spi-nor-core: Rename s28hs512t prefix tkuw584924
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: tkuw584924 @ 2022-08-25  7:48 UTC (permalink / raw)
  To: u-boot
  Cc: jagan, vigneshr, pratyush, a-govindraju, tkuw584924,
	Bacem.Daassi, Takahiro Kuwano

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

These devices are variants of s28hs512t(1.8V 512Mb) with different
density(1Gb) and power supply voltage(3V).

Datasheet:
https://www.infineon.com/dgdl/Infineon-S28HS256T_S28HS512T_S28HS01GT_S28HL256T_S28HL512T_S28HL01GT_256-Mb_(32-MB)_512-Mb_(64-MB)_1-Gb_(128-MB)_HS-T_(1.8-V)_HL-T_(3.0-V)_Semper_Flash_with_Octal_Interface-DataSheet-v03_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee6bca96f97&da=t

Tested on Zynq-7000 platform with Infineon SPI controller

Takahiro Kuwano (3):
  mtd: spi-nor-core: Rename s28hs512t prefix
  mtd: spi-nor-core: Rename configuration macro for S28 support
  mtd: spi-nor-ids: Add s28hl512t, s28hl01gt, and s28hs01gt IDs

 configs/j721s2_evm_a72_defconfig |  2 +-
 configs/j721s2_evm_r5_defconfig  |  2 +-
 drivers/mtd/spi/Kconfig          | 10 +++----
 drivers/mtd/spi/spi-nor-core.c   | 48 +++++++++++++++++---------------
 drivers/mtd/spi/spi-nor-ids.c    |  5 +++-
 5 files changed, 36 insertions(+), 31 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] mtd: spi-nor-core: Rename s28hs512t prefix
  2022-08-25  7:48 [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt tkuw584924
@ 2022-08-25  7:48 ` tkuw584924
  2022-08-25  7:48 ` [PATCH 2/3] mtd: spi-nor-core: Rename configuration macro for S28 support tkuw584924
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: tkuw584924 @ 2022-08-25  7:48 UTC (permalink / raw)
  To: u-boot
  Cc: jagan, vigneshr, pratyush, a-govindraju, tkuw584924,
	Bacem.Daassi, Takahiro Kuwano

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

Change prefix to support all other devices in SEMPER S28 family.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
---
 drivers/mtd/spi/spi-nor-core.c | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index e3c86e080a..5f16bf7b1a 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -3369,15 +3369,15 @@ static int spi_nor_cypress_octal_dtr_enable(struct spi_nor *nor)
 	return 0;
 }
 
-static int s28hs512t_erase_non_uniform(struct spi_nor *nor, loff_t addr)
+static int s28hx_t_erase_non_uniform(struct spi_nor *nor, loff_t addr)
 {
 	/* Factory default configuration: 32 x 4 KiB sectors at bottom. */
 	return spansion_erase_non_uniform(nor, addr, SPINOR_OP_S28_SE_4K,
 					  0, SZ_128K);
 }
 
-static int s28hs512t_setup(struct spi_nor *nor, const struct flash_info *info,
-			   const struct spi_nor_flash_parameter *params)
+static int s28hx_t_setup(struct spi_nor *nor, const struct flash_info *info,
+			 const struct spi_nor_flash_parameter *params)
 {
 	struct spi_mem_op op;
 	u8 buf;
@@ -3404,19 +3404,19 @@ static int s28hs512t_setup(struct spi_nor *nor, const struct flash_info *info,
 		return ret;
 
 	if (!(buf & SPINOR_REG_CYPRESS_CFR3V_UNISECT))
-		nor->erase = s28hs512t_erase_non_uniform;
+		nor->erase = s28hx_t_erase_non_uniform;
 
 	return spi_nor_default_setup(nor, info, params);
 }
 
-static void s28hs512t_default_init(struct spi_nor *nor)
+static void s28hx_t_default_init(struct spi_nor *nor)
 {
 	nor->octal_dtr_enable = spi_nor_cypress_octal_dtr_enable;
-	nor->setup = s28hs512t_setup;
+	nor->setup = s28hx_t_setup;
 }
 
-static void s28hs512t_post_sfdp_fixup(struct spi_nor *nor,
-				      struct spi_nor_flash_parameter *params)
+static void s28hx_t_post_sfdp_fixup(struct spi_nor *nor,
+				    struct spi_nor_flash_parameter *params)
 {
 	/*
 	 * On older versions of the flash the xSPI Profile 1.0 table has the
@@ -3446,10 +3446,10 @@ static void s28hs512t_post_sfdp_fixup(struct spi_nor *nor,
 	params->rdsr_addr_nbytes = 4;
 }
 
-static int s28hs512t_post_bfpt_fixup(struct spi_nor *nor,
-				     const struct sfdp_parameter_header *bfpt_header,
-				     const struct sfdp_bfpt *bfpt,
-				     struct spi_nor_flash_parameter *params)
+static int s28hx_t_post_bfpt_fixup(struct spi_nor *nor,
+				   const struct sfdp_parameter_header *bfpt_header,
+				   const struct sfdp_bfpt *bfpt,
+				   struct spi_nor_flash_parameter *params)
 {
 	struct spi_mem_op op;
 	u8 buf;
@@ -3486,10 +3486,10 @@ static int s28hs512t_post_bfpt_fixup(struct spi_nor *nor,
 	return 0;
 }
 
-static struct spi_nor_fixups s28hs512t_fixups = {
-	.default_init = s28hs512t_default_init,
-	.post_sfdp = s28hs512t_post_sfdp_fixup,
-	.post_bfpt = s28hs512t_post_bfpt_fixup,
+static struct spi_nor_fixups s28hx_t_fixups = {
+	.default_init = s28hx_t_default_init,
+	.post_sfdp = s28hx_t_post_sfdp_fixup,
+	.post_bfpt = s28hx_t_post_bfpt_fixup,
 };
 #endif /* CONFIG_SPI_FLASH_S28HS512T */
 
@@ -3824,7 +3824,7 @@ void spi_nor_set_fixups(struct spi_nor *nor)
 
 #ifdef CONFIG_SPI_FLASH_S28HS512T
 	if (!strcmp(nor->info->name, "s28hs512t"))
-		nor->fixups = &s28hs512t_fixups;
+		nor->fixups = &s28hx_t_fixups;
 #endif
 
 #ifdef CONFIG_SPI_FLASH_MT35XU
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] mtd: spi-nor-core: Rename configuration macro for S28 support
  2022-08-25  7:48 [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt tkuw584924
  2022-08-25  7:48 ` [PATCH 1/3] mtd: spi-nor-core: Rename s28hs512t prefix tkuw584924
@ 2022-08-25  7:48 ` tkuw584924
  2022-08-25  7:48 ` [PATCH 3/3] mtd: spi-nor-ids: Add s28hl512t, s28hl01gt, and s28hs01gt IDs tkuw584924
  2022-10-23  5:15 ` [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt Jagan Teki
  3 siblings, 0 replies; 5+ messages in thread
From: tkuw584924 @ 2022-08-25  7:48 UTC (permalink / raw)
  To: u-boot
  Cc: jagan, vigneshr, pratyush, a-govindraju, tkuw584924,
	Bacem.Daassi, Takahiro Kuwano

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

Change configuration macro name to support all other devices in SEMPER S28
family.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
---
 configs/j721s2_evm_a72_defconfig |  2 +-
 configs/j721s2_evm_r5_defconfig  |  2 +-
 drivers/mtd/spi/Kconfig          | 10 +++++-----
 drivers/mtd/spi/spi-nor-core.c   |  6 +++---
 drivers/mtd/spi/spi-nor-ids.c    |  2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/configs/j721s2_evm_a72_defconfig b/configs/j721s2_evm_a72_defconfig
index 14dfb6946f..d7566c7cec 100644
--- a/configs/j721s2_evm_a72_defconfig
+++ b/configs/j721s2_evm_a72_defconfig
@@ -150,7 +150,7 @@ CONFIG_SPI_FLASH_SFDP_SUPPORT=y
 CONFIG_SPI_FLASH_SOFT_RESET=y
 CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
 CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_S28HS512T=y
+CONFIG_SPI_FLASH_S28HX_T=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI_FLASH_MT35XU=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
diff --git a/configs/j721s2_evm_r5_defconfig b/configs/j721s2_evm_r5_defconfig
index 98d69a18b9..eade24908f 100644
--- a/configs/j721s2_evm_r5_defconfig
+++ b/configs/j721s2_evm_r5_defconfig
@@ -129,7 +129,7 @@ CONFIG_SPI_FLASH_SFDP_SUPPORT=y
 CONFIG_SPI_FLASH_SOFT_RESET=y
 CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
 CONFIG_SPI_FLASH_SPANSION=y
-CONFIG_SPI_FLASH_S28HS512T=y
+CONFIG_SPI_FLASH_S28HX_T=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI_FLASH_MT35XU=y
 CONFIG_PINCTRL=y
diff --git a/drivers/mtd/spi/Kconfig b/drivers/mtd/spi/Kconfig
index 096338f27b..7b858a3a91 100644
--- a/drivers/mtd/spi/Kconfig
+++ b/drivers/mtd/spi/Kconfig
@@ -166,13 +166,13 @@ config SPI_FLASH_SPANSION
 	help
 	  Add support for various Spansion SPI flash chips (S25FLxxx)
 
-config SPI_FLASH_S28HS512T
-	bool "Cypress S28HS512T chip support"
+config SPI_FLASH_S28HX_T
+	bool "Cypress SEMPER Octal (S28) chip support"
 	depends on SPI_FLASH_SPANSION
 	help
-	 Add support for the Cypress S28HS512T chip. This is a separate config
-	 because the fixup hooks for this flash add extra size overhead. Boards
-	 that don't use the flash can disable this to save space.
+	 Add support for the Cypress S28HL-T and S28HS-T chip. This is a separate
+	 config because the fixup hooks for this flash add extra size overhead.
+	 Boards that don't use the flash can disable this to save space.
 
 config SPI_FLASH_STMICRO
 	bool "STMicro SPI flash support"
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index 5f16bf7b1a..67e54a5cb5 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -3310,7 +3310,7 @@ static struct spi_nor_fixups s25fl256l_fixups = {
 };
 #endif
 
-#ifdef CONFIG_SPI_FLASH_S28HS512T
+#ifdef CONFIG_SPI_FLASH_S28HX_T
 /**
  * spi_nor_cypress_octal_dtr_enable() - Enable octal DTR on Cypress flashes.
  * @nor:		pointer to a 'struct spi_nor'
@@ -3491,7 +3491,7 @@ static struct spi_nor_fixups s28hx_t_fixups = {
 	.post_sfdp = s28hx_t_post_sfdp_fixup,
 	.post_bfpt = s28hx_t_post_bfpt_fixup,
 };
-#endif /* CONFIG_SPI_FLASH_S28HS512T */
+#endif /* CONFIG_SPI_FLASH_S28HX_T */
 
 #ifdef CONFIG_SPI_FLASH_MT35XU
 static int spi_nor_micron_octal_dtr_enable(struct spi_nor *nor)
@@ -3822,7 +3822,7 @@ void spi_nor_set_fixups(struct spi_nor *nor)
 		nor->fixups = &s25fl256l_fixups;
 #endif
 
-#ifdef CONFIG_SPI_FLASH_S28HS512T
+#ifdef CONFIG_SPI_FLASH_S28HX_T
 	if (!strcmp(nor->info->name, "s28hs512t"))
 		nor->fixups = &s28hx_t_fixups;
 #endif
diff --git a/drivers/mtd/spi/spi-nor-ids.c b/drivers/mtd/spi/spi-nor-ids.c
index 4fe8b0d92c..743a87f172 100644
--- a/drivers/mtd/spi/spi-nor-ids.c
+++ b/drivers/mtd/spi/spi-nor-ids.c
@@ -294,7 +294,7 @@ const struct flash_info spi_nor_ids[] = {
 		USE_CLSR) },
 	{ INFO6("s25hs02gt",  0x342b1c, 0x0f0090, 256 * 1024, 1024,
 		SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
-#ifdef CONFIG_SPI_FLASH_S28HS512T
+#ifdef CONFIG_SPI_FLASH_S28HX_T
 	{ INFO("s28hs512t",  0x345b1a,      0, 256 * 1024, 256, SPI_NOR_OCTAL_DTR_READ) },
 #endif
 #endif
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] mtd: spi-nor-ids: Add s28hl512t, s28hl01gt, and s28hs01gt IDs
  2022-08-25  7:48 [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt tkuw584924
  2022-08-25  7:48 ` [PATCH 1/3] mtd: spi-nor-core: Rename s28hs512t prefix tkuw584924
  2022-08-25  7:48 ` [PATCH 2/3] mtd: spi-nor-core: Rename configuration macro for S28 support tkuw584924
@ 2022-08-25  7:48 ` tkuw584924
  2022-10-23  5:15 ` [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt Jagan Teki
  3 siblings, 0 replies; 5+ messages in thread
From: tkuw584924 @ 2022-08-25  7:48 UTC (permalink / raw)
  To: u-boot
  Cc: jagan, vigneshr, pratyush, a-govindraju, tkuw584924,
	Bacem.Daassi, Takahiro Kuwano

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

Add flash info table entries for s28hl512gt, s28hl01gt, and s28hs01gt.
These devices have the same functionality as s28hs512t.

In spi-nor-core, use device ID byte to detect S28 family instead of
device name.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
---
 drivers/mtd/spi/spi-nor-core.c | 12 +++++++-----
 drivers/mtd/spi/spi-nor-ids.c  |  3 +++
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index 67e54a5cb5..ead97cee1c 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -3812,6 +3812,13 @@ void spi_nor_set_fixups(struct spi_nor *nor)
 			nor->fixups = &s25hx_t_fixups;
 			break;
 
+#ifdef CONFIG_SPI_FLASH_S28HX_T
+		case 0x5a: /* S28HL (Octal, 3.3V) */
+		case 0x5b: /* S28HS (Octal, 1.8V) */
+			nor->fixups = &s28hx_t_fixups;
+			break;
+#endif
+
 		default:
 			break;
 		}
@@ -3822,11 +3829,6 @@ void spi_nor_set_fixups(struct spi_nor *nor)
 		nor->fixups = &s25fl256l_fixups;
 #endif
 
-#ifdef CONFIG_SPI_FLASH_S28HX_T
-	if (!strcmp(nor->info->name, "s28hs512t"))
-		nor->fixups = &s28hx_t_fixups;
-#endif
-
 #ifdef CONFIG_SPI_FLASH_MT35XU
 	if (!strcmp(nor->info->name, "mt35xu512aba"))
 		nor->fixups = &mt35xu512aba_fixups;
diff --git a/drivers/mtd/spi/spi-nor-ids.c b/drivers/mtd/spi/spi-nor-ids.c
index 743a87f172..7e7a3e97bc 100644
--- a/drivers/mtd/spi/spi-nor-ids.c
+++ b/drivers/mtd/spi/spi-nor-ids.c
@@ -295,7 +295,10 @@ const struct flash_info spi_nor_ids[] = {
 	{ INFO6("s25hs02gt",  0x342b1c, 0x0f0090, 256 * 1024, 1024,
 		SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
 #ifdef CONFIG_SPI_FLASH_S28HX_T
+	{ INFO("s28hl512t",  0x345a1a,      0, 256 * 1024, 256, SPI_NOR_OCTAL_DTR_READ) },
+	{ INFO("s28hl01gt",  0x345a1b,      0, 256 * 1024, 512, SPI_NOR_OCTAL_DTR_READ) },
 	{ INFO("s28hs512t",  0x345b1a,      0, 256 * 1024, 256, SPI_NOR_OCTAL_DTR_READ) },
+	{ INFO("s28hs01gt",  0x345b1b,      0, 256 * 1024, 512, SPI_NOR_OCTAL_DTR_READ) },
 #endif
 #endif
 #ifdef CONFIG_SPI_FLASH_SST		/* SST */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt
  2022-08-25  7:48 [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt tkuw584924
                   ` (2 preceding siblings ...)
  2022-08-25  7:48 ` [PATCH 3/3] mtd: spi-nor-ids: Add s28hl512t, s28hl01gt, and s28hs01gt IDs tkuw584924
@ 2022-10-23  5:15 ` Jagan Teki
  3 siblings, 0 replies; 5+ messages in thread
From: Jagan Teki @ 2022-10-23  5:15 UTC (permalink / raw)
  To: tkuw584924
  Cc: u-boot, vigneshr, pratyush, a-govindraju, Bacem.Daassi, Takahiro Kuwano

On Thu, Aug 25, 2022 at 1:19 PM <tkuw584924@gmail.com> wrote:
>
> From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
>
> These devices are variants of s28hs512t(1.8V 512Mb) with different
> density(1Gb) and power supply voltage(3V).
>
> Datasheet:
> https://www.infineon.com/dgdl/Infineon-S28HS256T_S28HS512T_S28HS01GT_S28HL256T_S28HL512T_S28HL01GT_256-Mb_(32-MB)_512-Mb_(64-MB)_1-Gb_(128-MB)_HS-T_(1.8-V)_HL-T_(3.0-V)_Semper_Flash_with_Octal_Interface-DataSheet-v03_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee6bca96f97&da=t
>
> Tested on Zynq-7000 platform with Infineon SPI controller
>
> Takahiro Kuwano (3):
>   mtd: spi-nor-core: Rename s28hs512t prefix
>   mtd: spi-nor-core: Rename configuration macro for S28 support
>   mtd: spi-nor-ids: Add s28hl512t, s28hl01gt, and s28hs01gt IDs

Applied to u-boot-spi/master

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-23  5:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-25  7:48 [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt tkuw584924
2022-08-25  7:48 ` [PATCH 1/3] mtd: spi-nor-core: Rename s28hs512t prefix tkuw584924
2022-08-25  7:48 ` [PATCH 2/3] mtd: spi-nor-core: Rename configuration macro for S28 support tkuw584924
2022-08-25  7:48 ` [PATCH 3/3] mtd: spi-nor-ids: Add s28hl512t, s28hl01gt, and s28hs01gt IDs tkuw584924
2022-10-23  5:15 ` [PATCH 0/3] mtd: spi-nor-core: Add support for s28hl512t, s28hl01gt, and s28hs01gt Jagan Teki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).