summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2014-01-11 20:56:47 +0100
committerVladimir Serbinenko <phcoder@gmail.com>2014-01-12 18:03:33 +0100
commit9a3b9c42d3063b03bf0028a3cbca0f2465f8f609 (patch)
tree2b25c5b69c40ea06378a75e35f0336e3c71c64e5
parent6d6298dddc4147e7a1df6c51cb97b3d94e9c4584 (diff)
downloadcoreboot-9a3b9c42d3063b03bf0028a3cbca0f2465f8f609.tar.xz
ec/lenovo/h8: Allow user to disable powermanagement beeps.
They're pretty annoying. Change-Id: I44d26dc168927a9cedfd6ecc4c9a51a3a7b362c7 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/4662 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r--src/ec/lenovo/h8/chip.h1
-rw-r--r--src/ec/lenovo/h8/h8.c15
-rw-r--r--src/mainboard/lenovo/t60/cmos.layout1
-rw-r--r--src/mainboard/lenovo/t60/devicetree.cb1
-rw-r--r--src/mainboard/lenovo/x201/cmos.default1
-rw-r--r--src/mainboard/lenovo/x201/cmos.layout1
-rw-r--r--src/mainboard/lenovo/x201/devicetree.cb1
-rw-r--r--src/mainboard/lenovo/x60/cmos.default1
-rw-r--r--src/mainboard/lenovo/x60/cmos.layout1
-rw-r--r--src/mainboard/lenovo/x60/devicetree.cb1
10 files changed, 22 insertions, 2 deletions
diff --git a/src/ec/lenovo/h8/chip.h b/src/ec/lenovo/h8/chip.h
index 58313d4a2a..947a7a0779 100644
--- a/src/ec/lenovo/h8/chip.h
+++ b/src/ec/lenovo/h8/chip.h
@@ -48,5 +48,6 @@ struct ec_lenovo_h8_config {
u8 eventf_enable;
u8 trackpoint_enable;
+ u8 has_power_management_beeps;
};
#endif
diff --git a/src/ec/lenovo/h8/h8.c b/src/ec/lenovo/h8/h8.c
index c67b3b3872..9c85da79db 100644
--- a/src/ec/lenovo/h8/h8.c
+++ b/src/ec/lenovo/h8/h8.c
@@ -160,6 +160,7 @@ static void h8_enable(device_t dev)
{
struct ec_lenovo_h8_config *conf = dev->chip_info;
u8 val, tmp;
+ u8 beepmask0, beepmask1;
h8_log_ec_version();
@@ -168,8 +169,18 @@ static void h8_enable(device_t dev)
ec_write(H8_CONFIG2, conf->config2);
ec_write(H8_CONFIG3, conf->config3);
- ec_write(H8_SOUND_ENABLE0, conf->beepmask0);
- ec_write(H8_SOUND_ENABLE1, conf->beepmask1);
+ beepmask0 = conf->beepmask0;
+ beepmask1 = conf->beepmask1;
+
+ if (conf->has_power_management_beeps
+ && get_option(&val, "power_management_beeps") == CB_SUCCESS
+ && val == 0) {
+ beepmask0 = 0x00;
+ beepmask1 = 0x00;
+ }
+ ec_write(H8_SOUND_ENABLE0, beepmask0);
+ ec_write(H8_SOUND_ENABLE1, beepmask1);
+
ec_write(H8_SOUND_REPEAT, 0x00);
ec_write(0x10, conf->event0_enable);
diff --git a/src/mainboard/lenovo/t60/cmos.layout b/src/mainboard/lenovo/t60/cmos.layout
index abd98d2ae7..fc8b39514c 100644
--- a/src/mainboard/lenovo/t60/cmos.layout
+++ b/src/mainboard/lenovo/t60/cmos.layout
@@ -114,6 +114,7 @@ entries
1072 1 e 9 first_battery
1074 1 e 1 fn_ctrl_swap
1075 1 e 1 sticky_fn
+1076 1 e 1 power_management_beeps
# -----------------------------------------------------------------
enumerations
diff --git a/src/mainboard/lenovo/t60/devicetree.cb b/src/mainboard/lenovo/t60/devicetree.cb
index 57b9df4531..bb4801d2aa 100644
--- a/src/mainboard/lenovo/t60/devicetree.cb
+++ b/src/mainboard/lenovo/t60/devicetree.cb
@@ -128,6 +128,7 @@ chip northbridge/intel/i945
register "beepmask0" = "0xfe"
register "beepmask1" = "0x96"
+ register "has_power_management_beeps" = "1"
register "event2_enable" = "0xff"
register "event3_enable" = "0xff"
diff --git a/src/mainboard/lenovo/x201/cmos.default b/src/mainboard/lenovo/x201/cmos.default
index a8576d859e..be59c220f9 100644
--- a/src/mainboard/lenovo/x201/cmos.default
+++ b/src/mainboard/lenovo/x201/cmos.default
@@ -11,4 +11,5 @@ wwan=Enable
touchpad=Enable
fn_ctrl_swap=Disable
sticky_fn=Disable
+power_management_beeps=Enable
sata_mode=AHCI
diff --git a/src/mainboard/lenovo/x201/cmos.layout b/src/mainboard/lenovo/x201/cmos.layout
index 984d903e8b..e434112c5a 100644
--- a/src/mainboard/lenovo/x201/cmos.layout
+++ b/src/mainboard/lenovo/x201/cmos.layout
@@ -92,6 +92,7 @@ entries
414 1 e 1 touchpad
417 1 e 1 fn_ctrl_swap
418 1 e 1 sticky_fn
+419 1 e 1 power_management_beeps
421 1 e 9 sata_mode
#422 562 r 0 unused
diff --git a/src/mainboard/lenovo/x201/devicetree.cb b/src/mainboard/lenovo/x201/devicetree.cb
index 83595e19b4..2f050604d4 100644
--- a/src/mainboard/lenovo/x201/devicetree.cb
+++ b/src/mainboard/lenovo/x201/devicetree.cb
@@ -58,6 +58,7 @@ chip northbridge/intel/nehalem
register "beepmask0" = "0xfe"
register "beepmask1" = "0x96"
+ register "has_power_management_beeps" = "1"
register "event2_enable" = "0xff"
register "event3_enable" = "0xff"
diff --git a/src/mainboard/lenovo/x60/cmos.default b/src/mainboard/lenovo/x60/cmos.default
index eed5fa826d..883bfd44f8 100644
--- a/src/mainboard/lenovo/x60/cmos.default
+++ b/src/mainboard/lenovo/x60/cmos.default
@@ -14,3 +14,4 @@ first_battery=Primary
bluetooth=Enable
fn_ctrl_swap=Disable
sticky_fn=Disable
+power_management_beeps=Enable
diff --git a/src/mainboard/lenovo/x60/cmos.layout b/src/mainboard/lenovo/x60/cmos.layout
index 738863e3d9..a2b45bd4c3 100644
--- a/src/mainboard/lenovo/x60/cmos.layout
+++ b/src/mainboard/lenovo/x60/cmos.layout
@@ -114,6 +114,7 @@ entries
1082 1 e 1 wwan
1085 1 e 1 fn_ctrl_swap
1086 1 e 1 sticky_fn
+1087 1 e 1 power_management_beeps
# -----------------------------------------------------------------
enumerations
diff --git a/src/mainboard/lenovo/x60/devicetree.cb b/src/mainboard/lenovo/x60/devicetree.cb
index d6e09bfe01..4b20b76640 100644
--- a/src/mainboard/lenovo/x60/devicetree.cb
+++ b/src/mainboard/lenovo/x60/devicetree.cb
@@ -106,6 +106,7 @@ chip northbridge/intel/i945
register "beepmask0" = "0xfe"
register "beepmask1" = "0x96"
+ register "has_power_management_beeps" = "1"
register "event2_enable" = "0xff"
register "event3_enable" = "0xff"