#include <linux/gpio_mapping.h>
#include <linux/gpio.h>
+static int hs_switch = -1;
+
/*
* int add_preferred_console(char *name, int idx, char *options)
* c0069208 T add_preferred_console
static int __init headphone_cons_init(void)
{
- int hs_switch;
-
/* Get the headset switch gpio number from devtree */
hs_switch = get_gpio_by_name("headset_uart_switch");
if (hs_switch < 0)
return -EINVAL;
+ printk(KERN_INFO "headset_uart_switch: %d\n", hs_switch);
+
+ printk(KERN_INFO "value: %d\n", gpio_get_value(hs_switch));
+
+#if 0
/* configure headset switch gpio as output and
direction based on devtree setting */
- gpio_request(hs_switch, "mapphone audio headset uart switch");
+ if (gpio_request(hs_switch, "mapphone audio headset uart switch") < 0)
+ return -ENODEV;
+#endif
/* route kernel uart out headset jack */
gpio_direction_output(hs_switch, 0);
+ printk(KERN_INFO "value: %d\n", gpio_get_value(hs_switch));
- add_preferred_console("ttyS", 1, "115200");
+ add_preferred_console("ttyS", 0, "115200");
return 0;
}
+static void __exit headphone_cons_exit(void)
+{
+ if (hs_switch < 0)
+ return;
+
+ printk(KERN_INFO "value: %d\n", gpio_get_value(hs_switch));
+ gpio_direction_output(hs_switch, 1);
+ printk(KERN_INFO "value: %d\n", gpio_get_value(hs_switch));
+}
+
+
module_init(headphone_cons_init);
+module_exit(headphone_cons_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Michael Gernoth <michael@gernoth.net>");