14 Jun, 2016

1 commit


18 Apr, 2016

1 commit


14 Apr, 2016

2 commits


23 Feb, 2016

1 commit


28 Jan, 2016

1 commit

  • Add F81866 GPIO supports

    Fintek F81866 is a SuperIO. It contains HWMON/GPIO/Serial Ports.
    and it has totally 72(9x8 sets) gpio pins.

    Here is the PDF spec:
    http://www.alldatasheet.com/datasheet-pdf/pdf/459085/FINTEK/F81866AD-I.html

    The control method is the same with F7188x, but we should care the address
    of GPIO8x.

    GPIO address is below:
    GPIO0x based: 0xf0
    GPIO1x based: 0xe0
    GPIO2x based: 0xd0
    GPIO3x based: 0xc0
    GPIO4x based: 0xb0
    GPIO5x based: 0xa0
    GPIO6x based: 0x90
    GPIO7x based: 0x80
    GPIO8x based: 0x88
    Acked-by: Simon Guinot
    Signed-off-by: Linus Walleij

    Peter Hung
     

05 Jan, 2016

1 commit


30 Nov, 2015

1 commit


19 Nov, 2015

1 commit

  • The name .dev in a struct is normally reserved for a struct device
    that is let us say a superclass to the thing described by the struct.
    struct gpio_chip stands out by confusingly using a struct device *dev
    to point to the parent device (such as a platform_device) that
    represents the hardware. As we want to give gpio_chip:s real devices,
    this is not working. We need to rename this member to parent.

    This was done by two coccinelle scripts, I guess it is possible to
    combine them into one, but I don't know such stuff. They look like
    this:

    @@
    struct gpio_chip *var;
    @@
    -var->dev
    +var->parent

    and:

    @@
    struct gpio_chip var;
    @@
    -var.dev
    +var.parent

    and:

    @@
    struct bgpio_chip *var;
    @@
    -var->gc.dev
    +var->gc.parent

    Plus a few instances of bgpio that I couldn't figure out how
    to teach Coccinelle to rewrite.

    This patch hits all over the place, but I *strongly* prefer this
    solution to any piecemal approaches that just exercise patch
    mechanics all over the place. It mainly hits drivers/gpio and
    drivers/pinctrl which is my own backyard anyway.

    Cc: Haavard Skinnemoen
    Cc: Rafał Miłecki
    Cc: Richard Purdie
    Cc: Mauro Carvalho Chehab
    Cc: Alek Du
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Acked-by: Dmitry Torokhov
    Acked-by: Greg Kroah-Hartman
    Acked-by: Lee Jones
    Acked-by: Jiri Kosina
    Acked-by: Hans-Christian Egtvedt
    Acked-by: Jacek Anaszewski
    Signed-off-by: Linus Walleij

    Linus Walleij
     

16 Jun, 2015

1 commit


18 Mar, 2015

3 commits


20 Oct, 2014

1 commit


22 Jul, 2014

1 commit


08 Jan, 2014

1 commit


30 Aug, 2013

1 commit

  • This patch adds support for the GPIOs found on the Fintek super-I/O
    chips F71882FG and F71889F.

    A super-I/O is a legacy I/O controller embedded on x86 motherboards. It
    is used to connect the low-bandwidth devices. Among others functions the
    F71882FG/F71889F provides: a parallel port, two serial ports, a keyboard
    controller, an hardware monitoring controller and some GPIO pins.

    Note that this super-I/Os are embedded on some Atom-based LaCie NASes.
    The GPIOs are used to control the LEDs and the hard drive power.

    Changes since v3:
    - Use request_muxed_region to protect the I/O ports against concurrent
    accesses.

    Changes since v2:
    - Remove useless NULL setters for driver data.

    Changes since v1:
    - Enhance the commit message by describing what is a Super-I/O.
    - Use self-explanatory names for the GPIO register macros.
    - Add a comment to explain the platform device and driver registration.
    - Fix gpio_get when GPIO is configured in input mode. I only had
    the hardware to check this mode recently...

    Signed-off-by: Simon Guinot
    Signed-off-by: Linus Walleij

    Simon Guinot