alpha: Hook up gpiolib support

Started by Mark Brown on May 18, 2011 · 3 messages from 2 authors · Last reply May 25, 2011

Subsystems (2)

Maintainers (4)

STALE5652d

open the first message on its own page

Message details and related content
Allow people to use gpiolib on Alpha if they want to, mostly for build
coverage.  The header is a stright copy of that for Microblaze, which in
turn was taken from PowerPC.

Signed-off-by: Mark Brown <redacted>
---
 arch/alpha/Kconfig            |    1 +
 arch/alpha/include/asm/gpio.h |   55 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 0 deletions(-)
 create mode 100644 arch/alpha/include/asm/gpio.h
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 9808998..8c832a5 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -12,6 +12,7 @@ config ALPHA
 	select GENERIC_IRQ_PROBE
 	select AUTO_IRQ_AFFINITY if SMP
 	select GENERIC_IRQ_SHOW
+	select ARCH_WANT_OPTIONAL_GPIOLIB
 	help
 	  The Alpha is a 64-bit general-purpose processor designed and
 	  marketed by the Digital Equipment Corporation of blessed memory,
diff --git a/arch/alpha/include/asm/gpio.h b/arch/alpha/include/asm/gpio.h
new file mode 100644
index 0000000..7dc6a63
--- /dev/null
+++ b/arch/alpha/include/asm/gpio.h
@@ -0,0 +1,55 @@
+/*
+ * Generic GPIO API implementation for Alpha.
+ *
+ * A stright copy of that for PowerPC which was:
+ *
+ * Copyright (c) 2007-2008  MontaVista Software, Inc.
+ *
+ * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#ifndef _ASM_ALPHA_GPIO_H
+#define _ASM_ALPHA_GPIO_H
+
+#include <linux/errno.h>
+#include <asm-generic/gpio.h>
+
+#ifdef CONFIG_GPIOLIB
+
+/*
+ * We don't (yet) implement inlined/rapid versions for on-chip gpios.
+ * Just call gpiolib.
+ */
+static inline int gpio_get_value(unsigned int gpio)
+{
+	return __gpio_get_value(gpio);
+}
+
+static inline void gpio_set_value(unsigned int gpio, int value)
+{
+	__gpio_set_value(gpio, value);
+}
+
+static inline int gpio_cansleep(unsigned int gpio)
+{
+	return __gpio_cansleep(gpio);
+}
+
+static inline int gpio_to_irq(unsigned int gpio)
+{
+	return __gpio_to_irq(gpio);
+}
+
+static inline int irq_to_gpio(unsigned int irq)
+{
+	return -EINVAL;
+}
+
+#endif /* CONFIG_GPIOLIB */
+
+#endif /* _ASM_ALPHA_GPIO_H */
-- 
1.7.5.1
Message details and related content
On Wed, 18 May 2011 13:58:02 -0700
Mark Brown [off-list ref] wrote:
Allow people to use gpiolib on Alpha if they want to, mostly for build
coverage.  The header is a stright copy of that for Microblaze, which in
turn was taken from PowerPC.
I got a great pile of build errors.


drivers/gpio/gpiolib.c:69: error: 'ARCH_NR_GPIOS' undeclared here (not in a function)
drivers/gpio/gpiolib.c: In function 'gpio_ensure_requested':
drivers/gpio/gpiolib.c:96: error: dereferencing pointer to incomplete type
drivers/gpio/gpiolib.c:100: error: dereferencing pointer to incomplete type
drivers/gpio/gpiolib.c:108: error: dereferencing pointer to incomplete type
drivers/gpio/gpiolib.c: In function 'gpiochip_find_base':


drivers/gpio/gpiolib.c:783: error: redefinition of 'gpio_export_link'
include/linux/gpio.h:120: note: previous definition of 'gpio_export_link' was here                                                                              drivers/gpio/gpiolib.c:830: error: redefinition of 'gpio_sysfs_set_active_low'
include/linux/gpio.h:128: note: previous definition of 'gpio_sysfs_set_active_low' was here


drivers/gpio/timbgpio.c:49: error: field 'gpio' has incomplete type
drivers/gpio/timbgpio.c: In function 'timbgpio_update_bit':
drivers/gpio/timbgpio.c:57: warning: type defaults to 'int' in declaration of '__mptr'

etc.


This fixed them:
--- a/arch/alpha/Kconfig~alpha-hook-up-gpiolib-support-fix
+++ a/arch/alpha/Kconfig
@@ -52,6 +52,9 @@ config GENERIC_CALIBRATE_DELAY
 config GENERIC_CMOS_UPDATE
         def_bool y
 
+config GENERIC_GPIO
+	def_bool y
+
 config ZONE_DMA
 	bool
 	default y
_
Message details and related content
On Tue, May 24, 2011 at 04:27:02PM -0700, Andrew Morton wrote:
I got a great pile of build errors.
Oh dear, sorry about that (as you can clearly see I didn't have an Alpha
toolchain) and thanks for fixing.
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help