Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1307058 > unrolled thread
| Started by | Peter Hung <hpeter@gmail.com> |
|---|---|
| First post | 2016-01-12 08:50 +0100 |
| Last post | 2016-01-12 08:50 +0100 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
[PATCH 0/2] gpio-f7188x: Add F81886 gpio function Peter Hung <hpeter@gmail.com> - 2016-01-12 08:50 +0100
[PATCH 1/2] gpio-f7188x: add Fintek F81866 SuperIO support Peter Hung <hpeter@gmail.com> - 2016-01-12 08:50 +0100
| From | Peter Hung <hpeter@gmail.com> |
|---|---|
| Date | 2016-01-12 08:50 +0100 |
| Subject | [PATCH 0/2] gpio-f7188x: Add F81886 gpio function |
| Message-ID | <qQ1Sh-6do-3@gated-at.bofh.it> |
Fintek F81886 SuperIO spec: http://www.alldatasheet.com/datasheet-pdf/pdf/459085/FINTEK/F81866AD-I.html The detail gpio check & configuration could be found within spec P126. It controls gpio is the same with F7188x and has max 9 set of gpios. The 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 <-- not 0x70. The first patch only add basic structure for F81866 to use all unverified gpio, and second patch add filter function to make sure only enabled gpios are exported. Peter Hung (2): gpio-f7188x: add Fintek F81866 SuperIO support gpio-f7188x: filter non-export gpio for F81866 drivers/gpio/gpio-f7188x.c | 176 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 175 insertions(+), 1 deletion(-) -- 1.9.1
[toc] | [next] | [standalone]
| From | Peter Hung <hpeter@gmail.com> |
|---|---|
| Date | 2016-01-12 08:50 +0100 |
| Subject | [PATCH 1/2] gpio-f7188x: add Fintek F81866 SuperIO support |
| Message-ID | <qQ1Si-6do-23@gated-at.bofh.it> |
| In reply to | #1307058 |
add basic F81866 SuperIO gpio support
Signed-off-by: Peter Hung <hpeter+linux_kernel@gmail.com>
---
drivers/gpio/gpio-f7188x.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-f7188x.c b/drivers/gpio/gpio-f7188x.c
index 5e3c4fa..a6a9641 100644
--- a/drivers/gpio/gpio-f7188x.c
+++ b/drivers/gpio/gpio-f7188x.c
@@ -36,14 +36,16 @@
#define SIO_F71869A_ID 0x1007 /* F71869A chipset ID */
#define SIO_F71882_ID 0x0541 /* F71882 chipset ID */
#define SIO_F71889_ID 0x0909 /* F71889 chipset ID */
+#define SIO_F81866_ID 0x1010 /* F81866 chipset ID */
-enum chips { f71869, f71869a, f71882fg, f71889f };
+enum chips { f71869, f71869a, f71882fg, f71889f, f81866 };
static const char * const f7188x_names[] = {
"f71869",
"f71869a",
"f71882fg",
"f71889f",
+ "f81866",
};
struct f7188x_sio {
@@ -190,6 +192,18 @@ static struct f7188x_gpio_bank f71889_gpio_bank[] = {
F7188X_GPIO_BANK(70, 8, 0x80),
};
+static struct f7188x_gpio_bank f81866_gpio_bank[] = {
+ F7188X_GPIO_BANK(0, 8, 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, 8, 0xA0),
+ F7188X_GPIO_BANK(60, 8, 0x90),
+ F7188X_GPIO_BANK(70, 8, 0x80),
+ F7188X_GPIO_BANK(80, 8, 0x88),
+};
+
static int f7188x_gpio_direction_in(struct gpio_chip *chip, unsigned offset)
{
int err;
@@ -322,6 +336,10 @@ static int f7188x_gpio_probe(struct platform_device *pdev)
data->nr_bank = ARRAY_SIZE(f71889_gpio_bank);
data->bank = f71889_gpio_bank;
break;
+ case f81866:
+ data->nr_bank = ARRAY_SIZE(f81866_gpio_bank);
+ data->bank = f81866_gpio_bank;
+ break;
default:
return -ENODEV;
}
@@ -399,6 +417,9 @@ static int __init f7188x_find(int addr, struct f7188x_sio *sio)
case SIO_F71889_ID:
sio->type = f71889f;
break;
+ case SIO_F81866_ID:
+ sio->type = f81866;
+ break;
default:
pr_info(DRVNAME ": Unsupported Fintek device 0x%04x\n", devid);
goto err;
--
1.9.1
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web