H8 EC: add volume CMOS setting
authorSven Schnelle <svens@stackframe.org>
Sun, 5 Jun 2011 18:47:49 +0000 (20:47 +0200)
committerSven Schnelle <svens@stackframe.org>
Thu, 9 Jun 2011 08:05:46 +0000 (10:05 +0200)
Change-Id: I5332c8fa52556db34dfb5e772bf544f0323e823d
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Reviewed-on: http://review.coreboot.org/12
Tested-by: build bot (Jenkins)
src/ec/lenovo/h8/h8.c
src/ec/lenovo/h8/h8.h
src/mainboard/lenovo/t60/cmos.layout
src/mainboard/lenovo/x60/cmos.layout

index e2e5f998be818c1959de9e523718817a062bece5..ef308b1bace63ce48c2794b2ed567f189f07edda 100644 (file)
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 #include "h8.h"
 #include "chip.h"
+#include <pc80/mc146818rtc.h>
 
 void h8_trackpoint_enable(int on)
 {
@@ -95,6 +96,8 @@ int h8_ultrabay_device_present(void)
 static void h8_enable(device_t dev)
 {
        struct ec_lenovo_h8_config *conf = dev->chip_info;
+       u8 val;
+
        h8_log_ec_version();
 
        ec_write(H8_CONFIG0, conf->config0);
@@ -127,6 +130,8 @@ static void h8_enable(device_t dev)
        h8_wlan_enable(conf->wlan_enable);
        h8_trackpoint_enable(conf->trackpoint_enable);
 
+       if (!get_option(&val, "volume"))
+               ec_write(H8_VOLUME_CONTROL, val);
 }
 
 struct chip_operations ec_lenovo_h8_ops = {
index b5d8f017bf7e0108e3a0ba1228502d3d61b45fb7..c87ace43c934579dde3e41fcc9e59cf028414fd1 100644 (file)
@@ -70,6 +70,9 @@ int h8_ultrabay_device_present(void);
 
 #define H8_FAN_CONTROL                 0x2f
 #define H8_FAN_CONTROL_AUTO            0x80
+
+#define H8_VOLUME_CONTROL              0x30
+#define H8_VOLUME_CONTROL_MUTE         0x40
 /* Embedded controller events */
 #define H8_EVENT_FN_F1 0x10
 #define H8_EVENT_FN_F2 0x11
index 3144c1e4cd3441df5e967f171d0897c1dd6f1b38..a946b4b120118232198dfbab9feefecb0a60fcf3 100644 (file)
@@ -108,6 +108,7 @@ entries
 1052         4       r       0        C1DRT1
 
 1060         1       e       1        touchpad
+1064         8       h       0        volume
 # -----------------------------------------------------------------
 
 enumerations
index c8790789b8613eb7185eb3e0e9d129ad0a701312..1875e599e69e15fd253e0c2cbfc0afa4339a4bb8 100644 (file)
@@ -107,6 +107,7 @@ entries
 1048         4       r       0        C0DRT1
 1052         4       r       0        C1DRT1
 
+1064         8       h       0        volume
 # -----------------------------------------------------------------
 
 enumerations