this way serial-over-usb driver is registered always, but the device is
only registered when booting from usb.

Signed-off-by: Vicente Bergas <vice...@gmail.com>
---
 arch/arm/boards/archosg9/board.c      | 6 +++++-
 drivers/serial/serial_omap4_usbboot.c | 2 --
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boards/archosg9/board.c b/arch/arm/boards/archosg9/board.c
index bf247de..3ae7051 100644
--- a/arch/arm/boards/archosg9/board.c
+++ b/arch/arm/boards/archosg9/board.c
@@ -17,15 +17,19 @@
 #include <generated/mach-types.h>
 #include <mach/omap4-silicon.h>
 #include <mach/omap4-devices.h>
+#include <mach/omap4_rom_usb.h>
 #include <sizes.h>
 #include <i2c/i2c.h>
 #include <gpio.h>
 #include "archos_features.h"
 
 static int archosg9_console_init(void){
-       if (IS_ENABLED(CONFIG_DRIVER_SERIAL_OMAP4_USBBOOT))
+       if (IS_ENABLED(CONFIG_DRIVER_SERIAL_OMAP4_USBBOOT) &&
+               omap4_usbboot_ready()
+       ){
                add_generic_device("serial_omap4_usbboot", DEVICE_ID_DYNAMIC
                        , NULL, 0, 0, 0, NULL);
+       }
        if (IS_ENABLED(CONFIG_DRIVER_SERIAL_NS16550)) {
                gpio_direction_output(41, 0); /* gps_disable */
                gpio_direction_output(34, 1); /* 1v8_pwron */
diff --git a/drivers/serial/serial_omap4_usbboot.c 
b/drivers/serial/serial_omap4_usbboot.c
index e377fc4..f0a2fd1 100644
--- a/drivers/serial/serial_omap4_usbboot.c
+++ b/drivers/serial/serial_omap4_usbboot.c
@@ -78,8 +78,6 @@ static struct driver_d serial_omap4_usbboot_driver = {
 
 static int serial_omap4_usbboot_init(void)
 {
-       if (!omap4_usbboot_ready())
-               return 0;
        return platform_driver_register(&serial_omap4_usbboot_driver);
 }
 console_initcall(serial_omap4_usbboot_init);
-- 
1.8.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to