summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSrinivasa Rao Mandadapu <srivasam@codeaurora.org>2021-08-27 19:31:34 +0530
committerShelley Chen <shchen@google.com>2022-01-08 00:35:59 +0000
commit2360d7c2771536b785dbcb435f135c5eff713a46 (patch)
treea33e5ffa11aa0c7f37cfd11c022c46ccc697c9d3 /src
parent3538461468aa7b0b14e1c76e09f6104a3e551b4a (diff)
mb/google/herobrine: Add support for audio
Add GPIO configuration for target specific i2s ports. BUG=b:182963902 TEST=Validated on qualcomm sc7280 development board Boot on herobrine board (no speakers to test yet) Signed-off-by: Srinivasa Rao Mandadapu <srivasam@codeaurora.org> Change-Id: I2ce95332f892d5d4acb2755307df84d37feb8002 Reviewed-on: https://review.coreboot.org/c/coreboot/+/57449 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/google/herobrine/board.h5
-rw-r--r--src/mainboard/google/herobrine/chromeos.c3
-rw-r--r--src/mainboard/google/herobrine/mainboard.c13
3 files changed, 21 insertions, 0 deletions
diff --git a/src/mainboard/google/herobrine/board.h b/src/mainboard/google/herobrine/board.h
index 0f396bc816..d336bce0ad 100644
--- a/src/mainboard/google/herobrine/board.h
+++ b/src/mainboard/google/herobrine/board.h
@@ -31,6 +31,11 @@
#define USB_HUB_LDO_EN GPIO(157)
#endif
+#define GPIO_AMP_ENABLE GPIO(63)
+#define GPIO_MI2S1_SCK GPIO(106)
+#define GPIO_MI2S1_DATA0 GPIO(107)
+#define GPIO_MI2S1_WS GPIO(108)
+
#define QCOM_SC7280_SKU1 0x0
#define QCOM_SC7280_SKU2 0x1
diff --git a/src/mainboard/google/herobrine/chromeos.c b/src/mainboard/google/herobrine/chromeos.c
index 4c37ef129c..b5631fc8b2 100644
--- a/src/mainboard/google/herobrine/chromeos.c
+++ b/src/mainboard/google/herobrine/chromeos.c
@@ -21,6 +21,7 @@ void setup_chromeos_gpios(void)
gpio_output(GPIO_FP_RST_L, 0);
gpio_output(GPIO_EN_FP_RAILS, 0);
}
+ gpio_output(GPIO_AMP_ENABLE, 0);
}
void fill_lb_gpios(struct lb_gpios *gpios)
@@ -28,6 +29,8 @@ void fill_lb_gpios(struct lb_gpios *gpios)
const struct lb_gpio chromeos_gpios[] = {
{GPIO_SD_CD_L.addr, ACTIVE_LOW, gpio_get(GPIO_SD_CD_L),
"SD card detect"},
+ {GPIO_AMP_ENABLE.addr, ACTIVE_HIGH, gpio_get(GPIO_AMP_ENABLE),
+ "speaker enable"},
#if CONFIG(EC_GOOGLE_CHROMEEC)
{GPIO_EC_IN_RW.addr, ACTIVE_LOW, gpio_get(GPIO_EC_IN_RW),
"EC in RW"},
diff --git a/src/mainboard/google/herobrine/mainboard.c b/src/mainboard/google/herobrine/mainboard.c
index a97f97ef56..e929ec9365 100644
--- a/src/mainboard/google/herobrine/mainboard.c
+++ b/src/mainboard/google/herobrine/mainboard.c
@@ -36,6 +36,18 @@ static void configure_sdhci(void)
write32((void *)SDC2_TLMM_CFG_ADDR, 0x1FE4);
}
+static void qi2s_configure_gpios(void)
+{
+ gpio_configure(GPIO_MI2S1_SCK, GPIO106_FUNC_MI2S1_SCK,
+ GPIO_NO_PULL, GPIO_16MA, GPIO_OUTPUT);
+
+ gpio_configure(GPIO_MI2S1_WS, GPIO108_FUNC_MI2S1_WS,
+ GPIO_NO_PULL, GPIO_16MA, GPIO_OUTPUT);
+
+ gpio_configure(GPIO_MI2S1_DATA0, GPIO107_FUNC_MI2S1_DATA0,
+ GPIO_NO_PULL, GPIO_16MA, GPIO_OUTPUT);
+}
+
static void mainboard_init(struct device *dev)
{
/* Configure clock for eMMC */
@@ -90,6 +102,7 @@ static void mainboard_init(struct device *dev)
gpio_output(GPIO_FP_RST_L, 1);
setup_usb();
+ qi2s_configure_gpios();
}
static void mainboard_enable(struct device *dev)