1. 17 Jun, 2009 1 commit
    • Manuel Lauss's avatar
      MIPS: Alchemy: Rewrite GPIO support. · 51e02b02
      Manuel Lauss authored
      The current in-kernel Alchemy GPIO support is far too inflexible for
      all my use cases.  To address this, the following changes are made:
      * create generic functions which deal with manipulating the on-chip
        GPIO1/2 blocks.  Such functions are universally useful.
      * Macros for GPIO2 shared interrupt management and block control.
      * support for both built-in CONFIG_GPIOLIB and fast, inlined GPIO macros.
        If CONFIG_GPIOLIB is not enabled, provide linux gpio framework
        compatibility by directly inlining the GPIO1/2 functions.  GPIO access
        is limited to on-chip ones and they can be accessed as documented in
        the datasheets (GPIO0-31 and 200-215).
        If CONFIG_GPIOLIB is selected, two (2) gpio_chip-s, one for GPIO1 and
        one for GPIO2, are registered.  GPIOs can still be accessed by using
        the numberspace established in the databooks.
        However this is not yet flexible enough for my uses:  My Alchemy
        systems have a documented "external" gpio interface (fixed, different
        numberspace) and can support a variety of baseboards, some of which
        are equipped with I2C gpio expanders.  I want to be able to provide
        the default 16 GPIOs of the CPU board numbered as 0..15 and also
        support gpio expanders, if present, starting as gpio16.
        To achieve this, a new Kconfig symbol for Alchemy is introduced,
        CONFIG_ALCHEMY_GPIO_INDIRECT, which boards can enable to signal
        that they don't want the Alchemy numberspace exposed to the outside
        world, but instead want to provide their own.  Boards are now respon-
        sible for providing the linux gpio interface glue code (either in a
        custom gpio.h header (in board include directory) or with gpio_chips).
        To make the board-specific inlined gpio functions work, the MIPS
        Makefile must be changed so that the mach-au1x00/gpio.h header is
        included _after_ the board headers, by moving the inclusion of
        the mach-au1x00/ to the end of the header list.
        See arch/mips/include/asm/mach-au1x00/gpio.h for more info.
      Signed-off-by: default avatarManuel Lauss <manuel.lauss@gmail.com>
      Acked-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
  2. 11 Jan, 2009 2 commits
    • Manuel Lauss's avatar
      MIPS: Alchemy: remove cpu_table. · 074cf656
      Manuel Lauss authored
      Remove the cpu_table:
      - move detection of whether c0_config[OD] is read-only and should be set
        to fix various chip errata to au1000 headers.
      - move detection of write-only sys_cpupll to au1000 headers.
      - remove the BCLK switching code:  Activation of this features should be
        left to the boards using the chips since it also affects external devices
        tied to BCLK, and only the board designers know whether it is safe to
      Signed-off-by: default avatarManuel Lauss <mano@roarinelk.homelinux.net>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
       delete mode 100644 arch/mips/alchemy/common/cputable.c
    • Manuel Lauss's avatar
      MIPS: Alchemy: update core interrupt code. · 785e3268
      Manuel Lauss authored
      This patch attempts to modernize core Alchemy interrupt handling code.
      - add irq_chips for irq controllers instead of irq type,
      - add a set_type() hook to change irq trigger type during runtime,
      - add a set_wake() hook to control GPIO0..7 based wakeup,
      - use linux' IRQF_TRIGGER_ constants instead of homebrew ones,
      - simplify plat_irq_dispatch
      - merge au1xxx_irqmap into irq.c file, the only place where its
        contents are referenced.
      - board_init_irq() is now mandatory for every board; use it to register
        the remaining (gpio-based) interrupt sources; update all boards
      Run-tested on Db1200 and other Au1200 based platforms.
      Signed-off-by: default avatarManuel Lauss <mano@roarinelk.homelinux.net>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
       delete mode 100644 arch/mips/alchemy/common/au1xxx_irqmap.c
  3. 11 Oct, 2008 1 commit
  4. 30 Jul, 2008 1 commit
  5. 12 May, 2008 1 commit
    • Sergei Shtylyov's avatar
      [MIPS] Alchemy common code style cleanup · c1dcb14e
      Sergei Shtylyov authored
      Fix many errors and warnings given by checkpatch.pl:
      - use of C99 // comments;
      - missing space between the type and asterisk in a variable declaration;
      - space between the asterisk and function/variable name;
      - leading spaces instead of tabs;
      - space after opening and before closing parentheses;
      - initialization of a 'static' variable to 0;
      - missing spaces around assignement/comparison operator;
      - brace not on the same line with condition (or 'else') in the 'if'/'switch'
      - missing space between 'if'/'for'/'while' and opening parenthesis;
      - use of assignement in 'if' statement's condition;
      - printk() without KERN_* facility level;
      - EXPORT_SYMBOL() not following its function immediately;
      - unnecessary braces for single-statement block;
      - adding new 'typedef' (where including <linux/types.h> will do);
      - use of 'extern' in the .c file (where it can be avoided by including header);
      - line over 80 characters.
      In addition to these changes, also do the following:
      - insert missing space after opening brace and/or before closing brace in the
        structure initializers;
      - insert spaces between operator and its operands;
      - put the function's result type and name/parameters on the same line;
      - properly indent multi-line expressions;
      - remove commented out code;
      - remove useless initializers and code;
      - remove needless parentheses;
      - fix broken/excess indentation;
      - add missing spaces between operator and its operands;
      - insert missing and remove excess new lines;
      - group 'else' and 'if' together where possible;
      - make au1xxx_platform_init() 'static';
      - regroup variable declarations in pm_do_freq() for prettier look;
      - replace numeric literals with the matching macros;
      - fix printk() format specifiers mismatching the argument types;
      - make the multi-line comment style consistent with the kernel style elsewhere
        by adding empty first line and/or adding space on their left side;
      - make two-line comments that only have one line of text one-line;
      - fix typos/errors, capitalize acronyms, etc. in the comments;
      - fix/remove obsolete references in the comments;
      - reformat some comments;
      - add comment about the CPU:counter clock ratio to calc_clock();
      - update MontaVista copyright;
      - remove Pete Popov's and Steve Longerbeam's old email addresses...
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
  6. 31 Jul, 2007 1 commit
  7. 09 Oct, 2006 1 commit
  8. 18 Apr, 2006 1 commit
    • Ralf Baechle's avatar
      [MIPS] Rewrite all the assembler interrupt handlers to C. · e4ac58af
      Ralf Baechle authored
      Saves like 1,600 lines of code, is way easier to debug, compilers
      frequently do a better job than the cut and paste type of handlers many
      boards had.  And finally having all the stuff done in a single place
      also means alot of bug potencial for the MT ASE is gone.
      The only surviving handler in assembler is the DECstation one; I hope
      Maciej will rewrite it.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
  9. 29 Oct, 2005 1 commit
  10. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      Let it rip!