All of lore.kernel.org
 help / color / mirror / Atom feed
From: Javier Martinez Canillas <javier@dowhile0.org>
To: Roger Quadros <rogerq@ti.com>
Cc: Tony Lindgren <tony@atomide.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	kyungmin.park@samsung.com, "Gupta, Pekon" <pekon@ti.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	nsekhar@ti.com,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	linux-mtd@lists.infradead.org,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 00/36] OMAP: GPMC: Restructure and move OMAP GPMC driver out of mach-omap2
Date: Wed, 11 Jun 2014 13:52:07 +0200	[thread overview]
Message-ID: <CABxcv=mMAnnjd=F7itDWCt5QpVr=U5_mP=xhCW-oB5c2Doo75w@mail.gmail.com> (raw)
In-Reply-To: <1402477001-31132-1-git-send-email-rogerq@ti.com>

Hello Roger,

What a great series!!

On Wed, Jun 11, 2014 at 10:56 AM, Roger Quadros <rogerq@ti.com> wrote:
> Hi,
>
> This is a complete functional set to get the gpmc driver out of mach-omap2
> and into drivers/memory. The DT binding remains the same except for the
> following minor changes

I probably won't have time to do a proper review until at least next
week but doing a quick glance it looks very good to me.

> - compatible property is required for NAND & OneNAND nodes

This is a minor ABI breakage but I agree with you that it is wrong
that these were not introduced in the first place and relied on the
dev node so I think is not that bad to break it in this case.

> - Second register space and interrupts properties are required for
>   NAND controller node
> - ti,onenand-sync-rw property added for OneNAND node.
>
> The series does the following changes
> - Move GPMC IRQ and NAND register handling to NAND driver.
>   The entire GPMC register space is made available to the NAND driver.
> - Clean up NAND device tree handling. Don't rely on legacy platform device
>   i.e. don't call gpmc_nand_init()
> - Add 2 public APIs omap_gpmc_retime() and omap_gpmc_get_clk_period()
>   omap_gpmc_retime() allows to reconfigure the GPMC settings and timings
>   for the specified Chip select region.
>   omap_gpmc_get_clk_period() allows to query the GPMC_CLK (external clock)
>   period, to perform timing calculations.
>   Both functions will be needed by the OneNAND driver since it calculates
>   device timings on the fly and needs to change from Asynchronous mode
>   to Synchronous mode.
> - Setup OneNAND in Asynchronous mode by default and move Synchronous
>   setting code into OneNAND driver.
> - Clean up OneNAND device tree handling. Don't rely on legacy platform device
>   i.e. don't call gpmc_onenand_init()
> - Introduce gpmc_generic_init() that should be used by board files to specify
>   GPMC chip select setting/timing and platform device within that Chip Select.
> - Stop using all gpmc*() that are meant to be private to GPMC driver.
> - Move GPMC driver into drivers/memory
>
> Tested on:
>
> - beagleboard C4: NAND
> - Nokia N900: OneNAND
>

Do you have a tree somewhere that I can use it to test on the boards I
maintain and post patches to update the DTS according the new binding?

