acpi: Make acpi_device_write_dsd_gpio() public

Make sure it can be used for other driver.
At present, i2c_generic_write_gpio() is not suitable for being called
by other drivers, so delete it, add acpi_device_write_dsd_gpio() to
replace it, and make it public.

BUG=None
TEST= Build BIOS FW pass and it can be use for other driver.

Change-Id: Ifb2e60690711b39743afd455c6776c5ace863378
Signed-off-by: Jianeng Ceng <cengjianeng@huaqin.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81788
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <ericllai@google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Jianeng Ceng
2024-04-09 21:20:20 +08:00
committed by Felix Held
parent f8a46950cc
commit 01344bce1a
3 changed files with 23 additions and 17 deletions

View File

@ -39,6 +39,23 @@
#define ACPI_DSD_STORAGE_D3_UUID "5025030F-842F-4AB4-A561-99A5189762D0"
#define ACPI_DSD_STORAGE_D3_NAME "StorageD3Enable"
/* Write GPIO descriptor of DSD property */
int acpi_device_write_dsd_gpio(struct acpi_gpio *gpio, int *curr_index)
{
int ret = -1;
if (!gpio || !curr_index)
return ret;
if (gpio->pin_count == 0)
return ret;
acpi_device_write_gpio(gpio);
ret = *curr_index++;
return ret;
}
/* Write empty word value and return pointer to it */
static void *acpi_device_write_zero_len(void)
{

View File

@ -27,20 +27,6 @@ static bool i2c_generic_add_gpios_to_crs(struct drivers_i2c_generic_config *cfg)
return true;
}
static int i2c_generic_write_gpio(struct acpi_gpio *gpio, int *curr_index)
{
int ret = -1;
if (gpio->pin_count == 0)
return ret;
acpi_device_write_gpio(gpio);
ret = *curr_index;
(*curr_index)++;
return ret;
}
void i2c_generic_fill_ssdt(const struct device *dev,
void (*callback)(const struct device *dev),
struct drivers_i2c_generic_config *config)
@ -96,15 +82,15 @@ void i2c_generic_fill_ssdt(const struct device *dev,
/* Use either Interrupt() or GpioInt() */
if (config->irq_gpio.pin_count)
irq_gpio_index = i2c_generic_write_gpio(&config->irq_gpio,
irq_gpio_index = acpi_device_write_dsd_gpio(&config->irq_gpio,
&curr_index);
else
acpi_device_write_interrupt(&config->irq);
if (i2c_generic_add_gpios_to_crs(config) == true) {
reset_gpio_index = i2c_generic_write_gpio(&config->reset_gpio,
reset_gpio_index = acpi_device_write_dsd_gpio(&config->reset_gpio,
&curr_index);
enable_gpio_index = i2c_generic_write_gpio(&config->enable_gpio,
enable_gpio_index = acpi_device_write_dsd_gpio(&config->enable_gpio,
&curr_index);
}
acpigen_write_resourcetemplate_footer();

View File

@ -313,6 +313,9 @@ struct acpi_i2c {
/* Write I2cSerialBus() descriptor to SSDT AML output */
void acpi_device_write_i2c(const struct acpi_i2c *i2c);
/* Write GPIO descriptor of DSD property */
int acpi_device_write_dsd_gpio(struct acpi_gpio *gpio, int *curr_index);
/*
* ACPI SPI Bus
*/