]> git.zerfleddert.de Git - ms2-kexec/blame - hs_cons.c
more non-working serial stuff
[ms2-kexec] / hs_cons.c
CommitLineData
c4dc8ddb
MG
1/*
2 * Provide kernel console on headphone jack
8eb83dc7
MG
3 *
4 * Copyright (C) 2011 Michael Gernoth <michael@gernoth.net>
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
8 * for more details.
c4dc8ddb
MG
9 */
10
11#include <linux/module.h>
12#include <linux/gpio_mapping.h>
13#include <linux/gpio.h>
8eb83dc7
MG
14#include <linux/platform_device.h>
15#include <linux/serial_reg.h>
16#include <linux/clk.h>
17
18#include <plat/board.h>
19#include <plat/control.h>
20#include <asm/mach/serial_omap.h>
21
22#include "prm.h"
23#include "prm-regbits-34xx.h"
c4dc8ddb 24
81799b4e
MG
25static int hs_switch = -1;
26
c4dc8ddb
MG
27/*
28 * int add_preferred_console(char *name, int idx, char *options)
29 * c0069208 T add_preferred_console
30 */
31
32static int (*add_preferred_console)(char *, int, char*) = (int (*)(char*, int, char*))0xc0069208;
33
8eb83dc7
MG
34void my_omap_serial_init(int wake_gpio_strobe, unsigned int wake_strobe_enable_mask);
35int my_omap_hs_init(void);
e14c6eae 36int my_serial_omap_init(void);
a18588b1 37void activate_emu_uart(void);
8eb83dc7
MG
38
39#define MAPPHONE_BPWAKE_STROBE_GPIO 157
40
c4dc8ddb
MG
41static int __init headphone_cons_init(void)
42{
c4dc8ddb
MG
43 /* Get the headset switch gpio number from devtree */
44 hs_switch = get_gpio_by_name("headset_uart_switch");
45 if (hs_switch < 0)
46 return -EINVAL;
47
66526df8 48 printk(KERN_INFO "headset_uart_switch: %d, value: %d\n", hs_switch, gpio_get_value(hs_switch));
81799b4e 49
8eb83dc7 50 if (!gpio_get_value(hs_switch))
81799b4e 51 return -ENODEV;
8eb83dc7 52
e14c6eae
MG
53 printk(KERN_INFO "Loading slightly modified omap serial driver...\n");
54 my_serial_omap_init();
55
8eb83dc7
MG
56 printk(KERN_INFO "Enabling UART3...\n");
57 my_omap_serial_init(MAPPHONE_BPWAKE_STROBE_GPIO, 0x01);
58 my_omap_hs_init();
c4dc8ddb
MG
59
60 /* route kernel uart out headset jack */
a18588b1 61 gpio_set_value(hs_switch, 0);
66526df8 62 printk(KERN_INFO "headset_uart_switch: %d, value: %d\n", hs_switch, gpio_get_value(hs_switch));
c4dc8ddb 63
a18588b1
MG
64 //activate_emu_uart();
65
8eb83dc7 66 //add_preferred_console("ttyS", 2, "115200");
c4dc8ddb
MG
67 return 0;
68}
69
8eb83dc7 70#if 0
81799b4e
MG
71static void __exit headphone_cons_exit(void)
72{
73 if (hs_switch < 0)
74 return;
75
76 printk(KERN_INFO "value: %d\n", gpio_get_value(hs_switch));
77 gpio_direction_output(hs_switch, 1);
78 printk(KERN_INFO "value: %d\n", gpio_get_value(hs_switch));
79}
8eb83dc7 80#endif
81799b4e
MG
81
82
c4dc8ddb 83module_init(headphone_cons_init);
8eb83dc7 84#if 0
81799b4e 85module_exit(headphone_cons_exit);
8eb83dc7 86#endif
c4dc8ddb
MG
87
88MODULE_LICENSE("GPL");
89MODULE_AUTHOR("Michael Gernoth <michael@gernoth.net>");
Impressum, Datenschutz