Commit | Line | Data |
---|---|---|
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 | 24 | acpi_status acpi_hw_set_mode(u32 mode); |
1da177e4 | 25 | |
4be44fcd | 26 | u32 acpi_hw_get_mode(void); |
1da177e4 | 27 | |
44f6c012 RM |
28 | /* |
29 | * hwregs - ACPI Register I/O | |
30 | */ | |
c6b5774c BM |
31 | acpi_status |
32 | acpi_hw_validate_register(struct acpi_generic_address *reg, | |
33 | u8 max_bit_width, u64 *address); | |
34 | ||
8381c54f | 35 | acpi_status acpi_hw_read(u64 *value, struct acpi_generic_address *reg); |
c6b5774c | 36 | |
8381c54f | 37 | acpi_status acpi_hw_write(u64 value, struct acpi_generic_address *reg); |
c6b5774c | 38 | |
4be44fcd | 39 | struct acpi_bit_register_info *acpi_hw_get_bit_register_info(u32 register_id); |
1da177e4 | 40 | |
32c9ef99 BM |
41 | acpi_status acpi_hw_write_pm1_control(u32 pm1a_control, u32 pm1b_control); |
42 | ||
43 | acpi_status acpi_hw_register_read(u32 register_id, u32 *return_value); | |
1da177e4 | 44 | |
d30dc9ab | 45 | acpi_status acpi_hw_register_write(u32 register_id, u32 value); |
1da177e4 | 46 | |
d8c71b6d | 47 | acpi_status acpi_hw_clear_acpi_status(void); |
1da177e4 | 48 | |
2feec47d | 49 | /* |
70958576 BM |
50 | * hwsleep - sleep/wake support (Legacy sleep registers) |
51 | */ | |
3f6f49c7 | 52 | acpi_status acpi_hw_legacy_sleep(u8 sleep_state); |
70958576 | 53 | |
3f6f49c7 | 54 | acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state); |
70958576 | 55 | |
3f6f49c7 | 56 | acpi_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 | 61 | void acpi_hw_execute_sleep_method(char *method_name, u32 integer_argument); |
2feec47d | 62 | |
3f6f49c7 | 63 | acpi_status acpi_hw_extended_sleep(u8 sleep_state); |
2feec47d | 64 | |
3f6f49c7 | 65 | acpi_status acpi_hw_extended_wake_prep(u8 sleep_state); |
2feec47d | 66 | |
3f6f49c7 | 67 | acpi_status acpi_hw_extended_wake(u8 sleep_state); |
2feec47d | 68 | |
7f071903 BM |
69 | /* |
70 | * hwvalid - Port I/O with validation | |
71 | */ | |
72 | acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width); | |
73 | ||
74 | acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width); | |
75 | ||
44f6c012 RM |
76 | /* |
77 | * hwgpe - GPE support | |
78 | */ | |
1d94e1e8 | 79 | u32 acpi_hw_get_gpe_register_bit(struct acpi_gpe_event_info *gpe_event_info); |
e4e9a735 | 80 | |
fd247447 | 81 | acpi_status |
da503373 | 82 | acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action); |
e38e8a07 | 83 | |
1da177e4 | 84 | acpi_status |
4be44fcd | 85 | acpi_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 | 88 | acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info *gpe_event_info); |
1da177e4 LT |
89 | |
90 | acpi_status | |
4be44fcd | 91 | acpi_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 | 94 | acpi_status |
4be44fcd | 95 | acpi_hw_get_gpe_status(struct acpi_gpe_event_info *gpe_event_info, |
f19f1a7e | 96 | acpi_event_status *event_status); |
1da177e4 | 97 | |
4be44fcd | 98 | acpi_status acpi_hw_disable_all_gpes(void); |
1da177e4 | 99 | |
4be44fcd | 100 | acpi_status acpi_hw_enable_all_runtime_gpes(void); |
1da177e4 | 101 | |
4be44fcd | 102 | acpi_status acpi_hw_enable_all_wakeup_gpes(void); |
1da177e4 | 103 | |
ea128834 RW |
104 | u8 acpi_hw_check_all_gpes(void); |
105 | ||
1da177e4 | 106 | acpi_status |
4be44fcd | 107 | acpi_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 | */ | |
115 | acpi_status | |
116 | acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id, | |
117 | acpi_handle root_pci_device, acpi_handle pci_region); | |
bd23fac3 SK |
118 | #else |
119 | static inline acpi_status | |
120 | acpi_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__ */ |