diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c b/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c index 49689f11..aac08e9e 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/modules/builds/x86-64-accton-as7326-56x-leds.c @@ -40,7 +40,7 @@ struct accton_as7326_56x_led_data { struct mutex update_lock; char valid; /* != 0 if registers are valid */ unsigned long last_updated; /* In jiffies */ - u8 reg_val[1]; /* only 1 register*/ + u8 reg_val[2]; }; static struct accton_as7326_56x_led_data *ledctl = NULL; @@ -48,18 +48,17 @@ static struct accton_as7326_56x_led_data *ledctl = NULL; /* LED related data */ +/* LED has only red, green and blue. + * Amber = red + green. + * Purple = red + blue. + */ + #define LED_CNTRLER_I2C_ADDRESS (0x60) -#define LED_TYPE_DIAG_REG_MASK (0x3) -#define LED_MODE_DIAG_GREEN_VALUE (0x02) -#define LED_MODE_DIAG_RED_VALUE (0x01) -#define LED_MODE_DIAG_AMBER_VALUE (0x00) /*It's yellow actually. Green+Red=Yellow*/ -#define LED_MODE_DIAG_OFF_VALUE (0x03) - - -#define LED_TYPE_LOC_REG_MASK (0x80) -#define LED_MODE_LOC_ON_VALUE (0) -#define LED_MODE_LOC_OFF_VALUE (0x80) +#define LED_TYPE_DIAG_REG_MASK (0x3F) +#define LED_MODE_DIAG_OFF_VALUE (0x07) +#define LED_TYPE_LOC_REG_MASK (0x3F) +#define LED_MODE_LOC_OFF_VALUE (0x07) enum led_type { LED_TYPE_DIAG, @@ -75,20 +74,23 @@ struct led_reg { }; static const struct led_reg led_reg_map[] = { - {(1<update_lock); if( !accton_getLedReg(type, ®)) @@ -283,7 +303,7 @@ static struct led_classdev accton_as7326_56x_leds[] = { .brightness_set = accton_as7326_56x_led_diag_set, .brightness_get = accton_as7326_56x_led_diag_get, .flags = LED_CORE_SUSPENDRESUME, - .max_brightness = LED_MODE_RED, + .max_brightness = LED_MODE_PURPLE_BLINK, }, [LED_TYPE_LOC] = { .name = "accton_as7326_56x_led::loc", @@ -291,7 +311,7 @@ static struct led_classdev accton_as7326_56x_leds[] = { .brightness_set = accton_as7326_56x_led_loc_set, .brightness_get = accton_as7326_56x_led_loc_get, .flags = LED_CORE_SUSPENDRESUME, - .max_brightness = LED_MODE_BLUE, + .max_brightness = LED_MODE_PURPLE_BLINK, }, [LED_TYPE_FAN] = { .name = "accton_as7326_56x_led::fan", diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/onlp/builds/src/module/src/ledi.c b/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/onlp/builds/src/module/src/ledi.c index de35ecc6..7d6b6dca 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/onlp/builds/src/module/src/ledi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7326-56x/onlp/builds/src/module/src/ledi.c @@ -53,19 +53,21 @@ enum onlp_led_id LED_PSU1, LED_PSU2 }; - + enum led_light_mode { - LED_MODE_OFF = 0, - LED_MODE_GREEN, - LED_MODE_AMBER, - LED_MODE_RED, - LED_MODE_BLUE, - LED_MODE_GREEN_BLINK, - LED_MODE_AMBER_BLINK, - LED_MODE_RED_BLINK, - LED_MODE_BLUE_BLINK, - LED_MODE_AUTO, - LED_MODE_UNKNOWN + LED_MODE_OFF = 0, + LED_MODE_RED, + LED_MODE_GREEN, + LED_MODE_BLUE, + LED_MODE_AMBER, + LED_MODE_PURPLE, + LED_MODE_RED_BLINK, + LED_MODE_GREEN_BLINK, + LED_MODE_BLUE_BLINK, + LED_MODE_AMBER_BLINK, + LED_MODE_PURPLE_BLINK, + LED_MODE_AUTO, + LED_MODE_UNKNOWN }; typedef struct led_light_mode_map { @@ -75,12 +77,28 @@ typedef struct led_light_mode_map { } led_light_mode_map_t; led_light_mode_map_t led_map[] = { -{LED_DIAG, LED_MODE_OFF, ONLP_LED_MODE_OFF}, -{LED_DIAG, LED_MODE_GREEN, ONLP_LED_MODE_GREEN}, -{LED_DIAG, LED_MODE_AMBER, ONLP_LED_MODE_ORANGE}, -{LED_DIAG, LED_MODE_RED, ONLP_LED_MODE_RED}, -{LED_LOC, LED_MODE_OFF, ONLP_LED_MODE_OFF}, -{LED_LOC, LED_MODE_BLUE, ONLP_LED_MODE_BLUE}, +{LED_DIAG, LED_MODE_OFF, ONLP_LED_MODE_OFF}, +{LED_DIAG, LED_MODE_GREEN, ONLP_LED_MODE_GREEN}, +{LED_DIAG, LED_MODE_AMBER, ONLP_LED_MODE_ORANGE}, +{LED_DIAG, LED_MODE_RED, ONLP_LED_MODE_RED}, +{LED_DIAG, LED_MODE_BLUE, ONLP_LED_MODE_BLUE}, +{LED_DIAG, LED_MODE_PURPLE, ONLP_LED_MODE_PURPLE}, +{LED_DIAG, LED_MODE_GREEN_BLINK, ONLP_LED_MODE_GREEN_BLINKING}, +{LED_DIAG, LED_MODE_AMBER_BLINK, ONLP_LED_MODE_ORANGE_BLINKING}, +{LED_DIAG, LED_MODE_RED_BLINK, ONLP_LED_MODE_RED_BLINKING}, +{LED_DIAG, LED_MODE_BLUE_BLINK, ONLP_LED_MODE_BLUE_BLINKING}, +{LED_DIAG, LED_MODE_PURPLE_BLINK, ONLP_LED_MODE_PURPLE_BLINKING}, +{LED_LOC, LED_MODE_OFF, ONLP_LED_MODE_OFF}, +{LED_LOC, LED_MODE_GREEN, ONLP_LED_MODE_GREEN}, +{LED_LOC, LED_MODE_AMBER, ONLP_LED_MODE_ORANGE}, +{LED_LOC, LED_MODE_RED, ONLP_LED_MODE_RED}, +{LED_LOC, LED_MODE_BLUE, ONLP_LED_MODE_BLUE}, +{LED_LOC, LED_MODE_PURPLE, ONLP_LED_MODE_PURPLE}, +{LED_LOC, LED_MODE_GREEN_BLINK, ONLP_LED_MODE_GREEN_BLINKING}, +{LED_LOC, LED_MODE_AMBER_BLINK, ONLP_LED_MODE_ORANGE_BLINKING}, +{LED_LOC, LED_MODE_RED_BLINK, ONLP_LED_MODE_RED_BLINKING}, +{LED_LOC, LED_MODE_BLUE_BLINK, ONLP_LED_MODE_BLUE_BLINKING}, +{LED_LOC, LED_MODE_PURPLE_BLINK, ONLP_LED_MODE_PURPLE_BLINKING}, {LED_FAN, LED_MODE_AUTO, ONLP_LED_MODE_AUTO}, {LED_PSU1, LED_MODE_AUTO, ONLP_LED_MODE_AUTO}, {LED_PSU2, LED_MODE_AUTO, ONLP_LED_MODE_AUTO} @@ -105,12 +123,20 @@ static onlp_led_info_t linfo[] = { { ONLP_LED_ID_CREATE(LED_DIAG), "Chassis LED 1 (DIAG LED)", 0 }, ONLP_LED_STATUS_PRESENT, - ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_RED | ONLP_LED_CAPS_ORANGE, + ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_RED | + ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_BLUE | ONLP_LED_CAPS_PURPLE| + ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED_BLINKING | + ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_BLUE_BLINKING | + ONLP_LED_CAPS_PURPLE_BLINKING, }, { { ONLP_LED_ID_CREATE(LED_LOC), "Chassis LED 2 (LOC LED)", 0 }, ONLP_LED_STATUS_PRESENT, - ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_ORANGE, + ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_RED | + ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_BLUE | ONLP_LED_CAPS_PURPLE| + ONLP_LED_CAPS_GREEN_BLINKING | ONLP_LED_CAPS_RED_BLINKING | + ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_BLUE_BLINKING | + ONLP_LED_CAPS_PURPLE_BLINKING, }, { { ONLP_LED_ID_CREATE(LED_FAN), "Chassis LED 3 (FAN LED)", 0 },