* [PATCH] omap: 4430sdp board support for the the GPIO keys
@ 2010-08-31 15:46 Shubhrajyoti D
2010-08-31 16:02 ` Kevin Hilman
0 siblings, 1 reply; 4+ messages in thread
From: Shubhrajyoti D @ 2010-08-31 15:46 UTC (permalink / raw)
To: linux-omap; +Cc: Shubhrajyoti D
omap 4430sdp board support for the GPIO keys.
The proximity sensor is connected to GPIO and is registered as a
GPIO key.
- Making the default state of the sensor off at bootup
- The init is called before platform_add_devices
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
---
arch/arm/mach-omap2/board-4430sdp.c | 61 +++++++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 9447644..f31d68e 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -20,6 +20,7 @@
#include <linux/usb/otg.h>
#include <linux/spi/spi.h>
#include <linux/i2c/twl.h>
+#include <linux/gpio_keys.h>
#include <linux/regulator/machine.h>
#include <linux/leds.h>
@@ -40,6 +41,8 @@
#define ETH_KS8851_IRQ 34
#define ETH_KS8851_POWER_ON 48
#define ETH_KS8851_QUART 138
+#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184
+#define OMAP4_SFH7741_ENABLE_GPIO 188
static struct gpio_led sdp4430_gpio_leds[] = {
{
@@ -77,11 +80,47 @@ static struct gpio_led sdp4430_gpio_leds[] = {
};
+static struct gpio_keys_button sdp4430_gpio_keys[] = {
+ {
+ .desc = "Proximity Sensor",
+ .type = EV_SW,
+ .code = SW_FRONT_PROXIMITY,
+ .gpio = OMAP4_SFH7741_SENSOR_OUTPUT_GPIO,
+ .active_low = 0,
+ }
+};
+
static struct gpio_led_platform_data sdp4430_led_data = {
.leds = sdp4430_gpio_leds,
.num_leds = ARRAY_SIZE(sdp4430_gpio_leds),
};
+static int omap_prox_activate(struct device *dev)
+{
+ gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
+ return 0;
+}
+
+static void omap_prox_deactivate(struct device *dev)
+{
+ gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 0);
+}
+
+static struct gpio_keys_platform_data sdp4430_gpio_keys_data = {
+ .buttons = sdp4430_gpio_keys,
+ .nbuttons = ARRAY_SIZE(sdp4430_gpio_keys),
+ .enable = omap_prox_activate,
+ .disable = omap_prox_deactivate,
+};
+
+static struct platform_device sdp4430_gpio_keys_device = {
+ .name = "gpio-keys",
+ .id = -1,
+ .dev = {
+ .platform_data = &sdp4430_gpio_keys_data,
+ },
+};
+
static struct platform_device sdp4430_leds_gpio = {
.name = "leds-gpio",
.id = -1,
@@ -161,6 +200,7 @@ static struct platform_device sdp4430_lcd_device = {
static struct platform_device *sdp4430_devices[] __initdata = {
&sdp4430_lcd_device,
+ &sdp4430_gpio_keys_device,
&sdp4430_leds_gpio,
};
@@ -426,11 +466,32 @@ static int __init omap4_i2c_init(void)
omap_register_i2c_bus(4, 400, NULL, 0);
return 0;
}
+
+static void __init omap_sfh7741prox_init(void)
+{
+ int error;
+
+ error = gpio_request(OMAP4_SFH7741_ENABLE_GPIO, "sfh7741");
+ if (error < 0) {
+ pr_err("%s:failed to request GPIO %d, error %d\n",
+ __func__, OMAP4_SFH7741_ENABLE_GPIO, error);
+ return;
+ }
+
+ error = gpio_direction_output(OMAP4_SFH7741_ENABLE_GPIO , 0);
+ if (error < 0) {
+ pr_err("%s: GPIO configuration failed: GPIO %d,error %d\n",
+ __func__, OMAP4_SFH7741_ENABLE_GPIO, error);
+ gpio_free(OMAP4_SFH7741_ENABLE_GPIO);
+ }
+}
+
static void __init omap_4430sdp_init(void)
{
int status;
omap4_i2c_init();
+ omap_sfh7741prox_init();
platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
omap_serial_init();
omap4_twl6030_hsmmc_init(mmc);
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] omap: 4430sdp board support for the the GPIO keys
2010-08-31 15:46 [PATCH] omap: 4430sdp board support for the the GPIO keys Shubhrajyoti D
@ 2010-08-31 16:02 ` Kevin Hilman
2010-09-01 6:19 ` Datta, Shubhrajyoti
0 siblings, 1 reply; 4+ messages in thread
From: Kevin Hilman @ 2010-08-31 16:02 UTC (permalink / raw)
To: Shubhrajyoti D; +Cc: linux-omap
Shubhrajyoti D <shubhrajyoti@ti.com> writes:
> omap 4430sdp board support for the GPIO keys.
> The proximity sensor is connected to GPIO and is registered as a
> GPIO key.
> - Making the default state of the sensor off at bootup
> - The init is called before platform_add_devices
>
> Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
I still think the subject is wrong: You're adding support for the
proximity sensor *using* GPIO keys, not adding support for GPIO keys:
OMAP: 4430SDP: add proximity sensor via GPIO keys
or something like that.
Kevin
^ permalink raw reply [flat|nested] 4+ messages in thread* RE: [PATCH] omap: 4430sdp board support for the the GPIO keys
2010-08-31 16:02 ` Kevin Hilman
@ 2010-09-01 6:19 ` Datta, Shubhrajyoti
0 siblings, 0 replies; 4+ messages in thread
From: Datta, Shubhrajyoti @ 2010-09-01 6:19 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap@vger.kernel.org
> -----Original Message-----
> From: Kevin Hilman [mailto:khilman@deeprootsystems.com]
> Sent: Tuesday, August 31, 2010 9:32 PM
> To: Datta, Shubhrajyoti
> Cc: linux-omap@vger.kernel.org
> Subject: Re: [PATCH] omap: 4430sdp board support for the the GPIO keys
>
> Shubhrajyoti D <shubhrajyoti@ti.com> writes:
>
> > omap 4430sdp board support for the GPIO keys.
> > The proximity sensor is connected to GPIO and is registered as a
> > GPIO key.
> > - Making the default state of the sensor off at bootup
> > - The init is called before platform_add_devices
> >
> > Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
>
> I still think the subject is wrong: You're adding support for the
> proximity sensor *using* GPIO keys, not adding support for GPIO keys:
>
> OMAP: 4430SDP: add proximity sensor via GPIO keys
>
> or something like that.
Yes agree just sent a patch attempting to correct it.
Thanks,
>
> Kevin
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] omap: 4430sdp board support for the the GPIO keys
@ 2010-08-20 8:17 Shubhrajyoti D
0 siblings, 0 replies; 4+ messages in thread
From: Shubhrajyoti D @ 2010-08-20 8:17 UTC (permalink / raw)
To: linux-omap; +Cc: Shubhrajyoti D
omap 4430sdp board support for the GPIO keys.
The proximity sensor is connected to GPIO and is registered as a
GPIO key.
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
---
arch/arm/mach-omap2/board-4430sdp.c | 64 +++++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 9447644..699620d 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -20,6 +20,7 @@
#include <linux/usb/otg.h>
#include <linux/spi/spi.h>
#include <linux/i2c/twl.h>
+#include <linux/gpio_keys.h>
#include <linux/regulator/machine.h>
#include <linux/leds.h>
@@ -40,6 +41,11 @@
#define ETH_KS8851_IRQ 34
#define ETH_KS8851_POWER_ON 48
#define ETH_KS8851_QUART 138
+#define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO 184
+#define OMAP4_SFH7741_ENABLE_GPIO 188
+
+static int omap_prox_activate(struct device *dev);
+static void omap_prox_deactivate(struct device *dev);
static struct gpio_led sdp4430_gpio_leds[] = {
{
@@ -77,11 +83,36 @@ static struct gpio_led sdp4430_gpio_leds[] = {
};
+static struct gpio_keys_button sdp4430_gpio_keys[] = {
+ {
+ .desc = "Proximity Sensor",
+ .type = EV_SW,
+ .code = SW_FRONT_PROXIMITY,
+ .gpio = OMAP4_SFH7741_SENSOR_OUTPUT_GPIO,
+ .active_low = 0,
+ }
+};
+
static struct gpio_led_platform_data sdp4430_led_data = {
.leds = sdp4430_gpio_leds,
.num_leds = ARRAY_SIZE(sdp4430_gpio_leds),
};
+static struct gpio_keys_platform_data sdp4430_gpio_keys_data = {
+ .buttons = sdp4430_gpio_keys,
+ .nbuttons = ARRAY_SIZE(sdp4430_gpio_keys),
+ .enable = omap_prox_activate,
+ .disable = omap_prox_deactivate,
+};
+
+static struct platform_device sdp4430_gpio_keys_device = {
+ .name = "gpio-keys",
+ .id = -1,
+ .dev = {
+ .platform_data = &sdp4430_gpio_keys_data,
+ },
+};
+
static struct platform_device sdp4430_leds_gpio = {
.name = "leds-gpio",
.id = -1,
@@ -161,6 +192,7 @@ static struct platform_device sdp4430_lcd_device = {
static struct platform_device *sdp4430_devices[] __initdata = {
&sdp4430_lcd_device,
+ &sdp4430_gpio_keys_device,
&sdp4430_leds_gpio,
};
@@ -426,6 +458,37 @@ static int __init omap4_i2c_init(void)
omap_register_i2c_bus(4, 400, NULL, 0);
return 0;
}
+
+static int omap_prox_activate(struct device *dev)
+{
+ gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
+ return 0;
+}
+
+static void omap_prox_deactivate(struct device *dev)
+{
+ gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 0);
+}
+
+static void omap_sfh7741prox_init(void)
+{
+ int error;
+
+ error = gpio_request(OMAP4_SFH7741_ENABLE_GPIO, "sfh7741");
+ if (error < 0) {
+ pr_err("failed to request GPIO %d, error %d\n",
+ OMAP4_SFH7741_ENABLE_GPIO, error);
+ return;
+ }
+
+ error = gpio_direction_output(OMAP4_SFH7741_ENABLE_GPIO , 1);
+ if (error < 0) {
+ pr_err("%s: GPIO configuration failed: GPIO %d,error %d\n",
+ __func__, OMAP4_SFH7741_ENABLE_GPIO, error);
+ gpio_free(OMAP4_SFH7741_ENABLE_GPIO);
+ }
+}
+
static void __init omap_4430sdp_init(void)
{
int status;
@@ -448,6 +511,7 @@ static void __init omap_4430sdp_init(void)
spi_register_board_info(sdp4430_spi_board_info,
ARRAY_SIZE(sdp4430_spi_board_info));
}
+ omap_sfh7741prox_init();
}
static void __init omap_4430sdp_map_io(void)
--
1.7.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-09-01 6:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-31 15:46 [PATCH] omap: 4430sdp board support for the the GPIO keys Shubhrajyoti D
2010-08-31 16:02 ` Kevin Hilman
2010-09-01 6:19 ` Datta, Shubhrajyoti
-- strict thread matches above, loose matches on Subject: below --
2010-08-20 8:17 Shubhrajyoti D
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.