1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 3 #ifndef __DRIVERS_UART_ACPI_H__ 4 #define __DRIVERS_UART_ACPI_H__ 5 6 #include <acpi/acpi_device.h> 7 8 struct drivers_uart_acpi_config { 9 const char *hid; /* ACPI _HID (required) */ 10 const char *cid; /* ACPI _CID */ 11 const char *name; /* ACPI Device Name */ 12 const char *desc; /* Device Description */ 13 unsigned int uid; /* ACPI _UID */ 14 unsigned int wake; /* Wake GPE */ 15 const char *compat_string; /* Compatible string for _HID=PRP0001 */ 16 struct acpi_irq irq; /* PIRQ */ 17 struct acpi_gpio irq_gpio; /* GPIO to be used instead of PIRQ */ 18 struct acpi_uart uart; /* UART device information */ 19 20 /* Does the device have a power resource? */ 21 bool has_power_resource; 22 23 /* GPIO used to take device out of reset or to put it into reset. */ 24 struct acpi_gpio reset_gpio; 25 /* Delay to be inserted after device is taken out of reset. */ 26 unsigned int reset_delay_ms; 27 /* Delay to be inserted after device is put into reset. */ 28 unsigned int reset_off_delay_ms; 29 30 /* GPIO used to enable device. */ 31 struct acpi_gpio enable_gpio; 32 /* Delay to be inserted after device is enabled. */ 33 unsigned int enable_delay_ms; 34 /* Delay to be inserted after device is disabled. */ 35 unsigned int enable_off_delay_ms; 36 37 /* GPIO used to stop operation of device. */ 38 struct acpi_gpio stop_gpio; 39 /* Delay to be inserted after disabling stop. */ 40 unsigned int stop_delay_ms; 41 /* Delay to be inserted after enabling stop. */ 42 unsigned int stop_off_delay_ms; 43 }; 44 45 #endif /* __DRIVERS_UART_ACPI_H__ */ 46