[PATCH V6 00/15] Add support for stacked/parallel memories

From: Amit Kumar Mahapatra
Date: Fri Mar 10 2023 - 12:33:33 EST


This patch is in the continuation to the discussions which happened on
'commit f89504300e94 ("spi: Stacked/parallel memories bindings")' for
adding dt-binding support for stacked/parallel memories.

This patch series updated the spi-nor, spi core and the spi drivers
to add stacked and parallel memories support.

The first patch
https://lore.kernel.org/all/20230119185342.2093323-1-amit.kumar-mahapatra@xxxxxxx/
of the previous series got applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
But the rest of the patches in the series did not get applied due to merge
conflict, so send the remaining patches in the series after rebasing it
on top of for-next branch.
---
BRANCH: for-next

Changes in v6:
- Rebased on top of latest v6.3-rc1 and fixed merge conflicts in
spi-mpc512x-psc.c, sfdp.c, spansion.c files and removed spi-omap-100k.c.
- Updated spi_dev_check( ) to reject new devices if any one of the
chipselect is used by another device.

Changes in v5:
- Rebased the patches on top of v6.3-rc1 and fixed the merge conflicts.
- Fixed compilation warnings in spi-sh-msiof.c with shmobile_defconfig

Changes in v4:
- Fixed build error in spi-pl022.c file - reported by Mark.
- Fixed build error in spi-sn-f-ospi.c file.
- Added Reviewed-by: Serge Semin <fancer.lancer@xxxxxxxxx> tag.
- Added two more patches to replace spi->chip_select with API calls in
mpc832x_rdb.c & cs35l41_hda_spi.c files.

Changes in v3:
- Rebased the patches on top of
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
- Added a patch to convert spi_nor_otp_region_len(nor) &
spi_nor_otp_n_regions(nor) macros into inline functions
- Added Reviewed-by & Acked-by tags

Changes in v2:
- Rebased the patches on top of v6.2-rc1
- Created separate patch to add get & set APIs for spi->chip_select &
spi->cs_gpiod, and replaced all spi->chip_select and spi->cs_gpiod
references with the API calls.
- Created separate patch to add get & set APIs for nor->params.
---

Amit Kumar Mahapatra (15):
spi: Replace all spi->chip_select and spi->cs_gpiod references with
function call
net: Replace all spi->chip_select and spi->cs_gpiod references with
function call
iio: imu: Replace all spi->chip_select and spi->cs_gpiod references
with function call
mtd: devices: Replace all spi->chip_select and spi->cs_gpiod
references with function call
staging: Replace all spi->chip_select and spi->cs_gpiod references
with function call
platform/x86: serial-multi-instantiate: Replace all spi->chip_select
and spi->cs_gpiod references with function call
powerpc/83xx/mpc832x_rdb: Replace all spi->chip_select references with
function call
ALSA: hda: cs35l41: Replace all spi->chip_select references with
function call
spi: Add stacked and parallel memories support in SPI core
mtd: spi-nor: Convert macros with inline functions
mtd: spi-nor: Add APIs to set/get nor->params
mtd: spi-nor: Add stacked memories support in spi-nor
spi: spi-zynqmp-gqspi: Add stacked memories support in GQSPI driver
mtd: spi-nor: Add parallel memories support in spi-nor
spi: spi-zynqmp-gqspi: Add parallel memories support in GQSPI driver