> Changelog:
>
> [1] RFC patch - https://lkml.org/lkml/2014/5/21/218
>
> cheers,
> -roger
>
> ---
> Roger Quadros (36):
>   ARM: OMAP3: hwmod: Fix gpmc memory resource space
>   ARM: dts: OMAP2+: Fix GPMC register space size
>   ARM: OMAP2+: gpmc: Add platform data
>   ARM: OMAP2+: gpmc: Add gpmc timings and settings to platform data
>   mtd: nand: omap: Move IRQ handling from GPMC to NAND driver
>   mtd: nand: omap: Move gpmc_update_nand_reg to nand driver
>   mtd: nand: omap: Move NAND write protect code from GPMC to NAND driver
>   mtd: nand: omap: Copy platform data parameters to omap_nand_info data
>   mtd: nand: omap: Clean up device tree support
>   ARM: dts: OMAP2+: Fix NAND device nodes
>   mtd: nand: omap: Update DT binding documentation
>   ARM: dts: omap3-beagle: Add NAND device
>   ARM: OMAP2+: gpmc.c: sanity check bank-width DT property
>   ARM: OMAP2+: gpmc: Allow drivers to reconfigure GPMC settings &
>     timings
>   ARM: OMAP2+: gpmc: Allow drivers to query GPMC_CLK period
>   mtd: onenand: omap: Remove regulator management code
>   ARM: OMAP2+: gpmc-onenand: Use Async settings/timings by default
>   ARM: OMAP2+: gpmc-onenand: Move Synchronous setting code to drivers/
>   mtd: onenand: omap: Use devres managed resources
>   mtd: onenand: omap: Clean up device tree support
>   ARM: dts: OMAP2+: Fix OneNAND device nodes
>   ARM: OMAP2+: gmpc: add gpmc_generic_init()
>   ARM: OMAP2+: gpmc: use platform data to configure CS space and
>     poplulate device
>   ARM: OMAP2+: gpmc: add NAND specific setup
>   ARM: OMAP2+: gpmc: Support multiple Chip Selects per device
>   ARM: OMAP2+: gpmc-smc91x: Get rid of retime() from
>     omap_smc91x_platform_data
>   ARM: OMAP2+: usb-tusb6010: Use omap_gpmc_retime()
>   ARM: OMAP2+: nand: Update gpmc_nand_init() to use generic_gpmc_init()
>   ARM: OMAP2+: gpmc-smc91x: Use gpmc_generic_init()
>   ARM: OMAP2+: gpmc-smsc911x: Use gpmc_generic_init()
>   ARM: OMAP2: usb-tusb6010: Use gpmc_generic_init()
>   ARM: OMAP2+: onenand: Use gpmc_generic_init()
>   ARM: OMAP2+: board-flash: Use gpmc_generic_init() for NOR
>   ARM: OMAP2+: gpmc: Make externally unused functions/defines private
>   ARM: OMAP2+: gpmc: move GPMC driver into drivers/memory
>   ARM: OMAP2+: defconfig: Enable TI GPMC driver
>
>  .../devicetree/bindings/mtd/gpmc-nand.txt          |   16 +-
>  .../devicetree/bindings/mtd/gpmc-onenand.txt       |    4 +
>  arch/arm/boot/dts/am335x-evm.dts                   |    8 +-
>  arch/arm/boot/dts/am335x-igep0033.dtsi             |    8 +-
>  arch/arm/boot/dts/am33xx.dtsi                      |    2 +-
>  arch/arm/boot/dts/am4372.dtsi                      |    2 +-
>  arch/arm/boot/dts/am43x-epos-evm.dts               |    8 +-
>  arch/arm/boot/dts/omap2420-n8x0-common.dtsi        |    5 +-
>  arch/arm/boot/dts/omap2420.dtsi                    |    2 +-
>  arch/arm/boot/dts/omap2430.dtsi                    |    2 +-
>  arch/arm/boot/dts/omap3-beagle.dts                 |   53 +
>  arch/arm/boot/dts/omap3-devkit8000.dts             |    9 +-
>  arch/arm/boot/dts/omap3-evm-37xx.dts               |   10 +-
>  arch/arm/boot/dts/omap3-igep0020.dts               |   10 +-
>  arch/arm/boot/dts/omap3-igep0030.dts               |    8 +-
>  arch/arm/boot/dts/omap3-ldp.dts                    |   10 +-
>  arch/arm/boot/dts/omap3-lilly-a83x.dtsi            |   10 +-
>  arch/arm/boot/dts/omap3-lilly-dbb056.dts           |    7 +-
>  arch/arm/boot/dts/omap3-n900.dts                   |    6 +-
>  arch/arm/boot/dts/omap3-n950-n9.dtsi               |    6 +-
>  arch/arm/boot/dts/omap3.dtsi                       |    2 +-
>  arch/arm/boot/dts/omap3430-sdp.dts                 |   14 +-
>  arch/arm/boot/dts/omap4.dtsi                       |    2 +-
>  arch/arm/boot/dts/omap5.dtsi                       |    2 +-
>  arch/arm/configs/omap2plus_defconfig               |    2 +
>  arch/arm/mach-omap2/Makefile                       |    2 +-
>  arch/arm/mach-omap2/board-3430sdp.c                |    8 +-
>  arch/arm/mach-omap2/board-flash.c                  |   28 +-
>  arch/arm/mach-omap2/gpmc-nand.c                    |   66 +-
>  arch/arm/mach-omap2/gpmc-onenand.c                 |  351 +---
>  arch/arm/mach-omap2/gpmc-smc91x.c                  |   91 +-
>  arch/arm/mach-omap2/gpmc-smc91x.h                  |    1 -
>  arch/arm/mach-omap2/gpmc-smsc911x.c                |   76 +-
>  arch/arm/mach-omap2/gpmc.c                         | 1872 --------------------
>  arch/arm/mach-omap2/gpmc.h                         |  221 +--
>  arch/arm/mach-omap2/gpmc_legacy.c                  |  296 ++++
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |    2 +-
>  arch/arm/mach-omap2/usb-tusb6010.c                 |  172 +-
>  drivers/memory/Kconfig                             |   10 +
>  drivers/memory/Makefile                            |    1 +
>  drivers/memory/ti-gpmc.c                           | 1829 +++++++++++++++++++
>  drivers/mtd/nand/Kconfig                           |    2 +-
>  drivers/mtd/nand/omap2.c                           |  364 +++-
>  drivers/mtd/onenand/Kconfig                        |    6 +-
>  drivers/mtd/onenand/omap2.c                        |  456 +++--
>  include/linux/platform_data/gpmc-omap.h            |  189 ++
>  include/linux/platform_data/mtd-nand-omap2.h       |   10 +-
>  include/linux/platform_data/mtd-onenand-omap2.h    |    7 +-
>  48 files changed, 3361 insertions(+), 2907 deletions(-)
>  delete mode 100644 arch/arm/mach-omap2/gpmc.c
>  create mode 100644 arch/arm/mach-omap2/gpmc_legacy.c
>  create mode 100644 drivers/memory/ti-gpmc.c
>  create mode 100644 include/linux/platform_data/gpmc-omap.h
>
> --
> 1.8.3.2
>

