summaryrefslogtreecommitdiff
path: root/src/mainboard/lippert
diff options
context:
space:
mode:
authorPeter Stuge <peter@stuge.se>2010-10-13 06:23:02 +0000
committerPeter Stuge <peter@stuge.se>2010-10-13 06:23:02 +0000
commit51eafdeae621f1b04db51c3b4a690fa993aa48a0 (patch)
treee36ad669d05eecf00ce5826f8fb3fad8409ebec7 /src/mainboard/lippert
parentf2573bd23727db672b22f3840ce91d08ec3aea5d (diff)
Enable or disable the power button in Kconfig
Some mainboards need to disable the power button to avoid turning off right after being turned on, while other boards ship with a jumper over the power button and should allow the user to configure the behavior. This adds infrastructure in the form of four mutually exclusive options which can be selected in a mainboard Kconfig (power button forced on/off, and user-controllable with default on/off) and one result bool which source code can test. (Enable the button or not.) The options have been implemented in CS5536 code and for all mainboards which select SOUTHBRIDGE_AMD_CS5536, but should be used also by other chipsets where applicable. Note that if chipset code uses the result bool ENABLE_POWER_BUTTON, then every board using that chipset must select one out of the four control options in order to build. All touched boards should have unchanged behavior, except pcengines/alix1c, traverse/geos and lippert/hurricane-lx where the power button can now be configured by the user. Build tested for alix1c, alix2d, hurricane-lx and wyse-s50. Confirmed to work as advertised on alix1c both with button enabled and disabled. Includes additional traverse/geos changes from Nathan and lippert/hurricane-lx changes from Jens to correctly use the new feature on those boards. Signed-off-by: Peter Stuge <peter@stuge.se> Acked-by: Aurelien Guillaume <aurelien@iwi.me> Acked-by: Nils Jacobs <njacobs8@hetnet.nl> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5948 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/lippert')
-rw-r--r--src/mainboard/lippert/hurricane-lx/Kconfig9
-rw-r--r--src/mainboard/lippert/hurricane-lx/romstage.c9
-rw-r--r--src/mainboard/lippert/literunner-lx/Kconfig1
-rw-r--r--src/mainboard/lippert/roadrunner-lx/Kconfig1
-rw-r--r--src/mainboard/lippert/spacerunner-lx/Kconfig1
5 files changed, 13 insertions, 8 deletions
diff --git a/src/mainboard/lippert/hurricane-lx/Kconfig b/src/mainboard/lippert/hurricane-lx/Kconfig
index 027988f959..9b20aa0759 100644
--- a/src/mainboard/lippert/hurricane-lx/Kconfig
+++ b/src/mainboard/lippert/hurricane-lx/Kconfig
@@ -29,11 +29,20 @@ config IRQ_SLOT_COUNT
config BOARD_OLD_REVISION
bool "Board is old pre-3.0 revision"
default n
+ select POWER_BUTTON_DEFAULT_DISABLE
help
Look on the bottom side for a number like 406-0001-30. The last 2
digits state the PCB revision (3.0 in this example). For 2.0 or older
boards choose Y, for 3.0 and newer say N.
+ Old revision boards need a jumper shorting the power button to
+ power on automatically. You may enable the button only after this
+ jumper has been removed. New revision boards are not restricted
+ in this way, and always have the power button enabled.
+
+config POWER_BUTTON_FORCE_ENABLE
+ def_bool y if !BOARD_OLD_REVISION
+
config ONBOARD_UARTS_RS485
bool "Switch on-board serial ports to RS485"
default n
diff --git a/src/mainboard/lippert/hurricane-lx/romstage.c b/src/mainboard/lippert/hurricane-lx/romstage.c
index 018f353fd0..b7314bf06f 100644
--- a/src/mainboard/lippert/hurricane-lx/romstage.c
+++ b/src/mainboard/lippert/hurricane-lx/romstage.c
@@ -147,14 +147,7 @@ void main(unsigned long bist)
cpuRegInit(0, DIMM0, DIMM1, DRAM_TERMINATED);
-#if CONFIG_BOARD_OLD_REVISION
- /*
- * Old revision boards need a jumper shorting the power button to power
- * on automatically. So we must disable the button's fail-safe function,
- * or the board will shut down after 4 s.
- */
- outl(0, PMS_IO_BASE + PM_FSD); // Fail-Save Delay register
-#else
+#if !CONFIG_BOARD_OLD_REVISION
int err;
/* bit0 = Spread Spectrum */
if ((err = smc_send_config(SMC_CONFIG))) {
diff --git a/src/mainboard/lippert/literunner-lx/Kconfig b/src/mainboard/lippert/literunner-lx/Kconfig
index 482f571e8d..7b45d36ea1 100644
--- a/src/mainboard/lippert/literunner-lx/Kconfig
+++ b/src/mainboard/lippert/literunner-lx/Kconfig
@@ -14,6 +14,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
# Board is equipped with a 1 MB SPI flash, however, due to limitations
# of the IT8712F Super I/O, only the top 512 KB are directly mapped.
select BOARD_ROMSIZE_KB_512
+ select POWER_BUTTON_FORCE_ENABLE
config MAINBOARD_DIR
string
diff --git a/src/mainboard/lippert/roadrunner-lx/Kconfig b/src/mainboard/lippert/roadrunner-lx/Kconfig
index 44326d193f..4e29742b81 100644
--- a/src/mainboard/lippert/roadrunner-lx/Kconfig
+++ b/src/mainboard/lippert/roadrunner-lx/Kconfig
@@ -13,6 +13,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
# Standard chip is a 512 KB FWH. Replacing it with a 1 MB
# SST 49LF008A is possible.
select BOARD_ROMSIZE_KB_512
+ select POWER_BUTTON_FORCE_ENABLE
config MAINBOARD_DIR
string
diff --git a/src/mainboard/lippert/spacerunner-lx/Kconfig b/src/mainboard/lippert/spacerunner-lx/Kconfig
index 7526d1ecb4..f273d6cf56 100644
--- a/src/mainboard/lippert/spacerunner-lx/Kconfig
+++ b/src/mainboard/lippert/spacerunner-lx/Kconfig
@@ -14,6 +14,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
# Board is equipped with a 1 MB SPI flash, however, due to limitations
# of the IT8712F Super I/O, only the top 512 KB are directly mapped.
select BOARD_ROMSIZE_KB_512
+ select POWER_BUTTON_FORCE_ENABLE
config MAINBOARD_DIR
string