public inbox for linux-m68k@lists.linux-m68k.org
 help / color / mirror / Atom feed
* [PATCH 00/22] m68knommu: simplify ColdFire GPIO init code
@ 2012-04-26  0:25 gerg
  2012-04-26  0:25 ` [PATCH 01/22] m68knommu: introduce macros to simplify ColdFire GPIO table initialization gerg
                   ` (22 more replies)
  0 siblings, 23 replies; 34+ messages in thread
From: gerg @ 2012-04-26  0:25 UTC (permalink / raw)
  To: linux-m68k, uclinux-dev, sfking

The GPIO init code for the ColdFire cores is a set of very large tables,
one for each ColdFire SoC type. Each SoC type has very different GPIO pin
arrangements, so one for each is unavoidable. But there is fundamentaly
two types of setup/access that we are trying to support.

With some pre-processor macro magic we can reduce the tables significantly,
making them easier to read, easier to get correct, and easier to maintain.

The following patches implement a set of simplifying changes. What do
others think?  Overall we remove close to 2000 lines of code, and the end
tables are much easier to read and get correct.

Looking for feedback...

Regards
Greg


 a/arch/m68k/platform/5206/gpio.c     |   27 -
 a/arch/m68k/platform/520x/gpio.c     |   34 -
 a/arch/m68k/platform/523x/gpio.c     |   40 --
 a/arch/m68k/platform/5249/gpio.c     |   28 -
 a/arch/m68k/platform/5272/gpio.c     |   29 -
 a/arch/m68k/platform/527x/gpio.c     |   61 ---
 a/arch/m68k/platform/528x/gpio.c     |   49 --
 a/arch/m68k/platform/5307/gpio.c     |   27 -
 a/arch/m68k/platform/532x/gpio.c     |   43 --
 a/arch/m68k/platform/5407/gpio.c     |   27 -
 arch/m68k/include/asm/mcfgpio.h      |    3 
 arch/m68k/platform/5206/gpio.c       |   12 
 arch/m68k/platform/520x/gpio.c       |   12 
 arch/m68k/platform/523x/gpio.c       |   12 
 arch/m68k/platform/5249/gpio.c       |   12 
 arch/m68k/platform/5272/gpio.c       |   12 
 arch/m68k/platform/527x/gpio.c       |   12 
 arch/m68k/platform/528x/gpio.c       |   12 
 arch/m68k/platform/5307/gpio.c       |   12 
 arch/m68k/platform/532x/gpio.c       |   12 
 arch/m68k/platform/5407/gpio.c       |   12 
 b/arch/m68k/include/asm/m528xsim.h   |  179 ++++------
 b/arch/m68k/include/asm/mcfgpio.h    |   41 ++
 b/arch/m68k/platform/5206/Makefile   |    2 
 b/arch/m68k/platform/5206/config.c   |    9 
 b/arch/m68k/platform/5206/gpio.c     |   16 
 b/arch/m68k/platform/520x/Makefile   |    2 
 b/arch/m68k/platform/520x/config.c   |   16 
 b/arch/m68k/platform/520x/gpio.c     |  149 --------
 b/arch/m68k/platform/523x/Makefile   |    2 
 b/arch/m68k/platform/523x/config.c   |   22 +
 b/arch/m68k/platform/523x/gpio.c     |  264 ---------------
 b/arch/m68k/platform/5249/Makefile   |    2 
 b/arch/m68k/platform/5249/config.c   |   10 
 b/arch/m68k/platform/5249/gpio.c     |   33 -
 b/arch/m68k/platform/5272/Makefile   |    2 
 b/arch/m68k/platform/5272/config.c   |   11 
 b/arch/m68k/platform/5272/gpio.c     |   50 --
 b/arch/m68k/platform/527x/Makefile   |    2 
 b/arch/m68k/platform/527x/config.c   |   43 ++
 b/arch/m68k/platform/527x/gpio.c     |  604 +----------------------------------
 b/arch/m68k/platform/528x/Makefile   |    2 
 b/arch/m68k/platform/528x/config.c   |   31 +
 b/arch/m68k/platform/528x/gpio.c     |  427 +-----------------------
 b/arch/m68k/platform/5307/Makefile   |    2 
 b/arch/m68k/platform/5307/config.c   |    9 
 b/arch/m68k/platform/5307/gpio.c     |   16 
 b/arch/m68k/platform/532x/Makefile   |    2 
 b/arch/m68k/platform/532x/config.c   |   25 +
 b/arch/m68k/platform/532x/gpio.c     |  320 ------------------
 b/arch/m68k/platform/5407/Makefile   |    2 
 b/arch/m68k/platform/5407/config.c   |    9 
 b/arch/m68k/platform/5407/gpio.c     |   16 
 b/arch/m68k/platform/coldfire/gpio.c |    4 
 54 files changed, 445 insertions(+), 2367 deletions(-)