Best regards,
Javier

WARNING: multiple messages have this Message-ID (diff)
From: Javier Martinez Canillas <javier-0uQlZySMnqxg9hUCZPvPmw@public.gmane.org>
To: Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
Cc: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
	David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Brian Norris
	<computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, "Gupta,
	Pekon" <pekon-l0cyMroinI0@public.gmane.org>,
	Ezequiel Garcia
	<ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	nsekhar-l0cyMroinI0@public.gmane.org,
	"linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux Kernel
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH 00/36] OMAP: GPMC: Restructure and move OMAP GPMC driver out of mach-omap2
Date: Wed, 11 Jun 2014 13:52:07 +0200	[thread overview]
Message-ID: <CABxcv=mMAnnjd=F7itDWCt5QpVr=U5_mP=xhCW-oB5c2Doo75w@mail.gmail.com> (raw)
In-Reply-To: <1402477001-31132-1-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>

Hello Roger,

What a great series!!

On Wed, Jun 11, 2014 at 10:56 AM, Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org> wrote:
> Hi,
>
> This is a complete functional set to get the gpmc driver out of mach-omap2
> and into drivers/memory. The DT binding remains the same except for the
> following minor changes

I probably won't have time to do a proper review until at least next
week but doing a quick glance it looks very good to me.

> - compatible property is required for NAND & OneNAND nodes

This is a minor ABI breakage but I agree with you that it is wrong
that these were not introduced in the first place and relied on the
dev node so I think is not that bad to break it in this case.

> - Second register space and interrupts properties are required for
>   NAND controller node
> - ti,onenand-sync-rw property added for OneNAND node.
>
> The series does the following changes
> - Move GPMC IRQ and NAND register handling to NAND driver.
>   The entire GPMC register space is made available to the NAND driver.
> - Clean up NAND device tree handling. Don't rely on legacy platform device
>   i.e. don't call gpmc_nand_init()
> - Add 2 public APIs omap_gpmc_retime() and omap_gpmc_get_clk_period()
>   omap_gpmc_retime() allows to reconfigure the GPMC settings and timings
>   for the specified Chip select region.
>   omap_gpmc_get_clk_period() allows to query the GPMC_CLK (external clock)
>   period, to perform timing calculations.
>   Both functions will be needed by the OneNAND driver since it calculates
>   device timings on the fly and needs to change from Asynchronous mode
>   to Synchronous mode.
> - Setup OneNAND in Asynchronous mode by default and move Synchronous
>   setting code into OneNAND driver.
> - Clean up OneNAND device tree handling. Don't rely on legacy platform device
>   i.e. don't call gpmc_onenand_init()
> - Introduce gpmc_generic_init() that should be used by board files to specify
>   GPMC chip select setting/timing and platform device within that Chip Select.
> - Stop using all gpmc*() that are meant to be private to GPMC driver.
> - Move GPMC driver into drivers/memory
>
> Tested on:
>
> - beagleboard C4: NAND
> - Nokia N900: OneNAND
>

Do you have a tree somewhere that I can use it to test on the boards I
maintain and post patches to update the DTS according the new binding?

