Amanda Hwang has uploaded this change for review. ( https://review.coreboot.org/25148
Change subject: mb/google/poppy : Config GPIO for DMIC by different sku id ......................................................................
mb/google/poppy : Config GPIO for DMIC by different sku id
BUG=b:74177699 BRANCH=poppy TEST=Verify audio recorder funtion by different SKU ID
Change-Id: Ic6570703f6ab4a1b03cbba8370fc0f597ab6bcf2 Signed-off-by: amanda_hwang amanda_hwang@compal.corp-partner.google.com --- M src/mainboard/google/poppy/ramstage.c M src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h M src/mainboard/google/poppy/variants/nami/mainboard.c 3 files changed, 37 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/48/25148/1
diff --git a/src/mainboard/google/poppy/ramstage.c b/src/mainboard/google/poppy/ramstage.c index 5ef2451..faf375c 100644 --- a/src/mainboard/google/poppy/ramstage.c +++ b/src/mainboard/google/poppy/ramstage.c @@ -25,9 +25,19 @@ variant_devtree_update(); pads = variant_gpio_table(&num); gpio_configure_pads(pads, num); + pads = variant_sku_gpio_table(&num); + gpio_configure_pads(pads, num); }
void __attribute__((weak)) variant_devtree_update(void) { /* Override dev tree settings per board */ } + +/* override specific gpio by sku id */ +const struct pad_config __attribute__((weak)) +*variant_sku_gpio_table(size_t *num) +{ + *num = 0; + return NULL; +} diff --git a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h index e051c73..9a5bf26 100644 --- a/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/poppy/variants/baseboard/include/baseboard/variants.h @@ -28,6 +28,7 @@ const struct pad_config *variant_early_gpio_table(size_t *num);
const struct cros_gpio *variant_cros_gpios(size_t *num); +const struct pad_config *variant_sku_gpio_table(size_t *num);
enum memory_type { MEMORY_LPDDR3, diff --git a/src/mainboard/google/poppy/variants/nami/mainboard.c b/src/mainboard/google/poppy/variants/nami/mainboard.c index e2bc895..4a1b7bc 100644 --- a/src/mainboard/google/poppy/variants/nami/mainboard.c +++ b/src/mainboard/google/poppy/variants/nami/mainboard.c @@ -40,6 +40,11 @@ return sku_id; }
+static const struct pad_config vayne_gpio_tables[] = { + /* Disable DMIC on rear camera */ + PAD_CFG_NC(GPP_D17),/* SOC_DMIC_CLK1 */ +}; + void variant_devtree_update(void) { /* Override dev tree settings per board */ @@ -55,6 +60,27 @@ } }
+const struct pad_config *variant_sku_gpio_table(size_t *num) +{ + uint16_t sku_id = board_sku_id(); + const struct pad_config *board_gpio_tables; + switch (sku_id) { + case SKU_1_VAYNE: + *num = ARRAY_SIZE(vayne_gpio_tables); + board_gpio_tables = vayne_gpio_tables; + break; + case SKU_2_VAYNE: + *num = ARRAY_SIZE(vayne_gpio_tables); + board_gpio_tables = vayne_gpio_tables; + break; + default: + *num = 0; + board_gpio_tables = NULL; + break; + } + return board_gpio_tables; +} + const char *smbios_mainboard_sku(void) { static char sku_str[9]; /* sku{0..65535} (basically up to FFFF) */