drivers/usb/acpi: acpi_power_res_params: Add use_gpio_for_status

Add the member `use_gpio_for_status` to the structure
`drivers_usb_acpi_config`, so the `devicetree.cb` can specify it.

This field is then used to initialize the corresponding field in the
structure `acpi_power_res_params` in `usb_acpi_fill_ssdt_generator()`.

The member `acpi_power_res_params::use_gpio_for_status()` is already
being used by `acpi_device_add_power_res()` to determine which version
of the `_STA()` method to output.

BRANCH=None
BUG=b:225022810
TEST=Dump SSDT table for guybrush

Signed-off-by: Tim Van Patten <timvp@google.com>
Change-Id: I69eb5f1ad79f3b2980f43dcf4a36585fca198ec9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63558
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
diff --git a/src/drivers/usb/acpi/chip.h b/src/drivers/usb/acpi/chip.h
index 41481f1..4adffcf 100644
--- a/src/drivers/usb/acpi/chip.h
+++ b/src/drivers/usb/acpi/chip.h
@@ -66,6 +66,12 @@
 	 * E.g. On a mic: if it is one, it is recording white-noise.
 	 */
 	struct acpi_gpio privacy_gpio;
+
+	/* Write a _STA method that uses the state of the GPIOs to determine if
+	 * the PowerResource is ON or OFF. If this is false, the _STA method
+	 * will always return ON.
+	 */
+	bool use_gpio_for_status;
 };
 
 /* Method to get PLD structure from USB device */
diff --git a/src/drivers/usb/acpi/usb_acpi.c b/src/drivers/usb/acpi/usb_acpi.c
index fb9f7f1..f72129c 100644
--- a/src/drivers/usb/acpi/usb_acpi.c
+++ b/src/drivers/usb/acpi/usb_acpi.c
@@ -95,7 +95,8 @@
 			config->enable_off_delay_ms,
 			NULL,
 			0,
-			0
+			0,
+			config->use_gpio_for_status
 		};
 		acpi_device_add_power_res(&power_res_params);
 	}