google/kukui: Support sound in boot process
Configure and enable GPIO for speaker amp max98357a. BUG=b:117254418 TEST=Build pass and verified on kukui p1 board BRANCH=None Change-Id: I97655702dff402245326d2eff71fae0e336df9f5 Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/32459 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
committed by
Patrick Georgi
parent
3c0d23b6ab
commit
30bc9f415d
@@ -27,6 +27,7 @@ void setup_chromeos_gpios(void)
|
|||||||
gpio_input_pullup(EC_IRQ);
|
gpio_input_pullup(EC_IRQ);
|
||||||
gpio_input_pullup(CR50_IRQ);
|
gpio_input_pullup(CR50_IRQ);
|
||||||
gpio_output(GPIO_RESET, 0);
|
gpio_output(GPIO_RESET, 0);
|
||||||
|
gpio_output(GPIO_EN_SPK_AMP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
void fill_lb_gpios(struct lb_gpios *gpios)
|
||||||
@@ -38,6 +39,7 @@ void fill_lb_gpios(struct lb_gpios *gpios)
|
|||||||
{EC_IN_RW.id, ACTIVE_HIGH, -1, "EC in RW"},
|
{EC_IN_RW.id, ACTIVE_HIGH, -1, "EC in RW"},
|
||||||
{EC_IRQ.id, ACTIVE_LOW, -1, "EC interrupt"},
|
{EC_IRQ.id, ACTIVE_LOW, -1, "EC interrupt"},
|
||||||
{CR50_IRQ.id, ACTIVE_HIGH, -1, "TPM interrupt"},
|
{CR50_IRQ.id, ACTIVE_HIGH, -1, "TPM interrupt"},
|
||||||
|
{GPIO_EN_SPK_AMP.id, ACTIVE_HIGH, -1, "speaker enable"},
|
||||||
};
|
};
|
||||||
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
#define EC_IN_RW GPIO(PERIPHERAL_EN14)
|
#define EC_IN_RW GPIO(PERIPHERAL_EN14)
|
||||||
#define CR50_IRQ GPIO(PERIPHERAL_EN3)
|
#define CR50_IRQ GPIO(PERIPHERAL_EN3)
|
||||||
#define GPIO_RESET GPIO(PERIPHERAL_EN8)
|
#define GPIO_RESET GPIO(PERIPHERAL_EN8)
|
||||||
|
#define GPIO_EN_SPK_AMP GPIO(PERIPHERAL_EN12)
|
||||||
|
|
||||||
void setup_chromeos_gpios(void);
|
void setup_chromeos_gpios(void);
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <soc/gpio.h>
|
#include <soc/gpio.h>
|
||||||
#include <soc/mmu_operations.h>
|
#include <soc/mmu_operations.h>
|
||||||
|
#include <soc/mtcmos.h>
|
||||||
#include <soc/usb.h>
|
#include <soc/usb.h>
|
||||||
|
|
||||||
static void configure_emmc(void)
|
static void configure_emmc(void)
|
||||||
@@ -37,10 +38,22 @@ static void configure_usb(void)
|
|||||||
setup_usb_host();
|
setup_usb_host();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void configure_audio(void)
|
||||||
|
{
|
||||||
|
/* Audio PWR*/
|
||||||
|
mtcmos_audio_power_on();
|
||||||
|
|
||||||
|
/* SoC I2S */
|
||||||
|
gpio_set_mode(GPIO(CAM_RST0), PAD_CAM_RST0_FUNC_I2S2_LRCK);
|
||||||
|
gpio_set_mode(GPIO(CAM_PDN1), PAD_CAM_PDN1_FUNC_I2S2_BCK);
|
||||||
|
gpio_set_mode(GPIO(CAM_PDN0), PAD_CAM_PDN0_FUNC_I2S2_MCK);
|
||||||
|
gpio_set_mode(GPIO(EINT3), PAD_EINT3_FUNC_I2S3_DO);
|
||||||
|
}
|
||||||
static void mainboard_init(struct device *dev)
|
static void mainboard_init(struct device *dev)
|
||||||
{
|
{
|
||||||
configure_emmc();
|
configure_emmc();
|
||||||
configure_usb();
|
configure_usb();
|
||||||
|
configure_audio();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mainboard_enable(struct device *dev)
|
static void mainboard_enable(struct device *dev)
|
||||||
|
Reference in New Issue
Block a user