/* * This file is part of the coreboot project. * * Copyright (C) 2017 Patrick Rudolph * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include #include #include "h8.h" static void h8_panic(void) { if (IS_ENABLED(CONFIG_H8_FLASH_LEDS_ON_DEATH)) { static const u8 leds[] = { H8_LED_CONTROL_POWER_LED, H8_LED_CONTROL_BAT0_LED, H8_LED_CONTROL_BAT1_LED, H8_LED_CONTROL_UBAY_LED, H8_LED_CONTROL_SUSPEND_LED, H8_LED_CONTROL_DOCK_LED1, H8_LED_CONTROL_DOCK_LED2, H8_LED_CONTROL_ACDC_LED, H8_LED_CONTROL_MUTE_LED }; /* Flash all LEDs */ for (size_t i = 0; i < ARRAY_SIZE(leds); i++) ec_write(H8_LED_CONTROL, H8_LED_CONTROL_BLINK | leds[i]); } if (IS_ENABLED(CONFIG_H8_BEEP_ON_DEATH)) { /* Beep 4 Sec. 1250 Hz */ ec_write(H8_SOUND_ENABLE1, 4); ec_write(H8_SOUND_REPEAT, 1); ec_write(H8_SOUND_REG, 10); } } void die_notify(void) { h8_panic(); }