From 69a067a9d62c8ec25dfa1da0410d1b78871e6531 Mon Sep 17 00:00:00 2001 From: Rui Zhou Date: Tue, 20 May 2025 16:30:01 +0800 Subject: [PATCH] mb/google/skywalker: Add RT1019 support for beep sound Derive the audio amplifier from FW_CONFIG, and set up I2C and I2S for RT1019.RT1019 and RT9123 use the same GPIOs on the Skywalker reference design, so the same function is used to improve code reusability. Also pass the corresponding GPIO to the payload. BUG=b:417083722 BRANCH=none TEST=Build pass and test with Depthcharge change: https://chromium-review.googlesource.com/c/chromiumos/platform/depthcharge/+/6437675 Check audio cmd in depthcharge with: firmware-shell: AUDIO CMD=audio 500 100 1 Change-Id: I512cd5c8635d08c6b6c54f04d11bf87c64d1b843 Signed-off-by: Rui Zhou Reviewed-on: https://review.coreboot.org/c/coreboot/+/87887 Tested-by: build bot (Jenkins) Reviewed-by: Yidi Lin Reviewed-by: Yu-Ping Wu --- src/mainboard/google/skywalker/chromeos.c | 5 +++++ src/mainboard/google/skywalker/devicetree.cb | 1 + src/mainboard/google/skywalker/mainboard.c | 7 ++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/mainboard/google/skywalker/chromeos.c b/src/mainboard/google/skywalker/chromeos.c index 36be542606..700d815c68 100644 --- a/src/mainboard/google/skywalker/chromeos.c +++ b/src/mainboard/google/skywalker/chromeos.c @@ -56,6 +56,11 @@ void fill_lb_gpios(struct lb_gpios *gpios) {GPIO_EN_SPKR.id, ACTIVE_HIGH, -1, "rt9123_spk_en"}, }; lb_add_gpios(gpios, rt9123_gpios, ARRAY_SIZE(rt9123_gpios)); + } else if (fw_config_probe(FW_CONFIG(AUDIO_AMP, AMP_RT1019))) { + struct lb_gpio rt1019_gpios[] = { + {GPIO_EN_SPKR.id, ACTIVE_HIGH, -1, "rt1019_spk_en"}, + }; + lb_add_gpios(gpios, rt1019_gpios, ARRAY_SIZE(rt1019_gpios)); } else if (fw_config_probe(FW_CONFIG(AUDIO_AMP, AMP_ALC5645))) { struct lb_gpio alc5645_gpios[] = { {GPIO_EN_SPKR.id, ACTIVE_HIGH, -1, "alc5645_spk_en"}, diff --git a/src/mainboard/google/skywalker/devicetree.cb b/src/mainboard/google/skywalker/devicetree.cb index bb54417867..92f9c5d9e3 100644 --- a/src/mainboard/google/skywalker/devicetree.cb +++ b/src/mainboard/google/skywalker/devicetree.cb @@ -7,6 +7,7 @@ end fw_config field AUDIO_AMP 25 27 option AMP_RT9123 0 + option AMP_RT1019 1 option AMP_ALC5645 3 end end diff --git a/src/mainboard/google/skywalker/mainboard.c b/src/mainboard/google/skywalker/mainboard.c index bd1829904a..652d81253f 100644 --- a/src/mainboard/google/skywalker/mainboard.c +++ b/src/mainboard/google/skywalker/mainboard.c @@ -17,7 +17,7 @@ #define AFE_SE_SECURE_CON1 (AUDIO_BASE + 0x5634) -static void configure_rt9123(void) +static void configure_rt9123_rt1019(void) { /* SoC I2S */ gpio_set_mode(GPIO_I2SOUT1_BCK, GPIO_FUNC(DMIC0_DAT0, I2SOUT1_BCK)); @@ -49,8 +49,9 @@ static void configure_audio(void) /* Switch to normal mode */ write32p(AFE_SE_SECURE_CON1, 0x0); - if (fw_config_probe(FW_CONFIG(AUDIO_AMP, AMP_RT9123))) - configure_rt9123(); + if (fw_config_probe(FW_CONFIG(AUDIO_AMP, AMP_RT9123)) || + fw_config_probe(FW_CONFIG(AUDIO_AMP, AMP_RT1019))) + configure_rt9123_rt1019(); else if (fw_config_probe(FW_CONFIG(AUDIO_AMP, AMP_ALC5645))) configure_alc5645(); else