> Changelog:
>
> [1] RFC patch - https://lkml.org/lkml/2014/5/21/218
>
> cheers,
> -roger
>
> ---
> Roger Quadros (36):
>   ARM: OMAP3: hwmod: Fix gpmc memory resource space
>   ARM: dts: OMAP2+: Fix GPMC register space size
>   ARM: OMAP2+: gpmc: Add platform data
>   ARM: OMAP2+: gpmc: Add gpmc timings and settings to platform data
>   mtd: nand: omap: Move IRQ handling from GPMC to NAND driver
>   mtd: nand: omap: Move gpmc_update_nand_reg to nand driver
>   mtd: nand: omap: Move NAND write protect code from GPMC to NAND driver
>   mtd: nand: omap: Copy platform data parameters to omap_nand_info data
>   mtd: nand: omap: Clean up device tree support
>   ARM: dts: OMAP2+: Fix NAND device nodes
>   mtd: nand: omap: Update DT binding documentation
>   ARM: dts: omap3-beagle: Add NAND device
>   ARM: OMAP2+: gpmc.c: sanity check bank-width DT property
>   ARM: OMAP2+: gpmc: Allow drivers to reconfigure GPMC settings &
>     timings
>   ARM: OMAP2+: gpmc: Allow drivers to query GPMC_CLK period
>   mtd: onenand: omap: Remove regulator management code
>   ARM: OMAP2+: gpmc-onenand: Use Async settings/timings by default
>   ARM: OMAP2+: gpmc-onenand: Move Synchronous setting code to drivers/
>   mtd: onenand: omap: Use devres managed resources
>   mtd: onenand: omap: Clean up device tree support
>   ARM: dts: OMAP2+: Fix OneNAND device nodes
>   ARM: OMAP2+: gmpc: add gpmc_generic_init()
>   ARM: OMAP2+: gpmc: use platform data to configure CS space and
>     poplulate device
>   ARM: OMAP2+: gpmc: add NAND specific setup
>   ARM: OMAP2+: gpmc: Support multiple Chip Selects per device
>   ARM: OMAP2+: gpmc-smc91x: Get rid of retime() from
>     omap_smc91x_platform_data
>   ARM: OMAP2+: usb-tusb6010: Use omap_gpmc_retime()
>   ARM: OMAP2+: nand: Update gpmc_nand_init() to use generic_gpmc_init()
>   ARM: OMAP2+: gpmc-smc91x: Use gpmc_generic_init()
>   ARM: OMAP2+: gpmc-smsc911x: Use gpmc_generic_init()
>   ARM: OMAP2: usb-tusb6010: Use gpmc_generic_init()
>   ARM: OMAP2+: onenand: Use gpmc_generic_init()
>   ARM: OMAP2+: board-flash: Use gpmc_generic_init() for NOR
>   ARM: OMAP2+: gpmc: Make externally unused functions/defines private
>   ARM: OMAP2+: gpmc: move GPMC driver into drivers/memory
>   ARM: OMAP2+: defconfig: Enable TI GPMC driver
>
>  .../devicetree/bindings/mtd/gpmc-nand.txt          |   16 +-
>  .../devicetree/bindings/mtd/gpmc-onenand.txt       |    4 +
>  arch/arm/boot/dts/am335x-evm.dts                   |    8 +-
>  arch/arm/boot/dts/am335x-igep0033.dtsi             |    8 +-
>  arch/arm/boot/dts/am33xx.dtsi                      |    2 +-
>  arch/arm/boot/dts/am4372.dtsi                      |    2 +-
>  arch/arm/boot/dts/am43x-epos-evm.dts               |    8 +-
>  arch/arm/boot/dts/omap2420-n8x0-common.dtsi        |    5 +-
>  arch/arm/boot/dts/omap2420.dtsi                    |    2 +-
>  arch/arm/boot/dts/omap2430.dtsi                    |    2 +-
>  arch/arm/boot/dts/omap3-beagle.dts                 |   53 +
>  arch/arm/boot/dts/omap3-devkit8000.dts             |    9 +-
>  arch/arm/boot/dts/omap3-evm-37xx.dts               |   10 +-
>  arch/arm/boot/dts/omap3-igep0020.dts               |   10 +-
>  arch/arm/boot/dts/omap3-igep0030.dts               |    8 +-
>  arch/arm/boot/dts/omap3-ldp.dts                    |   10 +-
>  arch/arm/boot/dts/omap3-lilly-a83x.dtsi            |   10 +-
>  arch/arm/boot/dts/omap3-lilly-dbb056.dts           |    7 +-
>  arch/arm/boot/dts/omap3-n900.dts                   |    6 +-
>  arch/arm/boot/dts/omap3-n950-n9.dtsi               |    6 +-
>  arch/arm/boot/dts/omap3.dtsi                       |    2 +-
>  arch/arm/boot/dts/omap3430-sdp.dts                 |   14 +-
>  arch/arm/boot/dts/omap4.dtsi                       |    2 +-
>  arch/arm/boot/dts/omap5.dtsi                       |    2 +-
>  arch/arm/configs/omap2plus_defconfig               |    2 +
>  arch/arm/mach-omap2/Makefile                       |    2 +-
>  arch/arm/mach-omap2/board-3430sdp.c                |    8 +-
>  arch/arm/mach-omap2/board-flash.c                  |   28 +-
>  arch/arm/mach-omap2/gpmc-nand.c                    |   66 +-
>  arch/arm/mach-omap2/gpmc-onenand.c                 |  351 +---
>  arch/arm/mach-omap2/gpmc-smc91x.c                  |   91 +-
>  arch/arm/mach-omap2/gpmc-smc91x.h                  |    1 -
>  arch/arm/mach-omap2/gpmc-smsc911x.c                |   76 +-
>  arch/arm/mach-omap2/gpmc.c                         | 1872 --------------------
>  arch/arm/mach-omap2/gpmc.h                         |  221 +--
>  arch/arm/mach-omap2/gpmc_legacy.c                  |  296 ++++
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |    2 +-
>  arch/arm/mach-omap2/usb-tusb6010.c                 |  172 +-
>  drivers/memory/Kconfig                             |   10 +
>  drivers/memory/Makefile                            |    1 +
>  drivers/memory/ti-gpmc.c                           | 1829 +++++++++++++++++++
>  drivers/mtd/nand/Kconfig                           |    2 +-
>  drivers/mtd/nand/omap2.c                           |  364 +++-
>  drivers/mtd/onenand/Kconfig                        |    6 +-
>  drivers/mtd/onenand/omap2.c                        |  456 +++--
>  include/linux/platform_data/gpmc-omap.h            |  189 ++
>  include/linux/platform_data/mtd-nand-omap2.h       |   10 +-
>  include/linux/platform_data/mtd-onenand-omap2.h    |    7 +-
>  48 files changed, 3361 insertions(+), 2907 deletions(-)
>  delete mode 100644 arch/arm/mach-omap2/gpmc.c
>  create mode 100644 arch/arm/mach-omap2/gpmc_legacy.c
>  create mode 100644 drivers/memory/ti-gpmc.c
>  create mode 100644 include/linux/platform_data/gpmc-omap.h
>
> --
> 1.8.3.2
>

