[coreboot-gerrit] Patch set updated for coreboot: google/oak: Move external buck initialization to coreboot

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Mar 17 15:38:26 CET 2016


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14123

-gerrit

commit 4fcc27ea2c3e277b3a9a66bec1cc00afd4fa4791
Author: henryc.chen <henryc.chen at mediatek.com>
Date:   Fri Mar 11 14:55:30 2016 +0800

    google/oak: Move external buck initialization to coreboot
    
    Remove the code which is passing parameters to ARMTF and move external
    buck initilizaton from ARMTF to coreboot.
    
    BRANCH=none
    BUG=none
    TEST=verified on Oak rev4/rev5
    
    Change-Id: I4f4b30acbee9b42a202b326f2fe4517cb4b9d83c
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 37bec54b4d8a3bce38878e292e4821da3959026a
    Original-Change-Id: Ib81709812a064f6daf13c9b4d6525f1858c81393
    Original-Signed-off-by: henryc.chen <henryc.chen at mediatek.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/332343
    Original-Commit-Ready: Yidi Lin <yidi.lin at mediatek.com>
    Original-Tested-by: Yidi Lin <yidi.lin at mediatek.com>
    Original-Reviewed-by: Julius Werner <jwerner at chromium.org>
---
 src/mainboard/google/oak/mainboard.c | 70 +++++++++---------------------------
 1 file changed, 17 insertions(+), 53 deletions(-)

diff --git a/src/mainboard/google/oak/mainboard.c b/src/mainboard/google/oak/mainboard.c
index 192f4b3..4208730 100644
--- a/src/mainboard/google/oak/mainboard.c
+++ b/src/mainboard/google/oak/mainboard.c
@@ -22,8 +22,9 @@
 
 #include <elog.h>
 #include <gpio.h>
-#include <soc/bl31_plat_params.h>
+#include <soc/da9212.h>
 #include <soc/i2c.h>
+#include <soc/mt6311.h>
 #include <soc/mt6391.h>
 #include <soc/mtcmos.h>
 #include <soc/pinmux.h>
@@ -31,67 +32,30 @@
 #include <soc/usb.h>
 #include <vendorcode/google/chromeos/chromeos.h>
 
-static void register_da9212_to_bl31(void)
-{
-#if IS_ENABLED(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE)
-	static struct bl31_da9212_param param_da9212 = {
-		.h = {
-			.type = PARAM_CLUSTER1_DA9212,
-		},
-		.i2c_bus = 1,
-		.ic_en = {
-			.type = PARAM_GPIO_MT6391,
-			.polarity = PARAM_GPIO_ACTIVE_HIGH,
-			.index = MT6391_KP_ROW3,
-		},
-		.en_a = {
-			.type = PARAM_GPIO_MT6391,
-			.polarity = PARAM_GPIO_ACTIVE_HIGH,
-			.index = MT6391_KP_ROW4,
-		},
-		.en_b = {
-			.type = PARAM_GPIO_NONE,
-		},
-	};
-	if (board_id() == 2) {
-		param_da9212.ic_en.type = PARAM_GPIO_SOC;
-		param_da9212.ic_en.index = PAD_UCTS2;
-	}
-	register_bl31_param(&param_da9212.h);
-
-	/* Init i2c bus Timing register for da9212 */
-	mtk_i2c_bus_init(param_da9212.i2c_bus);
-#endif
-}
+enum {
+	CODEC_I2C_BUS = 0,
+	EXT_BUCK_I2C_BUS = 1,
+};
 
-static void register_mt6311_to_bl31(void)
+static void configure_ext_buck(void)
 {
-#if IS_ENABLED(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE)
-	static struct bl31_mt6311_param param_mt6311 = {
-		.h = {
-			.type = PARAM_CLUSTER1_MT6311,
-		},
-		.i2c_bus = 1,
-	};
-	register_bl31_param(&param_mt6311.h);
-
-	/* Init i2c bus Timing register for mt6311 */
-	mtk_i2c_bus_init(param_mt6311.i2c_bus);
-#endif
-}
+	mtk_i2c_bus_init(EXT_BUCK_I2C_BUS);
 
-static void configure_bl31(void)
-{
 	switch (board_id()) {
 	case 3:
 	case 4:
 		/* rev-3 and rev-4 use mt6311 as external buck */
-		register_mt6311_to_bl31();
+		gpio_output(PAD_EINT15, 1);
+		udelay(500);
+		mt6311_probe(EXT_BUCK_I2C_BUS);
 		break;
 	case 2:
 	default:
 		/* rev-2 and rev-5 use da9212 as external buck */
-		register_da9212_to_bl31();
+		mt6391_gpio_output(MT6391_KP_ROW3, 1); /* DA9212_IC_EN */
+		mt6391_gpio_output(MT6391_KP_ROW4, 1); /* DA9212_EN_A */
+		udelay(500);	/* add 500us delay for powering on da9212 */
+		da9212_probe(EXT_BUCK_I2C_BUS);
 		break;
 	}
 }
@@ -125,7 +89,7 @@ static void configure_audio(void)
 	mt6391_gpio_output(MT6391_KP_COL5, 1);
 
 	/* Init i2c bus Timing register for audio codecs */
-	mtk_i2c_bus_init(0);
+	mtk_i2c_bus_init(CODEC_I2C_BUS);
 
 	/* set I2S clock to 48KHz */
 	mt_pll_set_aud_div(48 * KHz);
@@ -197,7 +161,7 @@ static void mainboard_init(device_t dev)
 	configure_backlight();
 	configure_usb();
 	configure_usb_hub();
-	configure_bl31();
+	configure_ext_buck();
 
 	elog_init();
 	elog_add_boot_reason();



More information about the coreboot-gerrit mailing list