All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/26] memory: omap-gpmc: mtd: nand: Support GPMC NAND on non-OMAP platforms
@ 2016-02-19 21:15 ` Roger Quadros
  0 siblings, 0 replies; 106+ messages in thread
From: Roger Quadros @ 2016-02-19 21:15 UTC (permalink / raw)
  To: tony, computersforpeace
  Cc: dwmw2, ezequiel, javier, fcooper, nsekhar, linux-mtd, linux-omap,
	devicetree, linux-kernel, Roger Quadros

Hi,

@Tony
Patches 15 and 24 are new and will need your review.
I've modified patch 22 to include the new am335x boards introduced since v4.4.

Patches are based on top of omap-for-v4.6/dt so that the DT changes apply cleanly.

@Brian
If you can Ack the MTD related changes we can push the series (excluding DT patches)
to an immutable branch and you can then pull it into l2-mtd.git

Patches tested on:
dra-evm, am437x-gp-evm, beagleboard-c4, beagleboard-c4-legacyboot

Changelog:
v5:
-changed ready/busy# GPIO DT binding from "ready-gpio" to "rb-gpios".
-use irqdomain for gpmc NAND interrupts: fifoevent and termcount

v4:
-Warn if using older incompatible DT i.e. compatible property not present
in nand node.
-Applied Tony's patch to fix broken ethernet on torpedo.

v3:
-Fixed and tested NAND using legacy boot on omap3-beagle.
-Support rising and falling edge interrupts on WAITpins.
-Update DT node of all gpmc users.

Patches summary:

We do a couple of things in this series which result in
cleaner device tree implementation, faster perfomance and
multi-platform support. As an added bonus we get to use the GPMC_WAIT
pins as GPI/Interrupts.

- Establish a custom interface between NAND and GPMC driver. This is
needed because all of the NAND registers sit in the GPMC register space.

- Clean up device tree support so that omap-gpmc IP and the omap2 NAND
driver can be used on non-OMAP platforms. e.g. Keystone.

- Implement GPIOCHIP for the GPMC WAITPINS. SoCs can contain
2 to 4 of these and most of them would be unused otherwise. It also
allows a cleaner implementation of NAND Ready pin status for the NAND driver.

- Implement GPMC IRQ domain to proivde the 2 NAND events and
GPMC WAITPIN edge interrupts.

- Implement GPIOlib based NAND ready pin checking for OMAP NAND driver.
On dra7-evm, Read speed increases from 13768 KiB/ to 17246 KiB/s.
Write speed was unchanged at 7123 KiB/s.

This series is available at
git@github.com:rogerq/linux.git
in branch
for-v4.6/gpmc-v5

--
cheers,
-roger

Roger Quadros (26):
  ARM: OMAP2+: gpmc: Add platform data
  ARM: OMAP2+: gpmc: Add gpmc timings and settings to platform data
  memory: omap-gpmc: Introduce GPMC to NAND interface
  mtd: nand: omap2: Use gpmc_omap_get_nand_ops() to get NAND registers
  memory: omap-gpmc: Add GPMC-NAND ops to get writebufferempty status
  mtd: nand: omap2: Switch to using GPMC-NAND ops for writebuffer empty
    check
  memory: omap-gpmc: Implement IRQ domain for NAND IRQs
  mtd: nand: omap: Copy platform data parameters to omap_nand_info data
  mtd: nand: omap: Clean up device tree support
  mtd: nand: omap: Update DT binding documentation
  memory: omap-gpmc: Prevent mapping into 1st 16MB
  memory: omap-gpmc: Move device tree binding to correct location
  memory: omap-gpmc: Support general purpose input for WAITPINs
  memory: omap-gpmc: Reserve WAITPIN if needed for WAIT monitoring
  memory: omap-gpmc: Support WAIT pin edge interrupts
  memory: omap-gpmc: Prevent GPMC_STATUS from being accessed via
    gpmc_regs
  mtd: nand: omap2: Implement NAND ready using gpiolib
  ARM: dts: dra7: Fix NAND device nodes.
  ARM: dts: dra7x-evm: Provide NAND ready pin
  ARM: dts: am437x: Fix NAND device nodes
  ARM: dts: am437x: Provide NAND ready pin
  ARM: dts: am335x: Fix NAND device nodes
  ARM: dts: am335x: Provide NAND ready pin
  ARM: dts: dm814x: Fix gpmc and NAND node
  ARM: dts: dm816x: Fix gpmc and NAND node
  ARM: dts: omap3: Fix gpmc and NAND nodes

 Documentation/devicetree/bindings/bus/ti-gpmc.txt  | 130 ----
 .../bindings/memory-controllers/omap-gpmc.txt      | 141 +++++
 .../devicetree/bindings/mtd/gpmc-nand.txt          |  19 +-
 arch/arm/boot/dts/am335x-baltos-ir5221.dts         |  10 +-
 arch/arm/boot/dts/am335x-chilisom.dtsi             |   9 +-
 arch/arm/boot/dts/am335x-cm-t335.dts               |  10 +-
 arch/arm/boot/dts/am335x-evm.dts                   |   8 +-
 arch/arm/boot/dts/am335x-igep0033.dtsi             |   9 +-
 arch/arm/boot/dts/am335x-phycore-som.dtsi          |   9 +-
 arch/arm/boot/dts/am33xx.dtsi                      |   4 +
 arch/arm/boot/dts/am4372.dtsi                      |   4 +
 arch/arm/boot/dts/am437x-cm-t43.dts                |   7 +-
 arch/arm/boot/dts/am437x-gp-evm.dts                |   9 +-
 arch/arm/boot/dts/am43x-epos-evm.dts               |   9 +-
 arch/arm/boot/dts/dm8148-evm.dts                   |   8 +-
 arch/arm/boot/dts/dm814x.dtsi                      |   4 +
 arch/arm/boot/dts/dm8168-evm.dts                   |   8 +-
 arch/arm/boot/dts/dm816x.dtsi                      |   4 +
 arch/arm/boot/dts/dra62x-j5eco-evm.dts             |   8 +-
 arch/arm/boot/dts/dra7-evm.dts                     |   7 +-
 arch/arm/boot/dts/dra7.dtsi                        |   4 +
 arch/arm/boot/dts/dra72-evm.dts                    |   7 +-
 arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts  |   3 +-
 arch/arm/boot/dts/logicpd-torpedo-som.dtsi         |   8 +-
 arch/arm/boot/dts/omap3-beagle.dts                 |   5 +-
 arch/arm/boot/dts/omap3-cm-t3x.dtsi                |   6 +-
 arch/arm/boot/dts/omap3-devkit8000-common.dtsi     |   4 +
 arch/arm/boot/dts/omap3-evm-37xx.dts               |   8 +-
 arch/arm/boot/dts/omap3-gta04.dtsi                 |   4 +
 arch/arm/boot/dts/omap3-igep.dtsi                  |   6 +-
 arch/arm/boot/dts/omap3-igep0020-common.dtsi       |   4 +-
 arch/arm/boot/dts/omap3-igep0030-common.dtsi       |   4 +
 arch/arm/boot/dts/omap3-ldp.dts                    |  10 +-
 arch/arm/boot/dts/omap3-lilly-a83x.dtsi            |   6 +-
 arch/arm/boot/dts/omap3-overo-base.dtsi            |   6 +-
 arch/arm/boot/dts/omap3-pandora-common.dtsi        |   4 +
 arch/arm/boot/dts/omap3-tao3530.dtsi               |   6 +-
 arch/arm/boot/dts/omap3.dtsi                       |   4 +
 arch/arm/boot/dts/omap3430-sdp.dts                 |   6 +-
 arch/arm/mach-omap2/gpmc-nand.c                    |   7 +-
 drivers/memory/Kconfig                             |   1 +
 drivers/memory/omap-gpmc.c                         | 653 +++++++++++++--------
 drivers/mtd/nand/omap2.c                           | 193 ++++--
 include/linux/omap-gpmc.h                          | 177 ++----
 include/linux/platform_data/gpmc-omap.h            | 167 ++++++
 include/linux/platform_data/mtd-nand-omap2.h       |  12 +-
 46 files changed, 1121 insertions(+), 611 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/bus/ti-gpmc.txt
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
 create mode 100644 include/linux/platform_data/gpmc-omap.h

-- 
2.1.4

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

end of thread, other threads:[~2016-03-17 14:48 UTC | newest]

Thread overview: 106+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-19 21:15 [PATCH v5 00/26] memory: omap-gpmc: mtd: nand: Support GPMC NAND on non-OMAP platforms Roger Quadros
2016-02-19 21:15 ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 01/26] ARM: OMAP2+: gpmc: Add platform data Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 02/26] ARM: OMAP2+: gpmc: Add gpmc timings and settings to " Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 03/26] memory: omap-gpmc: Introduce GPMC to NAND interface Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-03-05  1:35   ` Brian Norris
2016-03-07  8:55     ` Roger Quadros
2016-03-07  8:55       ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 04/26] mtd: nand: omap2: Use gpmc_omap_get_nand_ops() to get NAND registers Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 05/26] memory: omap-gpmc: Add GPMC-NAND ops to get writebufferempty status Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 06/26] mtd: nand: omap2: Switch to using GPMC-NAND ops for writebuffer empty check Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 07/26] memory: omap-gpmc: Implement IRQ domain for NAND IRQs Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 08/26] mtd: nand: omap: Copy platform data parameters to omap_nand_info data Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 09/26] mtd: nand: omap: Clean up device tree support Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-03-05  2:10   ` Brian Norris
2016-03-07  9:06     ` Roger Quadros
2016-03-07  9:06       ` Roger Quadros
2016-03-05  2:28   ` Brian Norris
2016-03-05  2:28     ` Brian Norris
2016-03-07  9:02     ` Roger Quadros
2016-03-07  9:02       ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 10/26] mtd: nand: omap: Update DT binding documentation Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-23 19:41   ` Rob Herring
2016-02-24  9:55     ` Roger Quadros
2016-02-24  9:55       ` Roger Quadros
2016-03-05  2:04   ` Brian Norris
2016-03-05  2:04     ` Brian Norris
2016-03-07  9:46     ` Roger Quadros
2016-03-07  9:46       ` Roger Quadros
2016-03-07 18:58       ` Brian Norris
2016-03-07 18:58         ` Brian Norris
2016-03-07 10:32   ` [PATCH v6 " Roger Quadros
2016-03-07 10:32     ` Roger Quadros
2016-03-17 14:48     ` Rob Herring
2016-03-17 14:48       ` Rob Herring
2016-02-19 21:15 ` [PATCH v5 11/26] memory: omap-gpmc: Prevent mapping into 1st 16MB Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 12/26] memory: omap-gpmc: Move device tree binding to correct location Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-23 20:50   ` Rob Herring
2016-02-24  9:51     ` Roger Quadros
2016-02-24  9:51       ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 13/26] memory: omap-gpmc: Support general purpose input for WAITPINs Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-03-07  9:34   ` Boris Brezillon
2016-03-07  9:34     ` Boris Brezillon
2016-03-07  9:38     ` Boris Brezillon
2016-03-07  9:38       ` Boris Brezillon
2016-03-07 10:02     ` Roger Quadros
2016-03-07 10:02       ` Roger Quadros
2016-03-07 10:31       ` Boris Brezillon
2016-03-07 10:31         ` Boris Brezillon
2016-02-19 21:15 ` [PATCH v5 14/26] memory: omap-gpmc: Reserve WAITPIN if needed for WAIT monitoring Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 15/26] memory: omap-gpmc: Support WAIT pin edge interrupts Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 16/26] memory: omap-gpmc: Prevent GPMC_STATUS from being accessed via gpmc_regs Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 17/26] mtd: nand: omap2: Implement NAND ready using gpiolib Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-03-05  1:46   ` Brian Norris
2016-03-05  1:46     ` Brian Norris
2016-03-07  9:11     ` Roger Quadros
2016-03-07  9:11       ` Roger Quadros
2016-03-07  9:22   ` Boris Brezillon
2016-03-07  9:22     ` Boris Brezillon
2016-02-19 21:15 ` [PATCH v5 18/26] ARM: dts: dra7: Fix NAND device nodes Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 19/26] ARM: dts: dra7x-evm: Provide NAND ready pin Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 20/26] ARM: dts: am437x: Fix NAND device nodes Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 21/26] ARM: dts: am437x: Provide NAND ready pin Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 22/26] ARM: dts: am335x: Fix NAND device nodes Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 23/26] ARM: dts: am335x: Provide NAND ready pin Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 24/26] ARM: dts: dm814x: Fix gpmc and NAND node Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 25/26] ARM: dts: dm816x: " Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 21:15 ` [PATCH v5 26/26] ARM: dts: omap3: Fix gpmc and NAND nodes Roger Quadros
2016-02-19 21:15   ` Roger Quadros
2016-02-19 22:04 ` [PATCH v5 00/26] memory: omap-gpmc: mtd: nand: Support GPMC NAND on non-OMAP platforms Tony Lindgren
2016-02-22 10:15   ` Roger Quadros
2016-02-22 10:15     ` Roger Quadros
2016-02-22 16:42     ` Tony Lindgren
2016-02-22 20:05       ` Roger Quadros
2016-02-22 20:05         ` Roger Quadros
2016-02-22 20:12         ` nick
2016-02-22 20:12           ` nick
2016-02-29 16:25 ` Roger Quadros
2016-02-29 16:25   ` Roger Quadros
2016-03-05  2:33   ` Brian Norris
2016-03-05  2:33     ` Brian Norris

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.