Best regards,
Javier
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Javier Martinez Canillas <javier@dowhile0.org>
To: Roger Quadros <rogerq@ti.com>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	Tony Lindgren <tony@atomide.com>,
	nsekhar@ti.com, Linux Kernel <linux-kernel@vger.kernel.org>,
	kyungmin.park@samsung.com, linux-mtd@lists.infradead.org, "Gupta,
	Pekon" <pekon@ti.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	Brian Norris <computersforpeace@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH 00/36] OMAP: GPMC: Restructure and move OMAP GPMC driver out of mach-omap2
Date: Wed, 11 Jun 2014 13:52:07 +0200	[thread overview]
Message-ID: <CABxcv=mMAnnjd=F7itDWCt5QpVr=U5_mP=xhCW-oB5c2Doo75w@mail.gmail.com> (raw)
In-Reply-To: <1402477001-31132-1-git-send-email-rogerq@ti.com>

Hello Roger,

What a great series!!

On Wed, Jun 11, 2014 at 10:56 AM, Roger Quadros <rogerq@ti.com> wrote:
> Hi,
>
> This is a complete functional set to get the gpmc driver out of mach-omap2
> and into drivers/memory. The DT binding remains the same except for the
> following minor changes

I probably won't have time to do a proper review until at least next
week but doing a quick glance it looks very good to me.

> - compatible property is required for NAND & OneNAND nodes

This is a minor ABI breakage but I agree with you that it is wrong
that these were not introduced in the first place and relied on the
dev node so I think is not that bad to break it in this case.

> - Second register space and interrupts properties are required for
>   NAND controller node
> - ti,onenand-sync-rw property added for OneNAND node.
>
> The series does the following changes
> - Move GPMC IRQ and NAND register handling to NAND driver.
>   The entire GPMC register space is made available to the NAND driver.
> - Clean up NAND device tree handling. Don't rely on legacy platform device
>   i.e. don't call gpmc_nand_init()
> - Add 2 public APIs omap_gpmc_retime() and omap_gpmc_get_clk_period()
>   omap_gpmc_retime() allows to reconfigure the GPMC settings and timings
>   for the specified Chip select region.
>   omap_gpmc_get_clk_period() allows to query the GPMC_CLK (external clock)
>   period, to perform timing calculations.
>   Both functions will be needed by the OneNAND driver since it calculates
>   device timings on the fly and needs to change from Asynchronous mode
>   to Synchronous mode.
> - Setup OneNAND in Asynchronous mode by default and move Synchronous
>   setting code into OneNAND driver.
> - Clean up OneNAND device tree handling. Don't rely on legacy platform device
>   i.e. don't call gpmc_onenand_init()
> - Introduce gpmc_generic_init() that should be used by board files to specify
>   GPMC chip select setting/timing and platform device within that Chip Select.
> - Stop using all gpmc*() that are meant to be private to GPMC driver.
> - Move GPMC driver into drivers/memory
>
> Tested on:
>
> - beagleboard C4: NAND
> - Nokia N900: OneNAND
>

Do you have a tree somewhere that I can use it to test on the boards I
maintain and post patches to update the DTS according the new binding?

