X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/ms2-kexec/blobdiff_plain/47984ac761a6891af13f184790b927b3cf682b2b..981f7356eac92de156d2ef7995ab9390b6ea3ef1:/hs_cons.c diff --git a/hs_cons.c b/hs_cons.c index 2aecae9..c5c182f 100644 --- a/hs_cons.c +++ b/hs_cons.c @@ -22,14 +22,20 @@ #include "prm.h" #include "prm-regbits-34xx.h" +#define USB_CONSOLE 1 + +#ifndef USB_CONSOLE static int hs_switch = -1; +#endif +#if 0 /* * int add_preferred_console(char *name, int idx, char *options) - * c0069208 T add_preferred_console + * c006bec0 T add_preferred_console */ -static int (*add_preferred_console)(char *, int, char*) = (int (*)(char*, int, char*))0xc0069208; +static int (*add_preferred_console)(char *, int, char*) = (int (*)(char*, int, char*))0xc006bec0; +#endif void my_omap_serial_init(int wake_gpio_strobe, unsigned int wake_strobe_enable_mask); int my_omap_hs_init(void); @@ -46,21 +52,35 @@ static int find_ms2_dev(struct device *dev, void *data) return 0; } +#define OMAP_CTRL_REGADDR(reg) (OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE) + (reg)) + +u32 omap_ctrl_readl(u16 offset) +{ + return __raw_readl(OMAP_CTRL_REGADDR(offset)); +} + static int __init headphone_cons_init(void) { int bpwake_strobe_gpio; struct device *uart3 = NULL; + printk("CONTROL_STATUS: 0x%08x\n", omap_ctrl_readl(OMAP343X_CONTROL_STATUS)); + //<4>[81323.057830] CONTROL_STATUS: 0x00000205 + // 01000000101 + // DEVICETYPE[10:8]: 010 -> Reserved (High Security) + // SYSBOOT[5:0]: 000101 -> MMC2 USB + /* Remove old uart3 device which was disabled... */ printk(KERN_INFO "Searching for omap-uart.3...\n"); uart3 = device_find_child(&platform_bus, "omap-uart.3", find_ms2_dev); if (uart3 == NULL) - return-ENODEV; + return -ENODEV; printk(KERN_INFO "Deleting old device...\n"); device_del(uart3); +#ifndef USB_CONSOLE /* Get the headset switch gpio number from devtree */ hs_switch = get_gpio_by_name("headset_uart_switch"); if (hs_switch < 0) @@ -70,9 +90,7 @@ static int __init headphone_cons_init(void) if (!gpio_get_value(hs_switch)) return -ENODEV; - - printk(KERN_INFO "Activating emu_uart on mini-usb port\n"); - activate_emu_uart(); +#endif printk(KERN_INFO "Enabling UART3...\n"); bpwake_strobe_gpio = get_gpio_by_name("ipc_bpwake_strobe"); @@ -82,11 +100,18 @@ static int __init headphone_cons_init(void) my_omap_serial_init(bpwake_strobe_gpio, 0x01); my_omap_hs_init(); +#ifdef USB_CONSOLE + printk(KERN_INFO "Activating emu_uart on mini-usb port\n"); + activate_emu_uart(); +#else /* route kernel uart out headset jack */ gpio_set_value(hs_switch, 0); printk(KERN_INFO "headset_uart_switch: %d, value: %d\n", hs_switch, gpio_get_value(hs_switch)); +#endif +#if 0 add_preferred_console("ttyS", 2, "115200"); +#endif return 0; }