trogdor: mainboard reference all QUPv3 FW drivers
Change-Id: I8ff5dd63fac28ffa558aec71e79a6de87d7885e0 Signed-off-by: T Michael Turney <mturney@codeaurora.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37306 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
60108fd89d
commit
9bf0dd80a0
|
@ -2,8 +2,12 @@
|
||||||
|
|
||||||
#include <bootblock_common.h>
|
#include <bootblock_common.h>
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
|
#include <soc/qcom_qup_se.h>
|
||||||
|
#include <soc/qupv3_spi.h>
|
||||||
|
|
||||||
void bootblock_mainboard_init(void)
|
void bootblock_mainboard_init(void)
|
||||||
{
|
{
|
||||||
setup_chromeos_gpios();
|
setup_chromeos_gpios();
|
||||||
|
qup_spi_init(QUPV3_1_SE0, 1010 * KHz); /* H1 SPI */
|
||||||
|
qup_spi_init(QUPV3_0_SE0, 1010 * KHz); /* EC SPI */
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <device/mmio.h>
|
#include <soc/qupv3_config.h>
|
||||||
#include <gpio.h>
|
|
||||||
#include <timestamp.h>
|
|
||||||
#include <soc/usb.h>
|
#include <soc/usb.h>
|
||||||
|
|
||||||
static struct usb_board_data usb0_board_data = {
|
static struct usb_board_data usb0_board_data = {
|
||||||
|
@ -17,9 +15,44 @@ static void setup_usb(void)
|
||||||
setup_usb_host0(&usb0_board_data);
|
setup_usb_host0(&usb0_board_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void qi2s_configure_gpios(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
gpio_configure(GPIO(49), GPIO49_FUNC_MI2S_1_SCK,
|
||||||
|
GPIO_PULL_UP, GPIO_8MA, GPIO_OUTPUT);
|
||||||
|
|
||||||
|
gpio_configure(GPIO(50), GPIO50_FUNC_MI2S_1_WS,
|
||||||
|
GPIO_PULL_UP, GPIO_8MA, GPIO_OUTPUT);
|
||||||
|
|
||||||
|
gpio_configure(GPIO(51), GPIO51_FUNC_MI2S_1_DATA0,
|
||||||
|
GPIO_PULL_UP, GPIO_8MA, GPIO_OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void load_qup_fw(void)
|
||||||
|
{
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_0_SE1, SE_PROTOCOL_SPI, MIXED); /* ESIM SPI */
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_0_SE2, SE_PROTOCOL_I2C, MIXED); /* EDP Bridge I2C */
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_0_SE3, SE_PROTOCOL_UART, FIFO); /* BT UART */
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_0_SE4, SE_PROTOCOL_I2C, MIXED); /* Pen Detect I2C */
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_0_SE5, SE_PROTOCOL_I2C, MIXED); /* SAR I2C */
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_1_SE1, SE_PROTOCOL_I2C, MIXED); /* Trackpad I2C */
|
||||||
|
/*
|
||||||
|
* When coreboot firmware disables serial output,
|
||||||
|
* we still need to load console UART QUP FW for OS.
|
||||||
|
*/
|
||||||
|
if (!CONFIG(CONSOLE_SERIAL))
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_1_SE2, SE_PROTOCOL_UART, FIFO);
|
||||||
|
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_1_SE3, SE_PROTOCOL_I2C, MIXED); /* Speaker Amps I2C */
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_1_SE4, SE_PROTOCOL_SPI, MIXED); /* Fingerprint SPI */
|
||||||
|
qupv3_se_fw_load_and_init(QUPV3_1_SE5, SE_PROTOCOL_I2C, MIXED); /* Codec I2C */
|
||||||
|
}
|
||||||
|
|
||||||
static void mainboard_init(struct device *dev)
|
static void mainboard_init(struct device *dev)
|
||||||
{
|
{
|
||||||
setup_usb();
|
setup_usb();
|
||||||
|
qi2s_configure_gpios();
|
||||||
|
load_qup_fw();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mainboard_enable(struct device *dev)
|
static void mainboard_enable(struct device *dev)
|
||||||
|
|
Loading…
Reference in New Issue