> Changelog:
>
> [1] RFC patch - https://lkml.org/lkml/2014/5/21/218
>
> cheers,
> -roger
>
> ---
> Roger Quadros (36):
>   ARM: OMAP3: hwmod: Fix gpmc memory resource space
>   ARM: dts: OMAP2+: Fix GPMC register space size
>   ARM: OMAP2+: gpmc: Add platform data
>   ARM: OMAP2+: gpmc: Add gpmc timings and settings to platform data
>   mtd: nand: omap: Move IRQ handling from GPMC to NAND driver
>   mtd: nand: omap: Move gpmc_update_nand_reg to nand driver
>   mtd: nand: omap: Move NAND write protect code from GPMC to NAND driver
>   mtd: nand: omap: Copy platform data parameters to omap_nand_info data
>   mtd: nand: omap: Clean up device tree support
>   ARM: dts: OMAP2+: Fix NAND device nodes
>   mtd: nand: omap: Update DT binding documentation
>   ARM: dts: omap3-beagle: Add NAND device
>   ARM: OMAP2+: gpmc.c: sanity check bank-width DT property
>   ARM: OMAP2+: gpmc: Allow drivers to reconfigure GPMC settings &
>     timings
>   ARM: OMAP2+: gpmc: Allow drivers to query GPMC_CLK period
>   mtd: onenand: omap: Remove regulator management code
>   ARM: OMAP2+: gpmc-onenand: Use Async settings/timings by default
>   ARM: OMAP2+: gpmc-onenand: Move Synchronous setting code to drivers/
>   mtd: onenand: omap: Use devres managed resources
>   mtd: onenand: omap: Clean up device tree support
>   ARM: dts: OMAP2+: Fix OneNAND device nodes
>   ARM: OMAP2+: gmpc: add gpmc_generic_init()
>   ARM: OMAP2+: gpmc: use platform data to configure CS space and
>     poplulate device
>   ARM: OMAP2+: gpmc: add NAND specific setup
>   ARM: OMAP2+: gpmc: Support multiple Chip Selects per device
>   ARM: OMAP2+: gpmc-smc91x: Get rid of retime() from
>     omap_smc91x_platform_data
>   ARM: OMAP2+: usb-tusb6010: Use omap_gpmc_retime()
>   ARM: OMAP2+: nand: Update gpmc_nand_init() to use generic_gpmc_init()
>   ARM: OMAP2+: gpmc-smc91x: Use gpmc_generic_init()
>   ARM: OMAP2+: gpmc-smsc911x: Use gpmc_generic_init()
>   ARM: OMAP2: usb-tusb6010: Use gpmc_generic_init()
>   ARM: OMAP2+: onenand: Use gpmc_generic_init()
>   ARM: OMAP2+: board-flash: Use gpmc_generic_init() for NOR
>   ARM: OMAP2+: gpmc: Make externally unused functions/defines private
>   ARM: OMAP2+: gpmc: move GPMC driver into drivers/memory
>   ARM: OMAP2+: defconfig: Enable TI GPMC driver
>
>  .../devicetree/bindings/mtd/gpmc-nand.txt          |   16 +-
>  .../devicetree/bindings/mtd/gpmc-onenand.txt       |    4 +
>  arch/arm/boot/dts/am335x-evm.dts                   |    8 +-
>  arch/arm/boot/dts/am335x-igep0033.dtsi             |    8 +-
>  arch/arm/boot/dts/am33xx.dtsi                      |    2 +-
>  arch/arm/boot/dts/am4372.dtsi                      |    2 +-
>  arch/arm/boot/dts/am43x-epos-evm.dts               |    8 +-
>  arch/arm/boot/dts/omap2420-n8x0-common.dtsi        |    5 +-
>  arch/arm/boot/dts/omap2420.dtsi                    |    2 +-
>  arch/arm/boot/dts/omap2430.dtsi                    |    2 +-
>  arch/arm/boot/dts/omap3-beagle.dts                 |   53 +
>  arch/arm/boot/dts/omap3-devkit8000.dts             |    9 +-
>  arch/arm/boot/dts/omap3-evm-37xx.dts               |   10 +-
>  arch/arm/boot/dts/omap3-igep0020.dts               |   10 +-
>  arch/arm/boot/dts/omap3-igep0030.dts               |    8 +-
>  arch/arm/boot/dts/omap3-ldp.dts                    |   10 +-
>  arch/arm/boot/dts/omap3-lilly-a83x.dtsi            |   10 +-
>  arch/arm/boot/dts/omap3-lilly-dbb056.dts           |    7 +-
>  arch/arm/boot/dts/omap3-n900.dts                   |    6 +-
>  arch/arm/boot/dts/omap3-n950-n9.dtsi               |    6 +-
>  arch/arm/boot/dts/omap3.dtsi                       |    2 +-
>  arch/arm/boot/dts/omap3430-sdp.dts                 |   14 +-
>  arch/arm/boot/dts/omap4.dtsi                       |    2 +-
>  arch/arm/boot/dts/omap5.dtsi                       |    2 +-
>  arch/arm/configs/omap2plus_defconfig               |    2 +
>  arch/arm/mach-omap2/Makefile                       |    2 +-
>  arch/arm/mach-omap2/board-3430sdp.c                |    8 +-
>  arch/arm/mach-omap2/board-flash.c                  |   28 +-
>  arch/arm/mach-omap2/gpmc-nand.c                    |   66 +-
>  arch/arm/mach-omap2/gpmc-onenand.c                 |  351 +---
>  arch/arm/mach-omap2/gpmc-smc91x.c                  |   91 +-
>  arch/arm/mach-omap2/gpmc-smc91x.h                  |    1 -
>  arch/arm/mach-omap2/gpmc-smsc911x.c                |   76 +-
>  arch/arm/mach-omap2/gpmc.c                         | 1872 --------------------
>  arch/arm/mach-omap2/gpmc.h                         |  221 +--
>  arch/arm/mach-omap2/gpmc_legacy.c                  |  296 ++++
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |    2 +-
>  arch/arm/mach-omap2/usb-tusb6010.c                 |  172 +-
>  drivers/memory/Kconfig                             |   10 +
>  drivers/memory/Makefile                            |    1 +
>  drivers/memory/ti-gpmc.c                           | 1829 +++++++++++++++++++
>  drivers/mtd/nand/Kconfig                           |    2 +-
>  drivers/mtd/nand/omap2.c                           |  364 +++-
>  drivers/mtd/onenand/Kconfig                        |    6 +-
>  drivers/mtd/onenand/omap2.c                        |  456 +++--
>  include/linux/platform_data/gpmc-omap.h            |  189 ++
>  include/linux/platform_data/mtd-nand-omap2.h       |   10 +-
>  include/linux/platform_data/mtd-onenand-omap2.h    |    7 +-
>  48 files changed, 3361 insertions(+), 2907 deletions(-)
>  delete mode 100644 arch/arm/mach-omap2/gpmc.c
>  create mode 100644 arch/arm/mach-omap2/gpmc_legacy.c
>  create mode 100644 drivers/memory/ti-gpmc.c
>  create mode 100644 include/linux/platform_data/gpmc-omap.h
>
> --
> 1.8.3.2
>