arch/powerpc/platforms/83xx/mpc832x_rdb.c | 2 +-
drivers/iio/imu/adis16400.c | 2 +-
drivers/mtd/devices/mtd_dataflash.c | 2 +-
drivers/mtd/spi-nor/atmel.c | 17 +-
drivers/mtd/spi-nor/core.c | 665 +++++++++++++++---
drivers/mtd/spi-nor/core.h | 8 +
drivers/mtd/spi-nor/debugfs.c | 4 +-
drivers/mtd/spi-nor/gigadevice.c | 4 +-
drivers/mtd/spi-nor/issi.c | 11 +-
drivers/mtd/spi-nor/macronix.c | 6 +-
drivers/mtd/spi-nor/micron-st.c | 39 +-
drivers/mtd/spi-nor/otp.c | 48 +-
drivers/mtd/spi-nor/sfdp.c | 29 +-
drivers/mtd/spi-nor/spansion.c | 50 +-
drivers/mtd/spi-nor/sst.c | 7 +-
drivers/mtd/spi-nor/swp.c | 22 +-
drivers/mtd/spi-nor/winbond.c | 10 +-
drivers/mtd/spi-nor/xilinx.c | 18 +-
drivers/net/ethernet/adi/adin1110.c | 2 +-
drivers/net/ethernet/asix/ax88796c_main.c | 2 +-
drivers/net/ethernet/davicom/dm9051.c | 2 +-
drivers/net/ethernet/qualcomm/qca_debug.c | 2 +-
drivers/net/ieee802154/ca8210.c | 2 +-
drivers/net/wan/slic_ds26522.c | 2 +-
.../net/wireless/marvell/libertas/if_spi.c | 2 +-
drivers/net/wireless/silabs/wfx/bus_spi.c | 2 +-
drivers/net/wireless/st/cw1200/cw1200_spi.c | 2 +-
.../platform/x86/serial-multi-instantiate.c | 3 +-
drivers/spi/spi-altera-core.c | 2 +-
drivers/spi/spi-amd.c | 4 +-
drivers/spi/spi-ar934x.c | 2 +-
drivers/spi/spi-armada-3700.c | 4 +-
drivers/spi/spi-aspeed-smc.c | 13 +-
drivers/spi/spi-at91-usart.c | 2 +-
drivers/spi/spi-ath79.c | 4 +-
drivers/spi/spi-atmel.c | 26 +-
drivers/spi/spi-au1550.c | 4 +-
drivers/spi/spi-axi-spi-engine.c | 2 +-
drivers/spi/spi-bcm-qspi.c | 10 +-
drivers/spi/spi-bcm2835.c | 19 +-
drivers/spi/spi-bcm2835aux.c | 4 +-
drivers/spi/spi-bcm63xx-hsspi.c | 30 +-
drivers/spi/spi-bcm63xx.c | 2 +-
drivers/spi/spi-bcmbca-hsspi.c | 30 +-
drivers/spi/spi-cadence-quadspi.c | 5 +-
drivers/spi/spi-cadence-xspi.c | 4 +-
drivers/spi/spi-cadence.c | 4 +-
drivers/spi/spi-cavium.c | 8 +-
drivers/spi/spi-coldfire-qspi.c | 8 +-
drivers/spi/spi-davinci.c | 18 +-
drivers/spi/spi-dln2.c | 6 +-
drivers/spi/spi-dw-core.c | 2 +-
drivers/spi/spi-dw-mmio.c | 4 +-
drivers/spi/spi-falcon.c | 2 +-
drivers/spi/spi-fsi.c | 2 +-
drivers/spi/spi-fsl-dspi.c | 16 +-
drivers/spi/spi-fsl-espi.c | 6 +-
drivers/spi/spi-fsl-lpspi.c | 2 +-
drivers/spi/spi-fsl-qspi.c | 6 +-
drivers/spi/spi-fsl-spi.c | 2 +-
drivers/spi/spi-geni-qcom.c | 6 +-
drivers/spi/spi-gpio.c | 4 +-
drivers/spi/spi-gxp.c | 4 +-
drivers/spi/spi-hisi-sfc-v3xx.c | 2 +-
drivers/spi/spi-img-spfi.c | 14 +-
drivers/spi/spi-imx.c | 30 +-
drivers/spi/spi-ingenic.c | 4 +-
drivers/spi/spi-intel.c | 2 +-
drivers/spi/spi-jcore.c | 4 +-
drivers/spi/spi-lantiq-ssc.c | 6 +-
drivers/spi/spi-mem.c | 4 +-
drivers/spi/spi-meson-spicc.c | 2 +-
drivers/spi/spi-microchip-core.c | 6 +-
drivers/spi/spi-mpc512x-psc.c | 8 +-
drivers/spi/spi-mpc52xx.c | 2 +-
drivers/spi/spi-mt65xx.c | 6 +-
drivers/spi/spi-mt7621.c | 2 +-
drivers/spi/spi-mux.c | 8 +-
drivers/spi/spi-mxic.c | 10 +-
drivers/spi/spi-mxs.c | 2 +-
drivers/spi/spi-npcm-fiu.c | 20 +-
drivers/spi/spi-nxp-fspi.c | 10 +-
drivers/spi/spi-omap-uwire.c | 8 +-
drivers/spi/spi-omap2-mcspi.c | 24 +-
drivers/spi/spi-orion.c | 4 +-
drivers/spi/spi-pci1xxxx.c | 4 +-
drivers/spi/spi-pic32-sqi.c | 2 +-
drivers/spi/spi-pic32.c | 4 +-
drivers/spi/spi-pl022.c | 4 +-
drivers/spi/spi-pxa2xx.c | 6 +-
drivers/spi/spi-qcom-qspi.c | 2 +-
drivers/spi/spi-rb4xx.c | 2 +-
drivers/spi/spi-rockchip-sfc.c | 2 +-
drivers/spi/spi-rockchip.c | 26 +-
drivers/spi/spi-rspi.c | 10 +-
drivers/spi/spi-s3c64xx.c | 2 +-
drivers/spi/spi-sc18is602.c | 4 +-
drivers/spi/spi-sh-msiof.c | 6 +-
drivers/spi/spi-sh-sci.c | 2 +-
drivers/spi/spi-sifive.c | 6 +-
drivers/spi/spi-sn-f-ospi.c | 2 +-
drivers/spi/spi-st-ssc4.c | 2 +-
drivers/spi/spi-stm32-qspi.c | 12 +-
drivers/spi/spi-sun4i.c | 2 +-
drivers/spi/spi-sun6i.c | 2 +-
drivers/spi/spi-synquacer.c | 6 +-
drivers/spi/spi-tegra114.c | 28 +-
drivers/spi/spi-tegra20-sflash.c | 2 +-
drivers/spi/spi-tegra20-slink.c | 6 +-
drivers/spi/spi-tegra210-quad.c | 8 +-
drivers/spi/spi-ti-qspi.c | 16 +-
drivers/spi/spi-topcliff-pch.c | 4 +-
drivers/spi/spi-wpcm-fiu.c | 12 +-
drivers/spi/spi-xcomm.c | 2 +-
drivers/spi/spi-xilinx.c | 6 +-
drivers/spi/spi-xlp.c | 4 +-
drivers/spi/spi-zynq-qspi.c | 2 +-
drivers/spi/spi-zynqmp-gqspi.c | 58 +-
drivers/spi/spi.c | 225 ++++--
drivers/spi/spidev.c | 6 +-
drivers/staging/fbtft/fbtft-core.c | 2 +-
drivers/staging/greybus/spilib.c | 2 +-
include/linux/mtd/spi-nor.h | 18 +-
include/linux/spi/spi.h | 34 +-
include/trace/events/spi.h | 10 +-
sound/pci/hda/cs35l41_hda_spi.c | 2 +-
126 files changed, 1350 insertions(+), 615 deletions(-)

--
2.25.1