summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthikeyan Ramasubramanian <kramasub@google.com>2020-10-01 10:22:57 -0600
committerPatrick Georgi <pgeorgi@google.com>2020-10-19 06:58:03 +0000
commit94ce8c3b3d1b7997dbad020eb955ea3b3038a5f2 (patch)
treee832087c71f659312081a0cf315662ad88ae734b
parentbf089d2a6286eae4e25b7cb51e92633ae39252d4 (diff)
mb/google/dedede/var/waddledee: Enable GPIO based I2C Multiplexer
The camera sensor component chosen for UFC and WFC have an address conflict. Resolve it by enabling GPIO based I2C Multiplexer. Also configure the GPIO that is used as select line. BUG=b:169444894 TEST=Build and boot waddledee to OS. Ensure that the ACPI identifiers are added for I2C devices multiplexed using I2C MUX under the appropriate scope. Change-Id: I9b09e063b4377587019ade9e6e194f4aadcdd312 Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/45912 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r--src/mainboard/google/dedede/Kconfig1
-rw-r--r--src/mainboard/google/dedede/variants/waddledee/Makefile.inc1
-rw-r--r--src/mainboard/google/dedede/variants/waddledee/gpio.c16
-rw-r--r--src/mainboard/google/dedede/variants/waddledee/overridetree.cb14
4 files changed, 32 insertions, 0 deletions
diff --git a/src/mainboard/google/dedede/Kconfig b/src/mainboard/google/dedede/Kconfig
index 2892dd16f0..377702da45 100644
--- a/src/mainboard/google/dedede/Kconfig
+++ b/src/mainboard/google/dedede/Kconfig
@@ -4,6 +4,7 @@ config BOARD_GOOGLE_BASEBOARD_DEDEDE
select CR50_USE_LONG_INTERRUPT_PULSES
select DPTF_USE_EISA_HID
select DRIVERS_I2C_GENERIC
+ select DRIVERS_I2C_GPIO_MUX
select DRIVERS_I2C_HID
select DRIVERS_INTEL_DPTF
select DRIVERS_SPI_ACPI
diff --git a/src/mainboard/google/dedede/variants/waddledee/Makefile.inc b/src/mainboard/google/dedede/variants/waddledee/Makefile.inc
index eda535c992..93f34f81e0 100644
--- a/src/mainboard/google/dedede/variants/waddledee/Makefile.inc
+++ b/src/mainboard/google/dedede/variants/waddledee/Makefile.inc
@@ -2,4 +2,5 @@
romstage-y += memory.c
+ramstage-y += gpio.c
ramstage-y += variant.c
diff --git a/src/mainboard/google/dedede/variants/waddledee/gpio.c b/src/mainboard/google/dedede/variants/waddledee/gpio.c
new file mode 100644
index 0000000000..0905e8f217
--- /dev/null
+++ b/src/mainboard/google/dedede/variants/waddledee/gpio.c
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <baseboard/gpio.h>
+#include <baseboard/variants.h>
+
+/* Pad configuration in ramstage*/
+static const struct pad_config gpio_table[] = {
+ /* E5 : AP_SUB_IO_2 */
+ PAD_CFG_GPO(GPP_E5, 0, PLTRST),
+};
+
+const struct pad_config *variant_override_gpio_table(size_t *num)
+{
+ *num = ARRAY_SIZE(gpio_table);
+ return gpio_table;
+}
diff --git a/src/mainboard/google/dedede/variants/waddledee/overridetree.cb b/src/mainboard/google/dedede/variants/waddledee/overridetree.cb
index 22a08a060e..b67b8702c6 100644
--- a/src/mainboard/google/dedede/variants/waddledee/overridetree.cb
+++ b/src/mainboard/google/dedede/variants/waddledee/overridetree.cb
@@ -119,6 +119,20 @@ chip soc/intel/jasperlake
device i2c 0x5d on end
end
end # I2C 2
+ device pci 15.3 on
+ chip drivers/i2c/gpiomux/mux
+ register "mux_gpio_count" = "1"
+ register "mux_gpio[0]" = "ACPI_GPIO_OUTPUT(GPP_E5)"
+ device generic 0 on
+ chip drivers/i2c/gpiomux/bus
+ device generic 0 on end # I2C Mux Bus 0
+ end
+ chip drivers/i2c/gpiomux/bus
+ device generic 1 on end # I2C Mux Bus 1
+ end
+ end # I2C MUX
+ end
+ end # I2C 3
device pci 19.0 on
chip drivers/i2c/generic
register "hid" = ""10EC5682""