]> git.zerfleddert.de Git - ms2-kexec/blobdiff - hs_cons.c
update offsets to new european GB kernel, set software booting from USB
[ms2-kexec] / hs_cons.c
index 2aecae998524c0d837bd7692f3c7c89078c2dc4e..c5c182f59b9835965b1afe502adb8427ed96e7cf 100644 (file)
--- a/hs_cons.c
+++ b/hs_cons.c
 #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;
 }
 
Impressum, Datenschutz