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>
This commit is contained in:
committed by
Shelley Chen
parent
3538461468
commit
2360d7c277
@@ -31,6 +31,11 @@
|
|||||||
#define USB_HUB_LDO_EN GPIO(157)
|
#define USB_HUB_LDO_EN GPIO(157)
|
||||||
#endif
|
#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_SKU1 0x0
|
||||||
#define QCOM_SC7280_SKU2 0x1
|
#define QCOM_SC7280_SKU2 0x1
|
||||||
|
|
||||||
|
@@ -21,6 +21,7 @@ void setup_chromeos_gpios(void)
|
|||||||
gpio_output(GPIO_FP_RST_L, 0);
|
gpio_output(GPIO_FP_RST_L, 0);
|
||||||
gpio_output(GPIO_EN_FP_RAILS, 0);
|
gpio_output(GPIO_EN_FP_RAILS, 0);
|
||||||
}
|
}
|
||||||
|
gpio_output(GPIO_AMP_ENABLE, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
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[] = {
|
const struct lb_gpio chromeos_gpios[] = {
|
||||||
{GPIO_SD_CD_L.addr, ACTIVE_LOW, gpio_get(GPIO_SD_CD_L),
|
{GPIO_SD_CD_L.addr, ACTIVE_LOW, gpio_get(GPIO_SD_CD_L),
|
||||||
"SD card detect"},
|
"SD card detect"},
|
||||||
|
{GPIO_AMP_ENABLE.addr, ACTIVE_HIGH, gpio_get(GPIO_AMP_ENABLE),
|
||||||
|
"speaker enable"},
|
||||||
#if CONFIG(EC_GOOGLE_CHROMEEC)
|
#if CONFIG(EC_GOOGLE_CHROMEEC)
|
||||||
{GPIO_EC_IN_RW.addr, ACTIVE_LOW, gpio_get(GPIO_EC_IN_RW),
|
{GPIO_EC_IN_RW.addr, ACTIVE_LOW, gpio_get(GPIO_EC_IN_RW),
|
||||||
"EC in RW"},
|
"EC in RW"},
|
||||||
|
@@ -36,6 +36,18 @@ static void configure_sdhci(void)
|
|||||||
write32((void *)SDC2_TLMM_CFG_ADDR, 0x1FE4);
|
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)
|
static void mainboard_init(struct device *dev)
|
||||||
{
|
{
|
||||||
/* Configure clock for eMMC */
|
/* Configure clock for eMMC */
|
||||||
@@ -90,6 +102,7 @@ static void mainboard_init(struct device *dev)
|
|||||||
gpio_output(GPIO_FP_RST_L, 1);
|
gpio_output(GPIO_FP_RST_L, 1);
|
||||||
|
|
||||||
setup_usb();
|
setup_usb();
|
||||||
|
qi2s_configure_gpios();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mainboard_enable(struct device *dev)
|
static void mainboard_enable(struct device *dev)
|
||||||
|
Reference in New Issue
Block a user