Best regards,
Javier

  parent reply	other threads:[~2014-06-11 11:52 UTC|newest]

Thread overview: 181+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-11  8:56 [PATCH 00/36] OMAP: GPMC: Restructure and move OMAP GPMC driver out of mach-omap2 Roger Quadros
2014-06-11  8:56 ` Roger Quadros
2014-06-11  8:56 ` Roger Quadros
2014-06-11  8:56 ` [PATCH 01/36] ARM: OMAP3: hwmod: Fix gpmc memory resource space Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:13   ` Tony Lindgren
2014-06-13  7:13     ` Tony Lindgren
2014-06-13  7:15     ` Roger Quadros
2014-06-13  7:15       ` Roger Quadros
2014-06-13  7:15       ` Roger Quadros
2014-06-11  8:56 ` [PATCH 02/36] ARM: dts: OMAP2+: Fix GPMC register space size Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 03/36] ARM: OMAP2+: gpmc: Add platform data Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 04/36] ARM: OMAP2+: gpmc: Add gpmc timings and settings to " Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 05/36] mtd: nand: omap: Move IRQ handling from GPMC to NAND driver Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:18   ` Tony Lindgren
2014-06-13  7:18     ` Tony Lindgren
2014-06-13  7:38     ` Roger Quadros
2014-06-13  7:38       ` Roger Quadros
2014-06-13  7:38       ` Roger Quadros
2014-06-13  7:58       ` Tony Lindgren
2014-06-13  7:58         ` Tony Lindgren
2014-06-13  7:58         ` Tony Lindgren
2014-06-13  8:13         ` Gupta, Pekon
2014-06-13  8:13           ` Gupta, Pekon
2014-06-13  8:13           ` Gupta, Pekon
2014-06-13  8:23           ` Roger Quadros
2014-06-13  8:23             ` Roger Quadros
2014-06-13  8:23             ` Roger Quadros
2014-06-13 10:46             ` Tony Lindgren
2014-06-13 10:46               ` Tony Lindgren
2014-06-13 10:46               ` Tony Lindgren
2014-06-13 11:42               ` Roger Quadros
2014-06-13 11:42                 ` Roger Quadros
2014-06-13 11:42                 ` Roger Quadros
2014-06-13 12:08                 ` Tony Lindgren
2014-06-13 12:08                   ` Tony Lindgren
2014-06-13 12:08                   ` Tony Lindgren
2014-07-01 10:11                   ` Roger Quadros
2014-07-01 10:11                     ` Roger Quadros
2014-07-01 10:11                     ` Roger Quadros
2014-07-01 13:16                     ` Tony Lindgren
2014-07-01 13:16                       ` Tony Lindgren
2014-07-01 13:16                       ` Tony Lindgren
2014-06-11  8:56 ` [PATCH 06/36] mtd: nand: omap: Move gpmc_update_nand_reg to nand driver Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:19   ` Tony Lindgren
2014-06-13  7:19     ` Tony Lindgren
2014-06-13  7:19     ` Tony Lindgren
2014-06-11  8:56 ` [PATCH 07/36] mtd: nand: omap: Move NAND write protect code from GPMC to NAND driver Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:20   ` Tony Lindgren
2014-06-13  7:20     ` Tony Lindgren
2014-06-11  8:56 ` [PATCH 08/36] mtd: nand: omap: Copy platform data parameters to omap_nand_info data Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 09/36] mtd: nand: omap: Clean up device tree support Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 10/36] ARM: dts: OMAP2+: Fix NAND device nodes Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:21   ` Tony Lindgren
2014-06-13  7:21     ` Tony Lindgren
2014-06-13  7:21     ` Tony Lindgren
2014-06-11  8:56 ` [PATCH 11/36] mtd: nand: omap: Update DT binding documentation Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 12/36] ARM: dts: omap3-beagle: Add NAND device Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 13/36] ARM: OMAP2+: gpmc.c: sanity check bank-width DT property Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 14/36] ARM: OMAP2+: gpmc: Allow drivers to reconfigure GPMC settings & timings Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:25   ` Tony Lindgren
2014-06-13  7:25     ` Tony Lindgren
2014-06-13  7:44     ` Roger Quadros
2014-06-13  7:44       ` Roger Quadros
2014-06-13  7:44       ` Roger Quadros
2014-06-13  8:04       ` Tony Lindgren
2014-06-13  8:04         ` Tony Lindgren
2014-06-13  8:04         ` Tony Lindgren
2014-06-11  8:56 ` [PATCH 15/36] ARM: OMAP2+: gpmc: Allow drivers to query GPMC_CLK period Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:26   ` Tony Lindgren
2014-06-13  7:26     ` Tony Lindgren
2014-06-13  7:48     ` Roger Quadros
2014-06-13  7:48       ` Roger Quadros
2014-06-13  7:48       ` Roger Quadros
2014-06-11  8:56 ` [PATCH 16/36] mtd: onenand: omap: Remove regulator management code Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 17/36] ARM: OMAP2+: gpmc-onenand: Use Async settings/timings by default Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 18/36] ARM: OMAP2+: gpmc-onenand: Move Synchronous setting code to drivers/ Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-13  7:55   ` Tony Lindgren
2014-06-13  7:55     ` Tony Lindgren
2014-06-13  7:55     ` Tony Lindgren
2014-06-13  8:30     ` Roger Quadros
2014-06-13  8:30       ` Roger Quadros
2014-06-13  8:30       ` Roger Quadros
2014-06-11  8:56 ` [PATCH 19/36] mtd: onenand: omap: Use devres managed resources Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 20/36] mtd: onenand: omap: Clean up device tree support Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 21/36] ARM: dts: OMAP2+: Fix OneNAND device nodes Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 22/36] ARM: OMAP2+: gmpc: add gpmc_generic_init() Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 23/36] ARM: OMAP2+: gpmc: use platform data to configure CS space and poplulate device Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 24/36] ARM: OMAP2+: gpmc: add NAND specific setup Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 25/36] ARM: OMAP2+: gpmc: Support multiple Chip Selects per device Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 26/36] ARM: OMAP2+: gpmc-smc91x: Get rid of retime() from omap_smc91x_platform_data Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 27/36] ARM: OMAP2+: usb-tusb6010: Use omap_gpmc_retime() Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 28/36] ARM: OMAP2+: nand: Update gpmc_nand_init() to use generic_gpmc_init() Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 29/36] ARM: OMAP2+: gpmc-smc91x: Use gpmc_generic_init() Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 30/36] ARM: OMAP2+: gpmc-smsc911x: " Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 31/36] ARM: OMAP2: usb-tusb6010: " Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 32/36] ARM: OMAP2+: onenand: " Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 33/36] ARM: OMAP2+: board-flash: Use gpmc_generic_init() for NOR Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 34/36] ARM: OMAP2+: gpmc: Make externally unused functions/defines private Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56 ` [PATCH 35/36] ARM: OMAP2+: gpmc: move GPMC driver into drivers/memory Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11 11:45   ` [resend][PATCH " Roger Quadros
2014-06-11 11:45     ` Roger Quadros
2014-06-11 11:45     ` Roger Quadros
2014-06-11  8:56 ` [PATCH 36/36] ARM: OMAP2+: defconfig: Enable TI GPMC driver Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11  8:56   ` Roger Quadros
2014-06-11 11:52 ` Javier Martinez Canillas [this message]
2014-06-11 11:52   ` [PATCH 00/36] OMAP: GPMC: Restructure and move OMAP GPMC driver out of mach-omap2 Javier Martinez Canillas
2014-06-11 11:52   ` Javier Martinez Canillas
2014-06-11 11:54   ` Roger Quadros
2014-06-11 11:54     ` Roger Quadros
2014-06-11 11:54     ` Roger Quadros

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABxcv=mMAnnjd=F7itDWCt5QpVr=U5_mP=xhCW-oB5c2Doo75w@mail.gmail.com' \
    --to=javier@dowhile0.org \
    --cc=computersforpeace@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=nsekhar@ti.com \
    --cc=pekon@ti.com \
    --cc=rogerq@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.