Mercurial > louis > kiibohd-controller
changeset 275:d5bf41d7f7ef
Initial code for USB cable detection
- Currently actual detection commented out due to issues
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Mon, 09 Feb 2015 13:21:23 -0800 |
parents | 6816f4ec783e |
children | 2a3468f5d8be |
files | Output/pjrcUSB/arm/usb_dev.c Output/pjrcUSB/arm/usb_dev.h Output/pjrcUSB/avr/usb_keyboard_serial.c Output/pjrcUSB/avr/usb_keyboard_serial.h Output/pjrcUSB/output_com.c Output/pjrcUSB/output_com.h Output/uartOut/output_com.c Output/uartOut/output_com.h Output/usbMuxUart/output_com.c Output/usbMuxUart/output_com.h Scan/MD2/setup.cmake |
diffstat | 11 files changed, 62 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/Output/pjrcUSB/arm/usb_dev.c Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/pjrcUSB/arm/usb_dev.c Mon Feb 09 13:21:23 2015 -0800 @@ -1098,12 +1098,17 @@ -void usb_init() +uint8_t usb_init() { #ifdef UART_DEBUG print("USB INIT"NL); #endif + // If no USB cable is attached, do not initialize usb + // XXX Test -HaaTa + //if ( USB0_OTGISTAT & USB_OTGSTAT_ID ) + // return 0; + // Clear out endpoints table for ( int i = 0; i <= NUM_ENDPOINTS * 4; i++ ) { @@ -1147,6 +1152,8 @@ // enable d+ pullup USB0_CONTROL = USB_CONTROL_DPPULLUPNONOTG; + + return 1; } // return 0 if the USB is not configured, or the configuration
--- a/Output/pjrcUSB/arm/usb_dev.h Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/pjrcUSB/arm/usb_dev.h Mon Feb 09 13:21:23 2015 -0800 @@ -61,8 +61,8 @@ // ----- Functions ----- uint8_t usb_configured(); // is the USB port configured +uint8_t usb_init(); // Returns 1 on success, 0 if no cable is attached -void usb_init(); void usb_isr(); void usb_tx( uint32_t endpoint, usb_packet_t *packet ); void usb_tx_isr( uint32_t endpoint, usb_packet_t *packet );
--- a/Output/pjrcUSB/avr/usb_keyboard_serial.c Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/pjrcUSB/avr/usb_keyboard_serial.c Mon Feb 09 13:21:23 2015 -0800 @@ -590,8 +590,13 @@ // initialize USB -void usb_init() +uint8_t usb_init() { + // Check to see if a usb cable has been plugged in + // XXX Not tested (also, not currently needed) -HaaTa + //if ( USB0_STAT & (1 << 1) + // return 0; + HW_CONFIG(); USB_FREEZE(); // enable USB PLL_CONFIG(); // config PLL @@ -604,6 +609,8 @@ // Disable watchdog timer after possible software reset //wdt_init(); // XXX Not working...seems to be ok without this, not sure though + + return 1; } // return 0 if the USB is not configured, or the configuration
--- a/Output/pjrcUSB/avr/usb_keyboard_serial.h Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/pjrcUSB/avr/usb_keyboard_serial.h Mon Feb 09 13:21:23 2015 -0800 @@ -46,7 +46,7 @@ // ----- Function Declarations ----- // Basic USB Configuration -void usb_init(); // initialize everything +uint8_t usb_init(); // initialize everything uint8_t usb_configured(); // is the USB port configured // Keyboard HID Functions
--- a/Output/pjrcUSB/output_com.c Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/pjrcUSB/output_com.c Mon Feb 09 13:21:23 2015 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2014 by Jacob Alexander +/* Copyright (C) 2011-2015 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -124,6 +124,11 @@ // count until idle timeout uint8_t USBKeys_Idle_Count = 0; +// Indicates whether the Output module is fully functional +// 0 - Not fully functional, 1 - Fully functional +// 0 is often used to show that a USB cable is not plugged in (but has power) + uint8_t Output_Available = 0; + // ----- Capabilities ----- @@ -473,9 +478,11 @@ { // Initialize the USB, and then wait for the host to set configuration. // This will hang forever if USB does not initialize - usb_init(); - - while ( !usb_configured() ); + // If no USB cable is attached, does not try and initialize USB + if ( usb_init() ) + { + while ( !usb_configured() ); + } // Register USB Output CLI dictionary CLI_registerDictionary( outputCLIDict, outputCLIDictName );
--- a/Output/pjrcUSB/output_com.h Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/pjrcUSB/output_com.h Mon Feb 09 13:21:23 2015 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2014 by Jacob Alexander +/* Copyright (C) 2013-2015 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -79,6 +79,8 @@ extern USBKeyChangeState USBKeys_Changed; +extern uint8_t Output_Available; // 0 - Output module not fully functional, 1 - Output module working + // ----- Capabilities -----
--- a/Output/uartOut/output_com.c Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/uartOut/output_com.c Mon Feb 09 13:21:23 2015 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014 by Jacob Alexander +/* Copyright (C) 2014-2015 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -107,6 +107,11 @@ // count until idle timeout uint8_t USBKeys_Idle_Count = 0; +// Indicates whether the Output module is fully functional +// 0 - Not fully functional, 1 - Fully functional +// 0 is often used to show that a USB cable is not plugged in (but has power) + uint8_t Output_Available = 0; + // ----- Capabilities -----
--- a/Output/uartOut/output_com.h Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/uartOut/output_com.h Mon Feb 09 13:21:23 2015 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2014 by Jacob Alexander +/* Copyright (C) 2013-2015 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -76,6 +76,8 @@ extern USBKeyChangeState USBKeys_Changed; +extern uint8_t Output_Available; // 0 - Output module not fully functional, 1 - Output module working + // ----- Capabilities -----
--- a/Output/usbMuxUart/output_com.c Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/usbMuxUart/output_com.c Mon Feb 09 13:21:23 2015 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014 by Jacob Alexander +/* Copyright (C) 2014-2015 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,10 +33,10 @@ // USB Includes #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) #elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) || defined(_mk20dx256vlh7_) -#include "../uartOut/arm/uart_serial.h" -#include "../pjrcUSB/arm/usb_dev.h" -#include "../pjrcUSB/arm/usb_keyboard.h" -#include "../pjrcUSB/arm/usb_serial.h" +#include <uartOut/arm/uart_serial.h> +#include <pjrcUSB/arm/usb_dev.h> +#include <pjrcUSB/arm/usb_keyboard.h> +#include <pjrcUSB/arm/usb_serial.h> #endif // Local Includes @@ -130,6 +130,11 @@ // count until idle timeout uint8_t USBKeys_Idle_Count = 0; +// Indicates whether the Output module is fully functional +// 0 - Not fully functional, 1 - Fully functional +// 0 is often used to show that a USB cable is not plugged in (but has power) + uint8_t Output_Available = 0; + // ----- Capabilities -----
--- a/Output/usbMuxUart/output_com.h Mon Feb 09 13:15:25 2015 -0800 +++ b/Output/usbMuxUart/output_com.h Mon Feb 09 13:21:23 2015 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2014 by Jacob Alexander +/* Copyright (C) 2013-2015 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -78,6 +78,8 @@ extern USBKeyChangeState USBKeys_Changed; +extern uint8_t Output_Available; // 0 - Output module not fully functional, 1 - Output module working + // ----- Capabilities -----
--- a/Scan/MD2/setup.cmake Mon Feb 09 13:15:25 2015 -0800 +++ b/Scan/MD2/setup.cmake Mon Feb 09 13:21:23 2015 -0800 @@ -1,6 +1,6 @@ ###| CMake Kiibohd Controller Scan Module |### # -# Written by Jacob Alexander in 2014 for the Kiibohd Controller +# Written by Jacob Alexander in 2014-2015 for the Kiibohd Controller # # Released into the Public Domain # @@ -8,27 +8,24 @@ ### -# Module C files +# Required Sub-modules # - -set( SCAN_SRCS - scan_loop.c - ../MatrixARM/matrix_scan.c -) +AddModule ( Scan ISSILed ) +AddModule ( Scan MatrixARM ) ### -# Module Specific Options +# Module C files # -add_definitions( - -I${HEAD_DIR}/Scan/MatrixARM +set( Module_SRCS + scan_loop.c ) ### # Compiler Family Compatibility # -set( ScanModuleCompatibility +set( ModuleCompatibility arm )