linux/drivers/acpi/acpica/achware.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
   2/******************************************************************************
   3 *
   4 * Name: achware.h -- hardware specific interfaces
   5 *
   6 * Copyright (C) 2000 - 2020, Intel Corp.
   7 *
   8 *****************************************************************************/
   9
  10#ifndef __ACHWARE_H__
  11#define __ACHWARE_H__
  12
  13/* Values for the _SST predefined method */
  14
  15#define ACPI_SST_INDICATOR_OFF  0
  16#define ACPI_SST_WORKING        1
  17#define ACPI_SST_WAKING         2
  18#define ACPI_SST_SLEEPING       3
  19#define ACPI_SST_SLEEP_CONTEXT  4
  20
  21/*
  22 * hwacpi - high level functions
  23 */
  24acpi_status acpi_hw_set_mode(u32 mode);
  25
  26u32 acpi_hw_get_mode(void);
  27
  28/*
  29 * hwregs - ACPI Register I/O
  30 */
  31acpi_status
  32acpi_hw_validate_register(struct acpi_generic_address *reg,
  33                          u8 max_bit_width, u64 *address);
  34
  35acpi_status acpi_hw_read(u64 *value, struct acpi_generic_address *reg);
  36
  37acpi_status acpi_hw_write(u64 value, struct acpi_generic_address *reg);
  38
  39struct acpi_bit_register_info *acpi_hw_get_bit_register_info(u32 register_id);
  40
  41acpi_status acpi_hw_write_pm1_control(u32 pm1a_control, u32 pm1b_control);
  42
  43acpi_status acpi_hw_register_read(u32 register_id, u32 *return_value);
  44
  45acpi_status acpi_hw_register_write(u32 register_id, u32 value);
  46
  47acpi_status acpi_hw_clear_acpi_status(void);
  48
  49/*
  50 * hwsleep - sleep/wake support (Legacy sleep registers)
  51 */
  52acpi_status acpi_hw_legacy_sleep(u8 sleep_state);
  53
  54acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state);
  55
  56acpi_status acpi_hw_legacy_wake(u8 sleep_state);
  57
  58/*
  59 * hwesleep - sleep/wake support (Extended FADT-V5 sleep registers)
  60 */
  61void acpi_hw_execute_sleep_method(char *method_name, u32 integer_argument);
  62
  63acpi_status acpi_hw_extended_sleep(u8 sleep_state);
  64
  65acpi_status acpi_hw_extended_wake_prep(u8 sleep_state);
  66
  67acpi_status acpi_hw_extended_wake(u8 sleep_state);
  68
  69/*
  70 * hwvalid - Port I/O with validation
  71 */
  72acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width);
  73
  74acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width);
  75
  76acpi_status acpi_hw_validate_io_block(u64 address, u32 bit_width, u32 count);
  77
  78/*
  79 * hwgpe - GPE support
  80 */
  81acpi_status acpi_hw_gpe_read(u64 *value, struct acpi_gpe_address *reg);
  82
  83acpi_status acpi_hw_gpe_write(u64 value, struct acpi_gpe_address *reg);
  84
  85u32 acpi_hw_get_gpe_register_bit(struct acpi_gpe_event_info *gpe_event_info);
  86
  87acpi_status
  88acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action);
  89
  90acpi_status
  91acpi_hw_disable_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
  92                          struct acpi_gpe_block_info *gpe_block, void *context);
  93
  94acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info *gpe_event_info);
  95
  96acpi_status
  97acpi_hw_clear_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
  98                        struct acpi_gpe_block_info *gpe_block, void *context);
  99
 100acpi_status
 101acpi_hw_get_gpe_status(struct acpi_gpe_event_info *gpe_event_info,
 102                       acpi_event_status *event_status);
 103
 104acpi_status acpi_hw_disable_all_gpes(void);
 105
 106acpi_status acpi_hw_enable_all_runtime_gpes(void);
 107
 108acpi_status acpi_hw_enable_all_wakeup_gpes(void);
 109
 110u8 acpi_hw_check_all_gpes(acpi_handle gpe_skip_device, u32 gpe_skip_number);
 111
 112acpi_status
 113acpi_hw_enable_runtime_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
 114                                 struct acpi_gpe_block_info *gpe_block,
 115                                 void *context);
 116
 117#ifdef ACPI_PCI_CONFIGURED
 118/*
 119 * hwpci - PCI configuration support
 120 */
 121acpi_status
 122acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id,
 123                      acpi_handle root_pci_device, acpi_handle pci_region);
 124#else
 125static inline acpi_status
 126acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id, acpi_handle root_pci_device,
 127                      acpi_handle pci_region)
 128{
 129        return AE_SUPPORT;
 130}
 131#endif
 132
 133#endif                          /* __ACHWARE_H__ */
 134