diff options
Diffstat (limited to 'target/linux/bcm47xx/patches-5.10/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch')
-rw-r--r-- | target/linux/bcm47xx/patches-5.10/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/target/linux/bcm47xx/patches-5.10/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch b/target/linux/bcm47xx/patches-5.10/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch deleted file mode 100644 index 973a3e95ee..0000000000 --- a/target/linux/bcm47xx/patches-5.10/105-v5.18-mtd-rawnand-brcmnand-Add-platform-data-structure-for-BCMA.patch +++ /dev/null @@ -1,115 +0,0 @@ -From: Florian Fainelli <f.fainelli@gmail.com> -Subject: [PATCH v3 6/9] mtd: rawnand: brcmnand: Add platform data structure for BCMA -Date: Fri, 07 Jan 2022 10:46:11 -0800 -Content-Type: text/plain; charset="utf-8" - -Update the BCMA's chipcommon nand flash driver to detect which -chip-select is used and pass that information via platform data to the -brcmnand driver. Make sure that the brcmnand platform data structure is -always at the beginning of the platform data of the "nflash" device -created by BCMA to allow brcmnand to safely de-reference it. - -Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> ---- - MAINTAINERS | 1 + - drivers/bcma/driver_chipcommon_nflash.c | 20 +++++++++++++++++++- - include/linux/bcma/bcma_driver_chipcommon.h | 5 +++++ - include/linux/platform_data/brcmnand.h | 12 ++++++++++++ - 4 files changed, 37 insertions(+), 1 deletion(-) - create mode 100644 include/linux/platform_data/brcmnand.h - ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -3712,6 +3712,7 @@ L: linux-mtd@lists.infradead.org - L: bcm-kernel-feedback-list@broadcom.com - S: Maintained - F: drivers/mtd/nand/raw/brcmnand/ -+F: include/linux/platform_data/brcmnand.h - - BROADCOM SYSTEMPORT ETHERNET DRIVER - M: Florian Fainelli <f.fainelli@gmail.com> ---- a/drivers/bcma/driver_chipcommon_nflash.c -+++ b/drivers/bcma/driver_chipcommon_nflash.c -@@ -7,18 +7,28 @@ - - #include "bcma_private.h" - -+#include <linux/bitops.h> - #include <linux/platform_device.h> -+#include <linux/platform_data/brcmnand.h> - #include <linux/bcma/bcma.h> - -+/* Alternate NAND controller driver name in order to allow both bcm47xxnflash -+ * and bcma_brcmnand to be built into the same kernel image. -+ */ -+static const char *bcma_nflash_alt_name = "bcma_brcmnand"; -+ - struct platform_device bcma_nflash_dev = { - .name = "bcma_nflash", - .num_resources = 0, - }; - -+static const char *probes[] = { "bcm47xxpart", NULL }; -+ - /* Initialize NAND flash access */ - int bcma_nflash_init(struct bcma_drv_cc *cc) - { - struct bcma_bus *bus = cc->core->bus; -+ u32 reg; - - if (bus->chipinfo.id != BCMA_CHIP_ID_BCM4706 && - cc->core->id.rev != 38) { -@@ -33,8 +43,16 @@ int bcma_nflash_init(struct bcma_drv_cc - - cc->nflash.present = true; - if (cc->core->id.rev == 38 && -- (cc->status & BCMA_CC_CHIPST_5357_NAND_BOOT)) -+ (cc->status & BCMA_CC_CHIPST_5357_NAND_BOOT)) { - cc->nflash.boot = true; -+ /* Determine the chip select that is being used */ -+ reg = bcma_cc_read32(cc, BCMA_CC_NAND_CS_NAND_SELECT) & 0xff; -+ cc->nflash.brcmnand_info.chip_select = ffs(reg) - 1; -+ cc->nflash.brcmnand_info.part_probe_types = probes; -+ cc->nflash.brcmnand_info.ecc_stepsize = 512; -+ cc->nflash.brcmnand_info.ecc_strength = 1; -+ bcma_nflash_dev.name = bcma_nflash_alt_name; -+ } - - /* Prepare platform device, but don't register it yet. It's too early, - * malloc (required by device_private_init) is not available yet. */ ---- a/include/linux/bcma/bcma_driver_chipcommon.h -+++ b/include/linux/bcma/bcma_driver_chipcommon.h -@@ -3,6 +3,7 @@ - #define LINUX_BCMA_DRIVER_CC_H_ - - #include <linux/platform_device.h> -+#include <linux/platform_data/brcmnand.h> - #include <linux/gpio.h> - - /** ChipCommon core registers. **/ -@@ -599,6 +600,10 @@ struct bcma_sflash { - - #ifdef CONFIG_BCMA_NFLASH - struct bcma_nflash { -+ /* Must be the fist member for the brcmnand driver to -+ * de-reference that structure. -+ */ -+ struct brcmnand_platform_data brcmnand_info; - bool present; - bool boot; /* This is the flash the SoC boots from */ - }; ---- /dev/null -+++ b/include/linux/platform_data/brcmnand.h -@@ -0,0 +1,12 @@ -+/* SPDX-License-Identifier: GPL-2.0-only */ -+#ifndef BRCMNAND_PLAT_DATA_H -+#define BRCMNAND_PLAT_DATA_H -+ -+struct brcmnand_platform_data { -+ int chip_select; -+ const char * const *part_probe_types; -+ unsigned int ecc_stepsize; -+ unsigned int ecc_strength; -+}; -+ -+#endif /* BRCMNAND_PLAT_DATA_H */ |