Merge tag 'zynq-soc-for-v5.7' of https://github.com/Xilinx/linux-xlnx into arm/soc
[linux-block.git] / drivers / acpi / acpica / achware.h
CommitLineData
95857638 1/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
1da177e4
LT
2/******************************************************************************
3 *
4 * Name: achware.h -- hardware specific interfaces
5 *
800ba7c5 6 * Copyright (C) 2000 - 2020, Intel Corp.
1da177e4 7 *
95857638 8 *****************************************************************************/
1da177e4
LT
9
10#ifndef __ACHWARE_H__
11#define __ACHWARE_H__
12
50df4d8b 13/* Values for the _SST predefined method */
1da177e4 14
44f6c012
RM
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
1da177e4 20
44f6c012
RM
21/*
22 * hwacpi - high level functions
23 */
4be44fcd 24acpi_status acpi_hw_set_mode(u32 mode);
1da177e4 25
4be44fcd 26u32 acpi_hw_get_mode(void);
1da177e4 27
44f6c012
RM
28/*
29 * hwregs - ACPI Register I/O
30 */
c6b5774c
BM
31acpi_status
32acpi_hw_validate_register(struct acpi_generic_address *reg,
33 u8 max_bit_width, u64 *address);
34
8381c54f 35acpi_status acpi_hw_read(u64 *value, struct acpi_generic_address *reg);
c6b5774c 36
8381c54f 37acpi_status acpi_hw_write(u64 value, struct acpi_generic_address *reg);
c6b5774c 38
4be44fcd 39struct acpi_bit_register_info *acpi_hw_get_bit_register_info(u32 register_id);
1da177e4 40
32c9ef99
BM
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);
1da177e4 44
d30dc9ab 45acpi_status acpi_hw_register_write(u32 register_id, u32 value);
1da177e4 46
d8c71b6d 47acpi_status acpi_hw_clear_acpi_status(void);
1da177e4 48
2feec47d 49/*
70958576
BM
50 * hwsleep - sleep/wake support (Legacy sleep registers)
51 */
3f6f49c7 52acpi_status acpi_hw_legacy_sleep(u8 sleep_state);
70958576 53
3f6f49c7 54acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state);
70958576 55
3f6f49c7 56acpi_status acpi_hw_legacy_wake(u8 sleep_state);
70958576
BM
57
58/*
59 * hwesleep - sleep/wake support (Extended FADT-V5 sleep registers)
2feec47d 60 */
f99648b1 61void acpi_hw_execute_sleep_method(char *method_name, u32 integer_argument);
2feec47d 62
3f6f49c7 63acpi_status acpi_hw_extended_sleep(u8 sleep_state);
2feec47d 64
3f6f49c7 65acpi_status acpi_hw_extended_wake_prep(u8 sleep_state);
2feec47d 66
3f6f49c7 67acpi_status acpi_hw_extended_wake(u8 sleep_state);
2feec47d 68
7f071903
BM
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
44f6c012
RM
76/*
77 * hwgpe - GPE support
78 */
1d94e1e8 79u32 acpi_hw_get_gpe_register_bit(struct acpi_gpe_event_info *gpe_event_info);
e4e9a735 80
fd247447 81acpi_status
da503373 82acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action);
e38e8a07 83
1da177e4 84acpi_status
4be44fcd 85acpi_hw_disable_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
e97d6bf1 86 struct acpi_gpe_block_info *gpe_block, void *context);
1da177e4 87
4be44fcd 88acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info *gpe_event_info);
1da177e4
LT
89
90acpi_status
4be44fcd 91acpi_hw_clear_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
e97d6bf1 92 struct acpi_gpe_block_info *gpe_block, void *context);
1da177e4 93
1da177e4 94acpi_status
4be44fcd 95acpi_hw_get_gpe_status(struct acpi_gpe_event_info *gpe_event_info,
f19f1a7e 96 acpi_event_status *event_status);
1da177e4 97
4be44fcd 98acpi_status acpi_hw_disable_all_gpes(void);
1da177e4 99
4be44fcd 100acpi_status acpi_hw_enable_all_runtime_gpes(void);
1da177e4 101
4be44fcd 102acpi_status acpi_hw_enable_all_wakeup_gpes(void);
1da177e4 103
ea128834
RW
104u8 acpi_hw_check_all_gpes(void);
105
1da177e4 106acpi_status
4be44fcd 107acpi_hw_enable_runtime_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
e97d6bf1
BM
108 struct acpi_gpe_block_info *gpe_block,
109 void *context);
1da177e4 110
bd23fac3 111#ifdef ACPI_PCI_CONFIGURED
95abccb5
BM
112/*
113 * hwpci - PCI configuration support
114 */
115acpi_status
116acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id,
117 acpi_handle root_pci_device, acpi_handle pci_region);
bd23fac3
SK
118#else
119static inline acpi_status
120acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id, acpi_handle root_pci_device,
121 acpi_handle pci_region)
122{
123 return AE_SUPPORT;
124}
125#endif
95abccb5 126
4be44fcd 127#endif /* __ACHWARE_H__ */