^ permalink raw reply	[flat|nested] 34+ messages in thread
* Re: [uClinux-dev] [PATCH 21/22] m68knommu: simplify the ColdFire 532x GPIO struct setup
@ 2012-04-26  0:53 Alex LI
  2012-04-26  1:07 ` Greg Ungerer
  0 siblings, 1 reply; 34+ messages in thread
From: Alex LI @ 2012-04-26  0:53 UTC (permalink / raw)
  To: uClinux development list; +Cc: mohamed nabil, linux-m68k, Greg Ungerer

Greg,

You sent 50 mails in 1 min. 

Sent from my Sony Ericsson Xperia arc S

Greg Ungerer <gerg@snapgear.com> 寫:

>On 04/26/2012 10:36 AM, mohamed nabil wrote:
>> that's a Fucking spam man !!
>
>Huh?
>
>Thats how open source development works. If you don't like it don't
>subscribe to a developers list.
>
>Regards
>Greg
>
>
>
>> On Thu, Apr 26, 2012 at 2:26 AM, <gerg@snapgear.com
>> <mailto:gerg@snapgear.com>> wrote:
>>
>>     From: Greg Ungerer <gerg@uclinux.org <mailto:gerg@uclinux.org>>
>>
>>     The GPIO data struct setup is now the only remaining code in the
>>     platform
>>     gpio.c file. So move it to the platform config.c code and remove the
>>     gpio.c
>>     file.
>>
>>     Signed-off-by: Greg Ungerer <gerg@uclinux.org <mailto:gerg@uclinux.org>>
>>     ---
>>       arch/m68k/platform/532x/Makefile |    2 +-
>>       arch/m68k/platform/532x/config.c |   25 ++++++++++++++++++++++
>>       arch/m68k/platform/532x/gpio.c   |   43
>>     --------------------------------------
>>       3 files changed, 26 insertions(+), 44 deletions(-)
>>       delete mode 100644 arch/m68k/platform/532x/gpio.c
>>
>>     diff --git a/arch/m68k/platform/532x/Makefile
>>     b/arch/m68k/platform/532x/Makefile
>>     index ce01669..c0d8cf8 100644
>>     --- a/arch/m68k/platform/532x/Makefile
>>     +++ b/arch/m68k/platform/532x/Makefile
>>     @@ -15,4 +15,4 @@
>>       asflags-$(CONFIG_FULLDEBUG) := -DDEBUGGER_COMPATIBLE_CACHE=1
>>
>>       #obj-y := config.o usb-mcf532x.o spi-mcf532x.o
>>     -obj-y := config.o gpio.o
>>     +obj-y := config.o
>>     diff --git a/arch/m68k/platform/532x/config.c
>>     b/arch/m68k/platform/532x/config.c
>>     index 2bec347..a4dd3d8 100644
>>     --- a/arch/m68k/platform/532x/config.c
>>     +++ b/arch/m68k/platform/532x/config.c
>>     @@ -26,10 +26,35 @@
>>       #include <asm/mcfsim.h>
>>       #include <asm/mcfuart.h>
>>       #include <asm/mcfdma.h>
>>     +#include <asm/mcfgpio.h>
>>       #include <asm/mcfwdebug.h>
>>
>>       /***************************************************************************/
>>
>>     +struct mcf_gpio_chip mcf_gpio_chips[] = {
>>     +       MCFGPS(PIRQ, 0, 8, MCFEPORT_EPDDR, MCFEPORT_EPDR,
>>     MCFEPORT_EPPDR),
>>     +       MCFGPF(FECH, 8, 8),
>>     +       MCFGPF(FECL, 16, 8),
>>     +       MCFGPF(SSI, 24, 5),
>>     +       MCFGPF(BUSCTL, 32, 4),
>>     +       MCFGPF(BE, 40, 4),
>>     +       MCFGPF(CS, 49, 5),
>>     +       MCFGPF(PWM, 58, 4),
>>     +       MCFGPF(FECI2C, 64, 4),
>>     +       MCFGPF(UART, 72, 8),
>>     +       MCFGPF(QSPI, 80, 6),
>>     +       MCFGPF(TIMER, 88, 4),
>>     +       MCFGPF(LCDDATAH, 96, 2),
>>     +       MCFGPF(LCDDATAM, 104, 8),
>>     +       MCFGPF(LCDDATAL, 112, 8),
>>     +       MCFGPF(LCDCTLH, 120, 1),
>>     +       MCFGPF(LCDCTLL, 128, 8),
>>     +};
>>     +
>>     +unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips);
>>     +
>>     +/***************************************************************************/
>>     +
>>       #ifdef CONFIG_SPI_COLDFIRE_QSPI
>>
>>       static void __init m532x_qspi_init(void)
>>     diff --git a/arch/m68k/platform/532x/gpio.c
>>     b/arch/m68k/platform/532x/gpio.c
>>     deleted file mode 100644
>>     index 3e1b71d..0000000
>>     --- a/arch/m68k/platform/532x/gpio.c
>>     +++ /dev/null
>>     @@ -1,43 +0,0 @@
>>     -/*
>>     - * Coldfire generic GPIO support
>>     - *
>>     - * (C) Copyright 2009, Steven King <sfking@fdwdc.com
>>     <mailto:sfking@fdwdc.com>>
>>     - *
>>     - * This program is free software; you can redistribute it and/or modify
>>     - * it under the terms of the GNU General Public License as published by
>>     - * the Free Software Foundation; version 2 of the License.
>>     - *
>>     - * This program is distributed in the hope that it will be useful,
>>     - * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>     - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>     - * GNU General Public License for more details.
>>     -*/
>>     -
>>     -#include <linux/kernel.h>
>>     -#include <linux/init.h>
>>     -
>>     -#include <asm/coldfire.h>
>>     -#include <asm/mcfsim.h>
>>     -#include <asm/mcfgpio.h>
>>     -
>>     -struct mcf_gpio_chip mcf_gpio_chips[] = {
>>     -       MCFGPS(PIRQ, 0, 8, MCFEPORT_EPDDR, MCFEPORT_EPDR,
>>     MCFEPORT_EPPDR),
>>     -       MCFGPF(FECH, 8, 8),
>>     -       MCFGPF(FECL, 16, 8),
>>     -       MCFGPF(SSI, 24, 5),
>>     -       MCFGPF(BUSCTL, 32, 4),
>>     -       MCFGPF(BE, 40, 4),
>>     -       MCFGPF(CS, 49, 5),
>>     -       MCFGPF(PWM, 58, 4),
>>     -       MCFGPF(FECI2C, 64, 4),
>>     -       MCFGPF(UART, 72, 8),
>>     -       MCFGPF(QSPI, 80, 6),
>>     -       MCFGPF(TIMER, 88, 4),
>>     -       MCFGPF(LCDDATAH, 96, 2),
>>     -       MCFGPF(LCDDATAM, 104, 8),
>>     -       MCFGPF(LCDDATAL, 112, 8),
>>     -       MCFGPF(LCDCTLH, 120, 1),
>>     -       MCFGPF(LCDCTLL, 128, 8),
>>     -};
>>     -
>>     -unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips);
>>     --
>>     1.7.0.4
>>
>>     _______________________________________________
>>     uClinux-dev mailing list
>>     uClinux-dev@uclinux.org <mailto:uClinux-dev@uclinux.org>
>>     http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
>>     This message was resent by uclinux-dev@uclinux.org
>>     <mailto:uclinux-dev@uclinux.org>
>>     To unsubscribe see:
>>     http://mailman.uclinux.org/mailman/options/uclinux-dev
>>
>>
>>
>>
>> --
>> ______
>> Mohamed Nabil Hafez
>> Embedded Software Engineer
>>
>
>
>-- 
>------------------------------------------------------------------------
>Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
>SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
>8 Gardner Close,                            FAX:         +61 7 3891 3630
>Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com
>_______________________________________________
>uClinux-dev mailing list
>uClinux-dev@uclinux.org
>http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
>This message was resent by uclinux-dev@uclinux.org
>To unsubscribe see:
>http://mailman.uclinux.org/mailman/options/uclinux-dev
>

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

end of thread, other threads:[~2012-04-27  6:37 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-26  0:25 [PATCH 00/22] m68knommu: simplify ColdFire GPIO init code gerg
2012-04-26  0:25 ` [PATCH 01/22] m68knommu: introduce macros to simplify ColdFire GPIO table initialization gerg
2012-04-26  7:16   ` Philippe De Muyter
2012-04-26  9:59     ` Greg Ungerer
2012-04-26  0:25 ` [PATCH 02/22] m68knommu: switch to GPIO init macros in ColdFire 5206 init code gerg
2012-04-26  0:25 ` [PATCH 03/22] m68knommu: switch to GPIO init macros in ColdFire 520x " gerg
2012-04-26  0:25 ` [PATCH 04/22] m68knommu: switch to GPIO init macros in ColdFire 523x " gerg
2012-04-26  0:25 ` [PATCH 05/22] m68knommu: switch to GPIO init macros in ColdFire 5249 " gerg
2012-04-26  0:25 ` [PATCH 06/22] m68knommu: switch to GPIO init macros in ColdFire 5272 " gerg
2012-04-26  0:25 ` [PATCH 07/22] m68knommu: switch to GPIO init macros in ColdFire 527x " gerg
2012-04-26  0:25 ` [PATCH 08/22] m68knommu: switch to GPIO init macros in ColdFire 528x " gerg
2012-04-27  2:49   ` Finn Thain
2012-04-27  6:36     ` Greg Ungerer
2012-04-26  0:25 ` [PATCH 09/22] m68knommu: switch to GPIO init macros in ColdFire 5307 " gerg
2012-04-26  0:25 ` [PATCH 10/22] m68knommu: switch to GPIO init macros in ColdFire 5407 " gerg
2012-04-26  0:25 ` [PATCH 11/22] m68knommu: switch to GPIO init macros in ColdFire 532x " gerg
2012-04-26  0:25 ` [PATCH 12/22] m68knommu: make duplicated ColdFire GPIO init code common for all gerg
2012-04-26  0:25 ` [PATCH 13/22] m68knommu: simplify the ColdFire 5206 GPIO struct setup gerg
2012-04-26  0:25 ` [PATCH 14/22] m68knommu: simplify the ColdFire 520x " gerg
2012-04-26  0:25 ` [PATCH 15/22] m68knommu: simplify the ColdFire 523x " gerg
2012-04-26  0:25 ` [PATCH 16/22] m68knommu: simplify the ColdFire 5249 " gerg
2012-04-26  0:25 ` [PATCH 17/22] m68knommu: simplify the ColdFire 5272 " gerg
2012-04-26  0:25 ` [PATCH 18/22] m68knommu: simplify the ColdFire 527x " gerg
2012-04-26  0:25 ` [PATCH 19/22] m68knommu: simplify the ColdFire 528x " gerg
2012-04-26  0:26 ` [PATCH 20/22] m68knommu: simplify the ColdFire 5307 " gerg
2012-04-26  0:26 ` [PATCH 21/22] m68knommu: simplify the ColdFire 532x " gerg
2012-04-26  0:36   ` mohamed nabil
2012-04-26  0:45     ` Greg Ungerer
2012-04-26 16:14     ` Lennart Sorensen
2012-04-26 20:45       ` burcu sariozlu
2012-04-26  0:26 ` [PATCH 22/22] m68knommu: simplify the ColdFire 5407 " gerg
2012-04-26  7:28 ` [PATCH 00/22] m68knommu: simplify ColdFire GPIO init code Steven King
2012-04-26 10:02   ` Greg Ungerer
  -- strict thread matches above, loose matches on Subject: below --
2012-04-26  0:53 [uClinux-dev] [PATCH 21/22] m68knommu: simplify the ColdFire 532x GPIO struct setup Alex LI
2012-04-26  1:07 ` Greg Ungerer
2012-04-26  1:10   ` mohamed nabil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox