Stefan Reinauer ([email protected]) just uploaded a new patch set to 
gerrit, which you can find at http://review.coreboot.org/1410

-gerrit

commit 4974878d81fa32f95dfdc5f62308a8f66926c4b1
Author: Dylan Reid <[email protected]>
Date:   Fri Apr 27 11:37:33 2012 -0700

    bd82x6x: Add beep commands
    
    Move beep commands to board-specific area as they need to be different for
    different codecs.
    
    Change-Id: I2a1ac938c49827cc816a95df10793a7e234942bf
    Signed-off-by: Dylan Reid <[email protected]>
---
 src/mainboard/samsung/lumpy/hda_verb.h   |   10 ++++++++++
 src/mainboard/samsung/lumpy/mainboard.c  |    4 ++++
 src/mainboard/samsung/stumpy/hda_verb.h  |    9 +++++++++
 src/mainboard/samsung/stumpy/mainboard.c |    4 ++++
 src/southbridge/intel/bd82x6x/azalia.c   |   12 ++++++++++++
 5 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/src/mainboard/samsung/lumpy/hda_verb.h 
b/src/mainboard/samsung/lumpy/hda_verb.h
index 732f0aa..3871aa1 100644
--- a/src/mainboard/samsung/lumpy/hda_verb.h
+++ b/src/mainboard/samsung/lumpy/hda_verb.h
@@ -69,3 +69,13 @@ static const u32 mainboard_cim_verb_data[] = {
        0x00a71e45,
        0x00a71f43
 };
+
+static const u32 mainboard_pc_beep_verbs[] = {
+       0x00170500,                     /* power up codec */
+       0x00270500,                     /* power up DAC */
+       0x00670500,                     /* power up speaker */
+       0x00670740,                     /* enable speaker output */
+       0x0023B04B,                     /* set DAC gain */
+};
+static const u32 mainboard_pc_beep_verbs_size =
+       sizeof(mainboard_pc_beep_verbs) / sizeof(mainboard_pc_beep_verbs[0]);
diff --git a/src/mainboard/samsung/lumpy/mainboard.c 
b/src/mainboard/samsung/lumpy/mainboard.c
index e83516a..62d87b6 100644
--- a/src/mainboard/samsung/lumpy/mainboard.c
+++ b/src/mainboard/samsung/lumpy/mainboard.c
@@ -253,11 +253,15 @@ static void int15_install(void)
 
 extern const u32 * cim_verb_data;
 extern u32 cim_verb_data_size;
+extern const u32 * pc_beep_verbs;
+extern u32 pc_beep_verbs_size;
 
 static void verb_setup(void)
 {
        cim_verb_data = mainboard_cim_verb_data;
        cim_verb_data_size = sizeof(mainboard_cim_verb_data);
+       pc_beep_verbs = mainboard_pc_beep_verbs;
+       pc_beep_verbs_size = mainboard_pc_beep_verbs_size;
 }
 
 static void mainboard_init(device_t dev)
diff --git a/src/mainboard/samsung/stumpy/hda_verb.h 
b/src/mainboard/samsung/stumpy/hda_verb.h
index 9a4a740..c9a49c5 100644
--- a/src/mainboard/samsung/stumpy/hda_verb.h
+++ b/src/mainboard/samsung/stumpy/hda_verb.h
@@ -97,3 +97,12 @@ static const u32 mainboard_cim_verb_data[] = {
        0x30771f18
 };
 
+static const u32 mainboard_pc_beep_verbs[] = {
+       0x00170500,                     /* power up codec */
+       0x00270500,                     /* power up DAC */
+       0x00670500,                     /* power up speaker */
+       0x00670740,                     /* enable speaker output */
+       0x0023B04B,                     /* set DAC gain */
+};
+static const u32 mainboard_pc_beep_verbs_size =
+       sizeof(mainboard_pc_beep_verbs) / sizeof(mainboard_pc_beep_verbs[0]);
diff --git a/src/mainboard/samsung/stumpy/mainboard.c 
b/src/mainboard/samsung/stumpy/mainboard.c
index 246b261..c70673b 100644
--- a/src/mainboard/samsung/stumpy/mainboard.c
+++ b/src/mainboard/samsung/stumpy/mainboard.c
@@ -223,11 +223,15 @@ static void int15_install(void)
 
 extern const u32 * cim_verb_data;
 extern u32 cim_verb_data_size;
+extern const u32 * pc_beep_verbs;
+extern u32 pc_beep_verbs_size;
 
 static void verb_setup(void)
 {
        cim_verb_data = mainboard_cim_verb_data;
        cim_verb_data_size = sizeof(mainboard_cim_verb_data);
+       pc_beep_verbs = mainboard_pc_beep_verbs;
+       pc_beep_verbs_size = mainboard_pc_beep_verbs_size;
 }
 
 // mainboard_enable is executed as first thing after
diff --git a/src/southbridge/intel/bd82x6x/azalia.c 
b/src/southbridge/intel/bd82x6x/azalia.c
index e40bbe3..a257daf 100644
--- a/src/southbridge/intel/bd82x6x/azalia.c
+++ b/src/southbridge/intel/bd82x6x/azalia.c
@@ -92,6 +92,8 @@ no_codec:
 
 const u32 * cim_verb_data = NULL;
 u32 cim_verb_data_size = 0;
+const u32 * pc_beep_verbs = NULL;
+u32 pc_beep_verbs_size = 0;
 
 static u32 find_verb(struct device *dev, u32 viddid, const u32 ** verb)
 {
@@ -218,6 +220,16 @@ static void codecs_init(struct device *dev, u32 base, u32 
codec_mask)
                if (codec_mask & (1 << i))
                        codec_init(dev, base, i);
        }
+
+       for (i = 0; i < pc_beep_verbs_size; i++) {
+               if (wait_for_ready(base) == -1)
+                       return;
+
+               write32(base + 0x60, pc_beep_verbs[i]);
+
+               if (wait_for_valid(base) == -1)
+                       return;
+       }
 }
 
 static void azalia_init(struct device *dev)

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to