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

@@ -639,12 +639,26 @@ uint8_t I2C_Send( uint8_t *data, uint8_t sendLen, uint8_t recvLen )


// LED State processing loop
unsigned int LED_currentEvent = 0;
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;
}
@@ -654,17 +668,8 @@ inline uint8_t LED_scan()
// current - mA
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

@@ -95,7 +95,7 @@ ISSILedMask1 = "
0xFF, 0x00, /* C6-1 -> C6-16 */
0xFF, 0x00, /* C7-1 -> C7-16 */
0xFF, 0x00, /* C8-1 -> C8-16 */
0xFE, 0x00, /* C9-1 -> C9-16 */
0xFF, 0x00, /* C9-1 -> C9-16 */
";

# LED Brightness Override
@@ -124,6 +124,6 @@ ISSILedBrightness1 = "
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, /* 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 */
";