From patchwork Mon Mar 9 20:55:13 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Bofjall X-Patchwork-Id: 448246 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 9F3CC1400D5 for ; Tue, 10 Mar 2015 08:30:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752393AbbCIVa4 (ORCPT ); Mon, 9 Mar 2015 17:30:56 -0400 Received: from mxf2.bahnhof.se ([213.80.101.26]:62433 "EHLO mxf2.bahnhof.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750920AbbCIVaz (ORCPT ); Mon, 9 Mar 2015 17:30:55 -0400 X-Greylist: delayed 1933 seconds by postgrey-1.27 at vger.kernel.org; Mon, 09 Mar 2015 17:30:55 EDT Received: from localhost (mxf2.local [127.0.0.1]) by mxf2-reinject (Postfix) with ESMTP id E1EDA1E3D69; Mon, 9 Mar 2015 21:58:58 +0100 (CET) X-Virus-Scanned: by amavisd-new using ClamAV at bahnhof.se (MXF2) X-Spam-Score: 0.306 X-Spam-Level: X-Spam-Status: No, score=0.306 tagged_above=-99 required=5 tests=[DNS_FROM_AHBL_RHSBL=0.306] Received: from mxf2.bahnhof.se ([127.0.0.1]) by localhost (mxf2.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jsnAGeg6RZi6; Mon, 9 Mar 2015 21:58:52 +0100 (CET) Received: from localhost (h-186-202.a165.priv.bahnhof.se [109.228.186.202]) by mxf2.bahnhof.se (Postfix) with ESMTP id BF0BB1E3DA1; Mon, 9 Mar 2015 21:58:51 +0100 (CET) From: Andreas Bofjall To: Linus Walleij , linux-gpio@vger.kernel.org Cc: Alexandre Courbot , Les Schaffer , Andreas Bofjall Subject: [PATCH RESEND 2/3] gpio: f7188x: add GPIO support for F71869 Date: Mon, 9 Mar 2015 21:55:13 +0100 Message-Id: <1425934514-1023-3-git-send-email-andreas@gazonk.org> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1425934514-1023-1-git-send-email-andreas@gazonk.org> References: <1425934514-1023-1-git-send-email-andreas@gazonk.org> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Add support for the GPIOs found on the Fintek SuperI/O chip F71869, such as the one found on the Jetway NF96u-525 motherboard, to the f7188x gpio driver. Signed-off-by: Andreas Bofjall Tested-by: Les Schaffer Reviewed-by: Alexandre Courbot --- drivers/gpio/Kconfig | 4 ++-- drivers/gpio/gpio-f7188x.c | 25 ++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index e07b63d..b64aa78 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -198,11 +198,11 @@ config GPIO_MM_LANTIQ created by attaching a 16bit latch to the bus. config GPIO_F7188X - tristate "F71882FG and F71889F GPIO support" + tristate "F71869, F71882FG and F71889F GPIO support" depends on X86 help This option enables support for GPIOs found on Fintek Super-I/O - chips F71882FG and F71889F. + chips F71869, F71882FG and F71889F. To compile this driver as a module, choose M here: the module will be called f7188x-gpio. diff --git a/drivers/gpio/gpio-f7188x.c b/drivers/gpio/gpio-f7188x.c index fbd954e..ac677bf 100644 --- a/drivers/gpio/gpio-f7188x.c +++ b/drivers/gpio/gpio-f7188x.c @@ -1,5 +1,5 @@ /* - * GPIO driver for Fintek Super-I/O F71882 and F71889 + * GPIO driver for Fintek Super-I/O F71869, F71882 and F71889 * * Copyright (C) 2010-2013 LaCie * @@ -32,12 +32,14 @@ #define SIO_LOCK_KEY 0xAA /* Key to disable Super-I/O */ #define SIO_FINTEK_ID 0x1934 /* Manufacturer ID */ +#define SIO_F71869_ID 0x0814 /* F71869 chipset ID */ #define SIO_F71882_ID 0x0541 /* F71882 chipset ID */ #define SIO_F71889_ID 0x0909 /* F71889 chipset ID */ -enum chips { f71882fg, f71889f }; +enum chips { f71869, f71882fg, f71889f }; static const char * const f7188x_names[] = { + "f71869", "f71882fg", "f71889f", }; @@ -146,6 +148,16 @@ static void f7188x_gpio_set(struct gpio_chip *chip, unsigned offset, int value); /* Output mode register (0:open drain 1:push-pull). */ #define gpio_out_mode(base) (base + 3) +static struct f7188x_gpio_bank f71869_gpio_bank[] = { + F7188X_GPIO_BANK(0, 6, 0xF0), + F7188X_GPIO_BANK(10, 8, 0xE0), + F7188X_GPIO_BANK(20, 8, 0xD0), + F7188X_GPIO_BANK(30, 8, 0xC0), + F7188X_GPIO_BANK(40, 8, 0xB0), + F7188X_GPIO_BANK(50, 5, 0xA0), + F7188X_GPIO_BANK(60, 6, 0x90), +}; + static struct f7188x_gpio_bank f71882_gpio_bank[] = { F7188X_GPIO_BANK(0 , 8, 0xF0), F7188X_GPIO_BANK(10, 8, 0xE0), @@ -281,6 +293,10 @@ static int f7188x_gpio_probe(struct platform_device *pdev) return -ENOMEM; switch (sio->type) { + case f71869: + data->nr_bank = ARRAY_SIZE(f71869_gpio_bank); + data->bank = f71869_gpio_bank; + break; case f71882fg: data->nr_bank = ARRAY_SIZE(f71882_gpio_bank); data->bank = f71882_gpio_bank; @@ -354,6 +370,9 @@ static int __init f7188x_find(int addr, struct f7188x_sio *sio) devid = superio_inw(addr, SIO_DEVID); switch (devid) { + case SIO_F71869_ID: + sio->type = f71869; + break; case SIO_F71882_ID: sio->type = f71882fg; break; @@ -450,6 +469,6 @@ static void __exit f7188x_gpio_exit(void) } module_exit(f7188x_gpio_exit); -MODULE_DESCRIPTION("GPIO driver for Super-I/O chips F71882FG and F71889F"); +MODULE_DESCRIPTION("GPIO driver for Super-I/O chips F71869, F71882FG and F71889F"); MODULE_AUTHOR("Simon Guinot "); MODULE_LICENSE("GPL");