• Jonathan Neuschäfer's avatar
    gpio: Add GPIO driver for Nintendo Wii · 8f55fed3
    Jonathan Neuschäfer authored
    The Nintendo Wii's chipset (called "Hollywood") has a GPIO controller
    that supports a configurable number of pins (up to 32), interrupts, and
    some special mechanisms to share the controller between the system's
    security processor (an ARM926) and the PowerPC CPU. Pin multiplexing is
    not supported.
    
    This patch adds a basic driver for this GPIO controller. Interrupt
    support will come in a later patch.
    
    This patch is based on code developed by Albert Herranz and the GameCube
    Linux Team, file arch/powerpc/platforms/embedded6xx/hlwd-gpio.c,
    available at https://github.com/DeltaResero/GC-Wii-Linux-Kernels, but
    has grown quite dissimilar.
    
    v3:
    - Do some style cleanups, as suggest by Andy Shevchenko
    
    v2:
    - Change hlwd_gpio_driver.driver.name to "gpio-hlwd" to match the
      filename (was "hlwd_gpio")
    - Remove unnecessary include of linux/of_gpio.h, as suggested by Linus
      Walleij.
    - Add struct device pointer to context struct to make it possible to use
      dev_info(hlwd->dev, "..."), as suggested by Linus Walleij
    - Use the GPIO_GENERIC library to reduce code size, as suggested by
      Linus Walleij
    - Use iowrite32be instead of __raw_writel for big-endian MMIO access, as
      suggested by Linus Walleij
    - Remove commit message paragraph suggesting to diff against the
      original driver, because it's so different now
    Signed-off-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
    Cc: Albert Herranz <albert_herranz@yahoo.es>
    Reviewed-by: default avatarSegher Boessenkool <segher@kernel.crashing.org>
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    8f55fed3
gpio-hlwd.c 3.3 KB