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:
		@@ -39,6 +39,23 @@
 | 
				
			|||||||
#define ACPI_DSD_STORAGE_D3_UUID "5025030F-842F-4AB4-A561-99A5189762D0"
 | 
					#define ACPI_DSD_STORAGE_D3_UUID "5025030F-842F-4AB4-A561-99A5189762D0"
 | 
				
			||||||
#define ACPI_DSD_STORAGE_D3_NAME "StorageD3Enable"
 | 
					#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 */
 | 
					/* Write empty word value and return pointer to it */
 | 
				
			||||||
static void *acpi_device_write_zero_len(void)
 | 
					static void *acpi_device_write_zero_len(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,20 +27,6 @@ static bool i2c_generic_add_gpios_to_crs(struct drivers_i2c_generic_config *cfg)
 | 
				
			|||||||
	return true;
 | 
						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 i2c_generic_fill_ssdt(const struct device *dev,
 | 
				
			||||||
			void (*callback)(const struct device *dev),
 | 
								void (*callback)(const struct device *dev),
 | 
				
			||||||
			struct drivers_i2c_generic_config *config)
 | 
								struct drivers_i2c_generic_config *config)
 | 
				
			||||||
@@ -96,15 +82,15 @@ void i2c_generic_fill_ssdt(const struct device *dev,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	/* Use either Interrupt() or GpioInt() */
 | 
						/* Use either Interrupt() or GpioInt() */
 | 
				
			||||||
	if (config->irq_gpio.pin_count)
 | 
						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);
 | 
												&curr_index);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		acpi_device_write_interrupt(&config->irq);
 | 
							acpi_device_write_interrupt(&config->irq);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (i2c_generic_add_gpios_to_crs(config) == true) {
 | 
						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);
 | 
												&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);
 | 
												&curr_index);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	acpigen_write_resourcetemplate_footer();
 | 
						acpigen_write_resourcetemplate_footer();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -313,6 +313,9 @@ struct acpi_i2c {
 | 
				
			|||||||
/* Write I2cSerialBus() descriptor to SSDT AML output */
 | 
					/* Write I2cSerialBus() descriptor to SSDT AML output */
 | 
				
			||||||
void acpi_device_write_i2c(const struct acpi_i2c *i2c);
 | 
					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
 | 
					 * ACPI SPI Bus
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user