blob: b7b39f7c3aa6e1296f627c9e950819d357cc1bfd [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __SPI_ACPI_CHIP_H__
#define __SPI_ACPI_CHIP_H__
#include <acpi/acpi_device.h>
#define MAX_GENERIC_PROPERTY_LIST 10
struct drivers_spi_acpi_config {
const char *hid; /* ACPI _HID (required) */
const char *cid; /* ACPI _CID */
const char *name; /* ACPI Device Name */
const char *desc; /* Device Description */
unsigned int uid; /* ACPI _UID */
unsigned int speed; /* Bus speed in Hz (default 1MHz) */
const char *compat_string; /* Compatible string for _HID=PRP0001 */
struct acpi_irq irq; /* Interrupt */
unsigned int wake; /* Wake GPE */
/* Use GPIO based interrupt instead of PIRQ */
struct acpi_gpio irq_gpio;
/* Does the device have a power resource? */
bool has_power_resource;
/* GPIO used to take device out of reset or to put it into reset. */
struct acpi_gpio reset_gpio;
/* Delay to be inserted after device is taken out of reset. */
unsigned int reset_delay_ms;
/* Delay to be inserted after device is put into reset. */
unsigned int reset_off_delay_ms;
/* GPIO used to enable device. */
struct acpi_gpio enable_gpio;
/* Delay to be inserted after device is enabled. */
unsigned int enable_delay_ms;
/* Delay to be inserted after device is disabled. */
unsigned int enable_off_delay_ms;
/* GPIO used to stop operation of device. */
struct acpi_gpio stop_gpio;
/* Delay to be inserted after disabling stop. */
unsigned int stop_delay_ms;
/* Delay to be inserted after enabling stop. */
unsigned int stop_off_delay_ms;
/* Generic properties for exporting device-specific data to the OS */
struct acpi_dp property_list[MAX_GENERIC_PROPERTY_LIST];
unsigned int property_count;
};
#endif /* __SPI_ACPI_CHIP_H__ */