All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 0/3] Add Rockchip SFC(serial flash controller) support
@ 2018-02-08 12:12 ` Andy Yan
  0 siblings, 0 replies; 28+ messages in thread
From: Andy Yan @ 2018-02-08 12:12 UTC (permalink / raw)
  To: cyrille.pitchen, mchehab, robh+dt, linux-mtd, shawn.lin, heiko
  Cc: devicetree, linux-arm-kernel, linux-kernel, boris.brezillon,
	Andy Yan


This is try to support SFC found on Rockchip RV1108 platform.
Thanks for Cyrille's review, this version trys to address all
his concern in V7 [0].

Feature:
(1) Support x1, x2, x4 data bits mode
(2) Support up to 4 chip select
(3) Support two independent clock domain: AHB clock and SPI clock
(4) Support DMA master up to 16KB - 1 transfer

Test environment:
This patchset was tested on RK1108 evb boards with Winboud w25q256,
Gigadevice GD25Q256, working fine with squashfs and jffs2.

[0] http://patchwork.ozlabs.org/patch/793292/

Changes in v8:
- remove unused macro SFC_CMD_TRAN_BYTES_MASK
- set max transfer length to 15.5KB
- remove unnecessary buffer align check
- remove the duplicate logic what spi-nor.c already does for spi_nor_write
- add spi_nor_erase, as the SFC should get the erase address.

Changes in v7:
- correct the fifo status check in pio read/write mode.
- copy data from user buffer to dma buffer

Changes in v6:
- fold in Andy's improvement for checking fifo level
  before pio read
- rename the controller to rv1108 since offically it's
  renamed and acked by Rob.
- use dma_coerce_mask_and_coherent suggested by Andy.

Changes in v5:
- check if the buf is aligned to 32bit
- check if the buf for dma comes from vmalloc
- fix to use 1-1-n according to the current framework
- avoid bytes cnt overflow

Changes in v4:
- use uppercase DMA for description
- simplify the code of get_if_type
- use dma_dir to simplify the code
- simplify the rockchip_sfc_do_rd_wr
- some minor improvements
- add reset controller when doing resume

Changes in v3:
- use io{read32,write32}_rep to simplify the corner cases
- remove more unnecessary bit definitions
- some minor comment fixes and improvement
- fix wrong unregister function
- unify more code
- use nor to avoid constantly replicating the whole
  sfc->flash[sfc->num_chip].nor
- add email for MODULE_AUTHOR
- remove #if 1 --- #endif
- extract DMA code to imporve the code structure
- reset all when failing to do dma
- pass sfc to get_if_type
- rename sfc-no-dma to sfc-no-DMA

Changes in v2:
- fix typos
- add some comment for buffer and others operations
- rename SFC_MAX_CHIP_NUM to MAX_CHIPSELECT_NUM
- use u8 for cs
- return -EINVAL for default case of get_if_type
- use readl_poll_*() to check timeout cases
- simplify and clarify some condition checks
- rework the bitshifts to simplify the code
- define SFC_CMD_DUMMY(x)
- fix ummap for dma read path and finish all the
  cache maintenance.
- rename to rockchip_sfc_chip_priv and embed struct spi_nor
  in it.
- add MODULE_AUTHOR
- add runtime PM and general PM support.
- Thanks for Marek's comments. Link:
  http://lists.infradead.org/pipermail/linux-mtd/2016-November/070321.html

Andy Yan (1):
  ARM: dts: rockchip: enable sfc for rv1108 evb

Shawn Lin (2):
  mtd: spi-nor: Bindings for Rockchip serial flash controller
  mtd: spi-nor: add rockchip serial flash controller driver

 .../devicetree/bindings/mtd/rockchip-sfc.txt       |  31 +
 MAINTAINERS                                        |   9 +
 arch/arm/boot/dts/rv1108-evb.dts                   |  10 +
 arch/arm/boot/dts/rv1108.dtsi                      |  13 +
 drivers/mtd/spi-nor/Kconfig                        |   7 +
 drivers/mtd/spi-nor/Makefile                       |   1 +
 drivers/mtd/spi-nor/rockchip-sfc.c                 | 942 +++++++++++++++++++++
 7 files changed, 1013 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mtd/rockchip-sfc.txt
 create mode 100644 drivers/mtd/spi-nor/rockchip-sfc.c

-- 
2.7.4

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

end of thread, other threads:[~2018-05-18 11:21 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-08 12:12 [PATCH v8 0/3] Add Rockchip SFC(serial flash controller) support Andy Yan
2018-02-08 12:12 ` Andy Yan
2018-02-08 12:12 ` Andy Yan
2018-02-08 12:16 ` [PATCH v8 1/3] mtd: spi-nor: Bindings for Rockchip serial flash controller Andy Yan
2018-02-08 12:16   ` Andy Yan
2018-02-08 12:16   ` Andy Yan
2018-02-08 12:18 ` [PATCH v8 2/3] mtd: spi-nor: add rockchip serial flash controller driver Andy Yan
2018-02-08 12:18   ` Andy Yan
2018-02-08 12:18   ` Andy Yan
2018-02-11  7:54   ` [RFC PATCH] mtd: spi-nor: rockchip_sfc_runtime_suspend() can be static kbuild test robot
2018-02-11  7:54     ` kbuild test robot
2018-02-11  7:54     ` kbuild test robot
2018-02-11  7:54   ` [PATCH v8 2/3] mtd: spi-nor: add rockchip serial flash controller driver kbuild test robot
2018-02-11  7:54     ` kbuild test robot
2018-02-11  7:54     ` kbuild test robot
2018-04-08 12:08   ` Andy Yan
2018-04-10 12:24     ` Heiko Stuebner
2018-04-10 12:24       ` Heiko Stuebner
2018-04-10 17:00   ` Robin Murphy
2018-04-10 17:00     ` Robin Murphy
2018-04-10 18:34   ` Ezequiel Garcia
2018-04-10 18:34     ` Ezequiel Garcia
2018-05-18 11:21   ` Boris Brezillon
2018-05-18 11:21     ` Boris Brezillon
2018-02-08 12:20 ` [PATCH v8 3/3] ARM: dts: rockchip: enable sfc for rv1108 evb Andy Yan
2018-02-08 12:20   ` Andy Yan
2018-02-08 12:20   ` Andy Yan
2018-03-26  8:45 ` [PATCH v8 0/3] Add Rockchip SFC(serial flash controller) support Andy Yan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.