Browse Source

Fixing potential WF LED issue

- Added fix for USB Current Change
  * If called during interrupt, could hang the I2C bus
  * Delaying I2C writes till scan loop
capsense
Jacob Alexander 8 years ago
parent
commit
074134c474
2 changed files with 21 additions and 16 deletions
  1. 19
    14
      Scan/ISSILed/led_scan.c
  2. 2
    2
      Scan/WhiteFox/defaultMap.kll

+ 19
- 14
Scan/ISSILed/led_scan.c View File





// LED State processing loop // LED State processing loop
unsigned int LED_currentEvent = 0;
inline uint8_t LED_scan() inline uint8_t LED_scan()
{ {
// Check for current change event
if ( LED_currentEvent )
{
// TODO dim LEDs in low power mode instead of shutting off
if ( LED_currentEvent < 150 )
{
// Enable Software shutdown of ISSI chip
LED_writeReg( 0x0A, 0x00, 0x0B );
}
else
{
// Disable Software shutdown of ISSI chip
LED_writeReg( 0x0A, 0x01, 0x0B );
}


// I2C Busy
// S & I2C_S_BUSY
//I2C_S_BUSY
LED_currentEvent = 0;
}


return 0; return 0;
} }
// current - mA // current - mA
void LED_currentChange( unsigned int current ) void LED_currentChange( unsigned int current )
{ {
// TODO dim LEDs in low power mode instead of shutting off
if ( current < 150 )
{
// Enabled Software shutdown of ISSI chip
LED_writeReg( 0x0A, 0x00, 0x0B );
}
else
{
// Disable Software shutdown of ISSI chip
LED_writeReg( 0x0A, 0x01, 0x0B );
}
// Delay action till next LED scan loop (as this callback sometimes occurs during interrupt requests)
LED_currentEvent = current;
} }





+ 2
- 2
Scan/WhiteFox/defaultMap.kll View File

0xFF, 0x00, /* C6-1 -> C6-16 */ 0xFF, 0x00, /* C6-1 -> C6-16 */
0xFF, 0x00, /* C7-1 -> C7-16 */ 0xFF, 0x00, /* C7-1 -> C7-16 */
0xFF, 0x00, /* C8-1 -> C8-16 */ 0xFF, 0x00, /* C8-1 -> C8-16 */
0xFE, 0x00, /* C9-1 -> C9-16 */
0xFF, 0x00, /* C9-1 -> C9-16 */
"; ";


# LED Brightness Override # LED Brightness Override
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
"; ";