Messages in this thread | | | From | Michael Walle <> | Subject | [PATCH v2 00/32] mtd: spi-nor: move vendor specific code into vendor modules | Date | Fri, 18 Feb 2022 12:35:35 +0100 |
| |
It turns out that most of the special status register handling is specific for a particular vendor. I.e. Xilinx has some different opcodes for the status register read, Micron has an additional FSR register and Spansion has these flags integrated into the SR.
Create a callback to ready() where a flash chip can register its own function. This will let us move all the vendor specific stuff out of the core into the vendor modules.
As a preparation step, unify all function and object names in the vendor modules. For the sake of consistency and better readability of the code flow, I also converted the setup() callback to be optional.
Please note that this is only compile-time tested.
Changes since v1: - rename/unify function names inside the vendor modules. - make local functions static - fix function doc typo - use late_init hook to set fsr_ready op - Use uppercase and period in comments - Add comments for the vendor flags - move coding style change in spi_nor_sr_ready() into own patch - new patch to add missing parenthesis in S3AN_INFO() - add missing function prefix rename patch for the spansion module
Michael Walle (32): mtd: spi-nor: atmel: unify function names mtd: spi-nor: catalyst: unify function names mtd: spi-nor: eon: unify function names mtd: spi-nor: esmt: unify function names mtd: spi-nor: everspin: unify function names mtd: spi-nor: fujitsu: unify function names mtd: spi-nor: gigadevice: unify function names mtd: spi-nor: intel: unify function names mtd: spi-nor: issi: unify function names mtd: spi-nor: macronix: unify function names mtd: spi-nor: micron-st: unify function names mtd: spi-nor: spansion: unify function names mtd: spi-nor: sst: unify function names mtd: spi-nor: winbond: unify function names mtd: spi-nor: xilinx: unify function names mtd: spi-nor: xmc: unify function names mtd: spi-nor: slightly refactor the spi_nor_setup() mtd: spi-nor: allow a flash to define its own ready() function mtd: spi-nor: export more function to be used in vendor modules mtd: spi-nor: guard _page_size parameter in S3AN_INFO() mtd: spi-nor: move all xilinx specifics into xilinx.c mtd: spi-nor: xilinx: rename vendor specific functions and defines mtd: spi-nor: xilinx: correct the debug message mtd: spi-nor: move all micron-st specifics into micron-st.c mtd: spi-nor: micron-st: convert USE_FSR to a manufacturer flag mtd: spi-nor: micron-st: rename vendor specific functions and defines mtd: spi-nor: spansion: slightly rework control flow in late_init() mtd: spi-nor: move all spansion specifics into spansion.c mtd: spi-nor: spansion: convert USE_CLSR to a manufacturer flag mtd: spi-nor: spansion: rename vendor specific functions and defines mtd: spi-nor: slightly change code style in spi_nor_sr_ready() mtd: spi-nor: renumber flags
drivers/mtd/spi-nor/atmel.c | 81 +++++----- drivers/mtd/spi-nor/catalyst.c | 6 +- drivers/mtd/spi-nor/core.c | 265 ++----------------------------- drivers/mtd/spi-nor/core.h | 70 ++++---- drivers/mtd/spi-nor/eon.c | 6 +- drivers/mtd/spi-nor/esmt.c | 6 +- drivers/mtd/spi-nor/everspin.c | 6 +- drivers/mtd/spi-nor/fujitsu.c | 6 +- drivers/mtd/spi-nor/gigadevice.c | 6 +- drivers/mtd/spi-nor/intel.c | 6 +- drivers/mtd/spi-nor/issi.c | 10 +- drivers/mtd/spi-nor/macronix.c | 14 +- drivers/mtd/spi-nor/micron-st.c | 258 ++++++++++++++++++++++++------ drivers/mtd/spi-nor/spansion.c | 154 +++++++++++++----- drivers/mtd/spi-nor/sst.c | 20 +-- drivers/mtd/spi-nor/winbond.c | 26 +-- drivers/mtd/spi-nor/xilinx.c | 93 +++++++++-- drivers/mtd/spi-nor/xmc.c | 6 +- include/linux/mtd/spi-nor.h | 18 --- 19 files changed, 555 insertions(+), 502 deletions(-)
-- 2.30.2
| |