1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #ifndef __SPI_ACPI_CHIP_H__ 4 #define __SPI_ACPI_CHIP_H__ 5 6 #include <acpi/acpi_device.h> 7 8 #define MAX_GENERIC_PROPERTY_LIST 10 9 10 struct drivers_spi_acpi_config { 11 const char *hid; /* ACPI _HID (required) */ 12 const char *cid; /* ACPI _CID */ 13 const char *name; /* ACPI Device Name */ 14 const char *desc; /* Device Description */ 15 unsigned int uid; /* ACPI _UID */ 16 unsigned int speed; /* Bus speed in Hz (default 1MHz) */ 17 const char *compat_string; /* Compatible string for _HID=PRP0001 */ 18 struct acpi_irq irq; /* Interrupt */ 19 unsigned int wake; /* Wake GPE */ 20 21 /* Use GPIO based interrupt instead of PIRQ */ 22 struct acpi_gpio irq_gpio; 23 24 /* Does the device have a power resource? */ 25 bool has_power_resource; 26 27 /* GPIO used to take device out of reset or to put it into reset. */ 28 struct acpi_gpio reset_gpio; 29 /* Delay to be inserted after device is taken out of reset. */ 30 unsigned int reset_delay_ms; 31 /* Delay to be inserted after device is put into reset. */ 32 unsigned int reset_off_delay_ms; 33 34 /* GPIO used to enable device. */ 35 struct acpi_gpio enable_gpio; 36 /* Delay to be inserted after device is enabled. */ 37 unsigned int enable_delay_ms; 38 /* Delay to be inserted after device is disabled. */ 39 unsigned int enable_off_delay_ms; 40 41 /* GPIO used to stop operation of device. */ 42 struct acpi_gpio stop_gpio; 43 /* Delay to be inserted after disabling stop. */ 44 unsigned int stop_delay_ms; 45 /* Delay to be inserted after enabling stop. */ 46 unsigned int stop_off_delay_ms; 47 /* Generic properties for exporting device-specific data to the OS */ 48 struct acpi_dp property_list[MAX_GENERIC_PROPERTY_LIST]; 49 unsigned int property_count; 50 }; 51 52 #endif /* __SPI_ACPI_CHIP_H__ */ 53