162306a36Sopenharmony_ci// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 262306a36Sopenharmony_ci/******************************************************************************* 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Module Name: rsserial - GPIO/serial_bus resource descriptors 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci ******************************************************************************/ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <acpi/acpi.h> 962306a36Sopenharmony_ci#include "accommon.h" 1062306a36Sopenharmony_ci#include "acresrc.h" 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#define _COMPONENT ACPI_RESOURCES 1362306a36Sopenharmony_ciACPI_MODULE_NAME("rsserial") 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/******************************************************************************* 1662306a36Sopenharmony_ci * 1762306a36Sopenharmony_ci * acpi_rs_convert_gpio 1862306a36Sopenharmony_ci * 1962306a36Sopenharmony_ci ******************************************************************************/ 2062306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_gpio[18] = { 2162306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_GPIO, 2262306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_gpio), 2362306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_gpio)}, 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_GPIO, 2662306a36Sopenharmony_ci sizeof(struct aml_resource_gpio), 2762306a36Sopenharmony_ci 0}, 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci /* 3062306a36Sopenharmony_ci * These fields are contiguous in both the source and destination: 3162306a36Sopenharmony_ci * revision_id 3262306a36Sopenharmony_ci * connection_type 3362306a36Sopenharmony_ci */ 3462306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.revision_id), 3562306a36Sopenharmony_ci AML_OFFSET(gpio.revision_id), 3662306a36Sopenharmony_ci 2}, 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.producer_consumer), 3962306a36Sopenharmony_ci AML_OFFSET(gpio.flags), 4062306a36Sopenharmony_ci 0}, 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.shareable), 4362306a36Sopenharmony_ci AML_OFFSET(gpio.int_flags), 4462306a36Sopenharmony_ci 3}, 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.wake_capable), 4762306a36Sopenharmony_ci AML_OFFSET(gpio.int_flags), 4862306a36Sopenharmony_ci 4}, 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.gpio.io_restriction), 5162306a36Sopenharmony_ci AML_OFFSET(gpio.int_flags), 5262306a36Sopenharmony_ci 0}, 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.gpio.triggering), 5562306a36Sopenharmony_ci AML_OFFSET(gpio.int_flags), 5662306a36Sopenharmony_ci 0}, 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.gpio.polarity), 5962306a36Sopenharmony_ci AML_OFFSET(gpio.int_flags), 6062306a36Sopenharmony_ci 1}, 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.pin_config), 6362306a36Sopenharmony_ci AML_OFFSET(gpio.pin_config), 6462306a36Sopenharmony_ci 1}, 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci /* 6762306a36Sopenharmony_ci * These fields are contiguous in both the source and destination: 6862306a36Sopenharmony_ci * drive_strength 6962306a36Sopenharmony_ci * debounce_timeout 7062306a36Sopenharmony_ci */ 7162306a36Sopenharmony_ci {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.gpio.drive_strength), 7262306a36Sopenharmony_ci AML_OFFSET(gpio.drive_strength), 7362306a36Sopenharmony_ci 2}, 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci /* Pin Table */ 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_PIN, ACPI_RS_OFFSET(data.gpio.pin_table_length), 7862306a36Sopenharmony_ci AML_OFFSET(gpio.pin_table_offset), 7962306a36Sopenharmony_ci AML_OFFSET(gpio.res_source_offset)}, 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.gpio.pin_table), 8262306a36Sopenharmony_ci AML_OFFSET(gpio.pin_table_offset), 8362306a36Sopenharmony_ci 0}, 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci /* Resource Source */ 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.gpio.resource_source.index), 8862306a36Sopenharmony_ci AML_OFFSET(gpio.res_source_index), 8962306a36Sopenharmony_ci 1}, 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 9262306a36Sopenharmony_ci ACPI_RS_OFFSET(data.gpio.resource_source.string_length), 9362306a36Sopenharmony_ci AML_OFFSET(gpio.res_source_offset), 9462306a36Sopenharmony_ci AML_OFFSET(gpio.vendor_offset)}, 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 9762306a36Sopenharmony_ci ACPI_RS_OFFSET(data.gpio.resource_source.string_ptr), 9862306a36Sopenharmony_ci AML_OFFSET(gpio.res_source_offset), 9962306a36Sopenharmony_ci 0}, 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci /* Vendor Data */ 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.gpio.vendor_length), 10462306a36Sopenharmony_ci AML_OFFSET(gpio.vendor_length), 10562306a36Sopenharmony_ci 1}, 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.gpio.vendor_data), 10862306a36Sopenharmony_ci AML_OFFSET(gpio.vendor_offset), 10962306a36Sopenharmony_ci 0}, 11062306a36Sopenharmony_ci}; 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci/******************************************************************************* 11362306a36Sopenharmony_ci * 11462306a36Sopenharmony_ci * acpi_rs_convert_clock_input 11562306a36Sopenharmony_ci * 11662306a36Sopenharmony_ci ******************************************************************************/ 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_clock_input[8] = { 11962306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_CLOCK_INPUT, 12062306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_clock_input), 12162306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_clock_input)}, 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_CLOCK_INPUT, 12462306a36Sopenharmony_ci sizeof(struct aml_resource_clock_input), 12562306a36Sopenharmony_ci 0} 12662306a36Sopenharmony_ci , 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.clock_input.revision_id), 12962306a36Sopenharmony_ci AML_OFFSET(clock_input.revision_id), 13062306a36Sopenharmony_ci 1} 13162306a36Sopenharmony_ci , 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.clock_input.mode), 13462306a36Sopenharmony_ci AML_OFFSET(clock_input.flags), 13562306a36Sopenharmony_ci 0} 13662306a36Sopenharmony_ci , 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.clock_input.scale), 13962306a36Sopenharmony_ci AML_OFFSET(clock_input.flags), 14062306a36Sopenharmony_ci 1} 14162306a36Sopenharmony_ci , 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.clock_input.frequency_divisor), 14462306a36Sopenharmony_ci AML_OFFSET(clock_input.frequency_divisor), 14562306a36Sopenharmony_ci 2} 14662306a36Sopenharmony_ci , 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.clock_input.frequency_numerator), 14962306a36Sopenharmony_ci AML_OFFSET(clock_input.frequency_numerator), 15062306a36Sopenharmony_ci 4} 15162306a36Sopenharmony_ci , 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci /* Resource Source */ 15462306a36Sopenharmony_ci {ACPI_RSC_SOURCE, ACPI_RS_OFFSET(data.clock_input.resource_source), 15562306a36Sopenharmony_ci 0, 15662306a36Sopenharmony_ci sizeof(struct aml_resource_clock_input)} 15762306a36Sopenharmony_ci , 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci}; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci/******************************************************************************* 16262306a36Sopenharmony_ci * 16362306a36Sopenharmony_ci * acpi_rs_convert_pinfunction 16462306a36Sopenharmony_ci * 16562306a36Sopenharmony_ci ******************************************************************************/ 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_pin_function[13] = { 16862306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_FUNCTION, 16962306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_pin_function), 17062306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_function)}, 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_FUNCTION, 17362306a36Sopenharmony_ci sizeof(struct aml_resource_pin_function), 17462306a36Sopenharmony_ci 0}, 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_function.revision_id), 17762306a36Sopenharmony_ci AML_OFFSET(pin_function.revision_id), 17862306a36Sopenharmony_ci 1}, 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_function.shareable), 18162306a36Sopenharmony_ci AML_OFFSET(pin_function.flags), 18262306a36Sopenharmony_ci 0}, 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_function.pin_config), 18562306a36Sopenharmony_ci AML_OFFSET(pin_function.pin_config), 18662306a36Sopenharmony_ci 1}, 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.pin_function.function_number), 18962306a36Sopenharmony_ci AML_OFFSET(pin_function.function_number), 19062306a36Sopenharmony_ci 2}, 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci /* Pin Table */ 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci /* 19562306a36Sopenharmony_ci * It is OK to use GPIO operations here because none of them refer GPIO 19662306a36Sopenharmony_ci * structures directly but instead use offsets given here. 19762306a36Sopenharmony_ci */ 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_PIN, 20062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_function.pin_table_length), 20162306a36Sopenharmony_ci AML_OFFSET(pin_function.pin_table_offset), 20262306a36Sopenharmony_ci AML_OFFSET(pin_function.res_source_offset)}, 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.pin_function.pin_table), 20562306a36Sopenharmony_ci AML_OFFSET(pin_function.pin_table_offset), 20662306a36Sopenharmony_ci 0}, 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci /* Resource Source */ 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 21162306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_function.resource_source.index), 21262306a36Sopenharmony_ci AML_OFFSET(pin_function.res_source_index), 21362306a36Sopenharmony_ci 1}, 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 21662306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_function.resource_source.string_length), 21762306a36Sopenharmony_ci AML_OFFSET(pin_function.res_source_offset), 21862306a36Sopenharmony_ci AML_OFFSET(pin_function.vendor_offset)}, 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 22162306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_function.resource_source.string_ptr), 22262306a36Sopenharmony_ci AML_OFFSET(pin_function.res_source_offset), 22362306a36Sopenharmony_ci 0}, 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci /* Vendor Data */ 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_VEN, 22862306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_function.vendor_length), 22962306a36Sopenharmony_ci AML_OFFSET(pin_function.vendor_length), 23062306a36Sopenharmony_ci 1}, 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.pin_function.vendor_data), 23362306a36Sopenharmony_ci AML_OFFSET(pin_function.vendor_offset), 23462306a36Sopenharmony_ci 0}, 23562306a36Sopenharmony_ci}; 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci/******************************************************************************* 23862306a36Sopenharmony_ci * 23962306a36Sopenharmony_ci * acpi_rs_convert_csi2_serial_bus 24062306a36Sopenharmony_ci * 24162306a36Sopenharmony_ci ******************************************************************************/ 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_csi2_serial_bus[14] = { 24462306a36Sopenharmony_ci { ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, 24562306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_csi2_serialbus), 24662306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_csi2_serial_bus) }, 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci { ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, 24962306a36Sopenharmony_ci sizeof(struct aml_resource_csi2_serialbus), 25062306a36Sopenharmony_ci 0 }, 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci { ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id), 25362306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.revision_id), 25462306a36Sopenharmony_ci 1 }, 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci { ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.csi2_serial_bus.type), 25762306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.type), 25862306a36Sopenharmony_ci 1 }, 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci { ACPI_RSC_1BITFLAG, 26162306a36Sopenharmony_ci ACPI_RS_OFFSET(data.csi2_serial_bus.producer_consumer), 26262306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.flags), 26362306a36Sopenharmony_ci 1 }, 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ci { ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.csi2_serial_bus.slave_mode), 26662306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.flags), 26762306a36Sopenharmony_ci 0 }, 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci { ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.csi2_serial_bus.phy_type), 27062306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.type_specific_flags), 27162306a36Sopenharmony_ci 0 }, 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci { ACPI_RSC_6BITFLAG, 27462306a36Sopenharmony_ci ACPI_RS_OFFSET(data.csi2_serial_bus.local_port_instance), 27562306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.type_specific_flags), 27662306a36Sopenharmony_ci 2 }, 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci { ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.csi2_serial_bus.type_revision_id), 27962306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.type_revision_id), 28062306a36Sopenharmony_ci 1 }, 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci /* Vendor data */ 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ci { ACPI_RSC_COUNT_SERIAL_VEN, 28562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.csi2_serial_bus.vendor_length), 28662306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.type_data_length), 28762306a36Sopenharmony_ci AML_RESOURCE_CSI2_MIN_DATA_LEN }, 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci { ACPI_RSC_MOVE_SERIAL_VEN, 29062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.csi2_serial_bus.vendor_data), 29162306a36Sopenharmony_ci 0, 29262306a36Sopenharmony_ci sizeof(struct aml_resource_csi2_serialbus) }, 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ci /* Resource Source */ 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_ci { ACPI_RSC_MOVE8, 29762306a36Sopenharmony_ci ACPI_RS_OFFSET(data.csi2_serial_bus.resource_source.index), 29862306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.res_source_index), 29962306a36Sopenharmony_ci 1 }, 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci { ACPI_RSC_COUNT_SERIAL_RES, 30262306a36Sopenharmony_ci ACPI_RS_OFFSET(data.csi2_serial_bus.resource_source.string_length), 30362306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.type_data_length), 30462306a36Sopenharmony_ci sizeof(struct aml_resource_csi2_serialbus) }, 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ci { ACPI_RSC_MOVE_SERIAL_RES, 30762306a36Sopenharmony_ci ACPI_RS_OFFSET(data.csi2_serial_bus.resource_source.string_ptr), 30862306a36Sopenharmony_ci AML_OFFSET(csi2_serial_bus.type_data_length), 30962306a36Sopenharmony_ci sizeof(struct aml_resource_csi2_serialbus) }, 31062306a36Sopenharmony_ci}; 31162306a36Sopenharmony_ci 31262306a36Sopenharmony_ci/******************************************************************************* 31362306a36Sopenharmony_ci * 31462306a36Sopenharmony_ci * acpi_rs_convert_i2c_serial_bus 31562306a36Sopenharmony_ci * 31662306a36Sopenharmony_ci ******************************************************************************/ 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_i2c_serial_bus[17] = { 31962306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, 32062306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_i2c_serialbus), 32162306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_i2c_serial_bus)}, 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, 32462306a36Sopenharmony_ci sizeof(struct aml_resource_i2c_serialbus), 32562306a36Sopenharmony_ci 0}, 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id), 32862306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.revision_id), 32962306a36Sopenharmony_ci 1}, 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.type), 33262306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type), 33362306a36Sopenharmony_ci 1}, 33462306a36Sopenharmony_ci 33562306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.common_serial_bus.slave_mode), 33662306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 33762306a36Sopenharmony_ci 0}, 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 34062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.producer_consumer), 34162306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 34262306a36Sopenharmony_ci 1}, 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 34562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.connection_sharing), 34662306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 34762306a36Sopenharmony_ci 2}, 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 35062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.type_revision_id), 35162306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_revision_id), 35262306a36Sopenharmony_ci 1}, 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci {ACPI_RSC_MOVE16, 35562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.type_data_length), 35662306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 35762306a36Sopenharmony_ci 1}, 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci /* Vendor data */ 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci {ACPI_RSC_COUNT_SERIAL_VEN, 36262306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.vendor_length), 36362306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 36462306a36Sopenharmony_ci AML_RESOURCE_I2C_MIN_DATA_LEN}, 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci {ACPI_RSC_MOVE_SERIAL_VEN, 36762306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.vendor_data), 36862306a36Sopenharmony_ci 0, 36962306a36Sopenharmony_ci sizeof(struct aml_resource_i2c_serialbus)}, 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_ci /* Resource Source */ 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 37462306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.index), 37562306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.res_source_index), 37662306a36Sopenharmony_ci 1}, 37762306a36Sopenharmony_ci 37862306a36Sopenharmony_ci {ACPI_RSC_COUNT_SERIAL_RES, 37962306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_length), 38062306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 38162306a36Sopenharmony_ci sizeof(struct aml_resource_common_serialbus)}, 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_ci {ACPI_RSC_MOVE_SERIAL_RES, 38462306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_ptr), 38562306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 38662306a36Sopenharmony_ci sizeof(struct aml_resource_common_serialbus)}, 38762306a36Sopenharmony_ci 38862306a36Sopenharmony_ci /* I2C bus type specific */ 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.i2c_serial_bus.access_mode), 39162306a36Sopenharmony_ci AML_OFFSET(i2c_serial_bus.type_specific_flags), 39262306a36Sopenharmony_ci 0}, 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ci {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.i2c_serial_bus.connection_speed), 39562306a36Sopenharmony_ci AML_OFFSET(i2c_serial_bus.connection_speed), 39662306a36Sopenharmony_ci 1}, 39762306a36Sopenharmony_ci 39862306a36Sopenharmony_ci {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.i2c_serial_bus.slave_address), 39962306a36Sopenharmony_ci AML_OFFSET(i2c_serial_bus.slave_address), 40062306a36Sopenharmony_ci 1}, 40162306a36Sopenharmony_ci}; 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ci/******************************************************************************* 40462306a36Sopenharmony_ci * 40562306a36Sopenharmony_ci * acpi_rs_convert_spi_serial_bus 40662306a36Sopenharmony_ci * 40762306a36Sopenharmony_ci ******************************************************************************/ 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_spi_serial_bus[21] = { 41062306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, 41162306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_spi_serialbus), 41262306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_spi_serial_bus)}, 41362306a36Sopenharmony_ci 41462306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, 41562306a36Sopenharmony_ci sizeof(struct aml_resource_spi_serialbus), 41662306a36Sopenharmony_ci 0}, 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id), 41962306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.revision_id), 42062306a36Sopenharmony_ci 1}, 42162306a36Sopenharmony_ci 42262306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.type), 42362306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type), 42462306a36Sopenharmony_ci 1}, 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.common_serial_bus.slave_mode), 42762306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 42862306a36Sopenharmony_ci 0}, 42962306a36Sopenharmony_ci 43062306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 43162306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.producer_consumer), 43262306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 43362306a36Sopenharmony_ci 1}, 43462306a36Sopenharmony_ci 43562306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 43662306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.connection_sharing), 43762306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 43862306a36Sopenharmony_ci 2}, 43962306a36Sopenharmony_ci 44062306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 44162306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.type_revision_id), 44262306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_revision_id), 44362306a36Sopenharmony_ci 1}, 44462306a36Sopenharmony_ci 44562306a36Sopenharmony_ci {ACPI_RSC_MOVE16, 44662306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.type_data_length), 44762306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 44862306a36Sopenharmony_ci 1}, 44962306a36Sopenharmony_ci 45062306a36Sopenharmony_ci /* Vendor data */ 45162306a36Sopenharmony_ci 45262306a36Sopenharmony_ci {ACPI_RSC_COUNT_SERIAL_VEN, 45362306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.vendor_length), 45462306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 45562306a36Sopenharmony_ci AML_RESOURCE_SPI_MIN_DATA_LEN}, 45662306a36Sopenharmony_ci 45762306a36Sopenharmony_ci {ACPI_RSC_MOVE_SERIAL_VEN, 45862306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.vendor_data), 45962306a36Sopenharmony_ci 0, 46062306a36Sopenharmony_ci sizeof(struct aml_resource_spi_serialbus)}, 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_ci /* Resource Source */ 46362306a36Sopenharmony_ci 46462306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 46562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.index), 46662306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.res_source_index), 46762306a36Sopenharmony_ci 1}, 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ci {ACPI_RSC_COUNT_SERIAL_RES, 47062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_length), 47162306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 47262306a36Sopenharmony_ci sizeof(struct aml_resource_common_serialbus)}, 47362306a36Sopenharmony_ci 47462306a36Sopenharmony_ci {ACPI_RSC_MOVE_SERIAL_RES, 47562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_ptr), 47662306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 47762306a36Sopenharmony_ci sizeof(struct aml_resource_common_serialbus)}, 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ci /* Spi bus type specific */ 48062306a36Sopenharmony_ci 48162306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.spi_serial_bus.wire_mode), 48262306a36Sopenharmony_ci AML_OFFSET(spi_serial_bus.type_specific_flags), 48362306a36Sopenharmony_ci 0}, 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.spi_serial_bus.device_polarity), 48662306a36Sopenharmony_ci AML_OFFSET(spi_serial_bus.type_specific_flags), 48762306a36Sopenharmony_ci 1}, 48862306a36Sopenharmony_ci 48962306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.spi_serial_bus.data_bit_length), 49062306a36Sopenharmony_ci AML_OFFSET(spi_serial_bus.data_bit_length), 49162306a36Sopenharmony_ci 1}, 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.spi_serial_bus.clock_phase), 49462306a36Sopenharmony_ci AML_OFFSET(spi_serial_bus.clock_phase), 49562306a36Sopenharmony_ci 1}, 49662306a36Sopenharmony_ci 49762306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.spi_serial_bus.clock_polarity), 49862306a36Sopenharmony_ci AML_OFFSET(spi_serial_bus.clock_polarity), 49962306a36Sopenharmony_ci 1}, 50062306a36Sopenharmony_ci 50162306a36Sopenharmony_ci {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.spi_serial_bus.device_selection), 50262306a36Sopenharmony_ci AML_OFFSET(spi_serial_bus.device_selection), 50362306a36Sopenharmony_ci 1}, 50462306a36Sopenharmony_ci 50562306a36Sopenharmony_ci {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.spi_serial_bus.connection_speed), 50662306a36Sopenharmony_ci AML_OFFSET(spi_serial_bus.connection_speed), 50762306a36Sopenharmony_ci 1}, 50862306a36Sopenharmony_ci}; 50962306a36Sopenharmony_ci 51062306a36Sopenharmony_ci/******************************************************************************* 51162306a36Sopenharmony_ci * 51262306a36Sopenharmony_ci * acpi_rs_convert_uart_serial_bus 51362306a36Sopenharmony_ci * 51462306a36Sopenharmony_ci ******************************************************************************/ 51562306a36Sopenharmony_ci 51662306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_uart_serial_bus[23] = { 51762306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_SERIAL_BUS, 51862306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_uart_serialbus), 51962306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_uart_serial_bus)}, 52062306a36Sopenharmony_ci 52162306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_SERIAL_BUS, 52262306a36Sopenharmony_ci sizeof(struct aml_resource_uart_serialbus), 52362306a36Sopenharmony_ci 0}, 52462306a36Sopenharmony_ci 52562306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.revision_id), 52662306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.revision_id), 52762306a36Sopenharmony_ci 1}, 52862306a36Sopenharmony_ci 52962306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.common_serial_bus.type), 53062306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type), 53162306a36Sopenharmony_ci 1}, 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.common_serial_bus.slave_mode), 53462306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 53562306a36Sopenharmony_ci 0}, 53662306a36Sopenharmony_ci 53762306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 53862306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.producer_consumer), 53962306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 54062306a36Sopenharmony_ci 1}, 54162306a36Sopenharmony_ci 54262306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 54362306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.connection_sharing), 54462306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.flags), 54562306a36Sopenharmony_ci 2}, 54662306a36Sopenharmony_ci 54762306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 54862306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.type_revision_id), 54962306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_revision_id), 55062306a36Sopenharmony_ci 1}, 55162306a36Sopenharmony_ci 55262306a36Sopenharmony_ci {ACPI_RSC_MOVE16, 55362306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.type_data_length), 55462306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 55562306a36Sopenharmony_ci 1}, 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ci /* Vendor data */ 55862306a36Sopenharmony_ci 55962306a36Sopenharmony_ci {ACPI_RSC_COUNT_SERIAL_VEN, 56062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.vendor_length), 56162306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 56262306a36Sopenharmony_ci AML_RESOURCE_UART_MIN_DATA_LEN}, 56362306a36Sopenharmony_ci 56462306a36Sopenharmony_ci {ACPI_RSC_MOVE_SERIAL_VEN, 56562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.vendor_data), 56662306a36Sopenharmony_ci 0, 56762306a36Sopenharmony_ci sizeof(struct aml_resource_uart_serialbus)}, 56862306a36Sopenharmony_ci 56962306a36Sopenharmony_ci /* Resource Source */ 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 57262306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.index), 57362306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.res_source_index), 57462306a36Sopenharmony_ci 1}, 57562306a36Sopenharmony_ci 57662306a36Sopenharmony_ci {ACPI_RSC_COUNT_SERIAL_RES, 57762306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_length), 57862306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 57962306a36Sopenharmony_ci sizeof(struct aml_resource_common_serialbus)}, 58062306a36Sopenharmony_ci 58162306a36Sopenharmony_ci {ACPI_RSC_MOVE_SERIAL_RES, 58262306a36Sopenharmony_ci ACPI_RS_OFFSET(data.common_serial_bus.resource_source.string_ptr), 58362306a36Sopenharmony_ci AML_OFFSET(common_serial_bus.type_data_length), 58462306a36Sopenharmony_ci sizeof(struct aml_resource_common_serialbus)}, 58562306a36Sopenharmony_ci 58662306a36Sopenharmony_ci /* Uart bus type specific */ 58762306a36Sopenharmony_ci 58862306a36Sopenharmony_ci {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.flow_control), 58962306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.type_specific_flags), 59062306a36Sopenharmony_ci 0}, 59162306a36Sopenharmony_ci 59262306a36Sopenharmony_ci {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.stop_bits), 59362306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.type_specific_flags), 59462306a36Sopenharmony_ci 2}, 59562306a36Sopenharmony_ci 59662306a36Sopenharmony_ci {ACPI_RSC_3BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.data_bits), 59762306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.type_specific_flags), 59862306a36Sopenharmony_ci 4}, 59962306a36Sopenharmony_ci 60062306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.uart_serial_bus.endian), 60162306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.type_specific_flags), 60262306a36Sopenharmony_ci 7}, 60362306a36Sopenharmony_ci 60462306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.uart_serial_bus.parity), 60562306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.parity), 60662306a36Sopenharmony_ci 1}, 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.uart_serial_bus.lines_enabled), 60962306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.lines_enabled), 61062306a36Sopenharmony_ci 1}, 61162306a36Sopenharmony_ci 61262306a36Sopenharmony_ci {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.uart_serial_bus.rx_fifo_size), 61362306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.rx_fifo_size), 61462306a36Sopenharmony_ci 1}, 61562306a36Sopenharmony_ci 61662306a36Sopenharmony_ci {ACPI_RSC_MOVE16, ACPI_RS_OFFSET(data.uart_serial_bus.tx_fifo_size), 61762306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.tx_fifo_size), 61862306a36Sopenharmony_ci 1}, 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ci {ACPI_RSC_MOVE32, 62162306a36Sopenharmony_ci ACPI_RS_OFFSET(data.uart_serial_bus.default_baud_rate), 62262306a36Sopenharmony_ci AML_OFFSET(uart_serial_bus.default_baud_rate), 62362306a36Sopenharmony_ci 1}, 62462306a36Sopenharmony_ci}; 62562306a36Sopenharmony_ci 62662306a36Sopenharmony_ci/******************************************************************************* 62762306a36Sopenharmony_ci * 62862306a36Sopenharmony_ci * acpi_rs_convert_pin_config 62962306a36Sopenharmony_ci * 63062306a36Sopenharmony_ci ******************************************************************************/ 63162306a36Sopenharmony_ci 63262306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_pin_config[14] = { 63362306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_CONFIG, 63462306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_pin_config), 63562306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_config)}, 63662306a36Sopenharmony_ci 63762306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_CONFIG, 63862306a36Sopenharmony_ci sizeof(struct aml_resource_pin_config), 63962306a36Sopenharmony_ci 0}, 64062306a36Sopenharmony_ci 64162306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.revision_id), 64262306a36Sopenharmony_ci AML_OFFSET(pin_config.revision_id), 64362306a36Sopenharmony_ci 1}, 64462306a36Sopenharmony_ci 64562306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_config.shareable), 64662306a36Sopenharmony_ci AML_OFFSET(pin_config.flags), 64762306a36Sopenharmony_ci 0}, 64862306a36Sopenharmony_ci 64962306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_config.producer_consumer), 65062306a36Sopenharmony_ci AML_OFFSET(pin_config.flags), 65162306a36Sopenharmony_ci 1}, 65262306a36Sopenharmony_ci 65362306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.pin_config_type), 65462306a36Sopenharmony_ci AML_OFFSET(pin_config.pin_config_type), 65562306a36Sopenharmony_ci 1}, 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ci {ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.pin_config.pin_config_value), 65862306a36Sopenharmony_ci AML_OFFSET(pin_config.pin_config_value), 65962306a36Sopenharmony_ci 1}, 66062306a36Sopenharmony_ci 66162306a36Sopenharmony_ci /* Pin Table */ 66262306a36Sopenharmony_ci 66362306a36Sopenharmony_ci /* 66462306a36Sopenharmony_ci * It is OK to use GPIO operations here because none of them refer GPIO 66562306a36Sopenharmony_ci * structures directly but instead use offsets given here. 66662306a36Sopenharmony_ci */ 66762306a36Sopenharmony_ci 66862306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_PIN, 66962306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_config.pin_table_length), 67062306a36Sopenharmony_ci AML_OFFSET(pin_config.pin_table_offset), 67162306a36Sopenharmony_ci AML_OFFSET(pin_config.res_source_offset)}, 67262306a36Sopenharmony_ci 67362306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.pin_config.pin_table), 67462306a36Sopenharmony_ci AML_OFFSET(pin_config.pin_table_offset), 67562306a36Sopenharmony_ci 0}, 67662306a36Sopenharmony_ci 67762306a36Sopenharmony_ci /* Resource Source */ 67862306a36Sopenharmony_ci 67962306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.resource_source.index), 68062306a36Sopenharmony_ci AML_OFFSET(pin_config.res_source_index), 68162306a36Sopenharmony_ci 1}, 68262306a36Sopenharmony_ci 68362306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 68462306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_config.resource_source.string_length), 68562306a36Sopenharmony_ci AML_OFFSET(pin_config.res_source_offset), 68662306a36Sopenharmony_ci AML_OFFSET(pin_config.vendor_offset)}, 68762306a36Sopenharmony_ci 68862306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 68962306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_config.resource_source.string_ptr), 69062306a36Sopenharmony_ci AML_OFFSET(pin_config.res_source_offset), 69162306a36Sopenharmony_ci 0}, 69262306a36Sopenharmony_ci 69362306a36Sopenharmony_ci /* Vendor Data */ 69462306a36Sopenharmony_ci 69562306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.pin_config.vendor_length), 69662306a36Sopenharmony_ci AML_OFFSET(pin_config.vendor_length), 69762306a36Sopenharmony_ci 1}, 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.pin_config.vendor_data), 70062306a36Sopenharmony_ci AML_OFFSET(pin_config.vendor_offset), 70162306a36Sopenharmony_ci 0}, 70262306a36Sopenharmony_ci}; 70362306a36Sopenharmony_ci 70462306a36Sopenharmony_ci/******************************************************************************* 70562306a36Sopenharmony_ci * 70662306a36Sopenharmony_ci * acpi_rs_convert_pin_group 70762306a36Sopenharmony_ci * 70862306a36Sopenharmony_ci ******************************************************************************/ 70962306a36Sopenharmony_ci 71062306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_pin_group[10] = { 71162306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_GROUP, 71262306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_pin_group), 71362306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_group)}, 71462306a36Sopenharmony_ci 71562306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_GROUP, 71662306a36Sopenharmony_ci sizeof(struct aml_resource_pin_group), 71762306a36Sopenharmony_ci 0}, 71862306a36Sopenharmony_ci 71962306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group.revision_id), 72062306a36Sopenharmony_ci AML_OFFSET(pin_group.revision_id), 72162306a36Sopenharmony_ci 1}, 72262306a36Sopenharmony_ci 72362306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_group.producer_consumer), 72462306a36Sopenharmony_ci AML_OFFSET(pin_group.flags), 72562306a36Sopenharmony_ci 0}, 72662306a36Sopenharmony_ci 72762306a36Sopenharmony_ci /* Pin Table */ 72862306a36Sopenharmony_ci 72962306a36Sopenharmony_ci /* 73062306a36Sopenharmony_ci * It is OK to use GPIO operations here because none of them refer GPIO 73162306a36Sopenharmony_ci * structures directly but instead use offsets given here. 73262306a36Sopenharmony_ci */ 73362306a36Sopenharmony_ci 73462306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_PIN, 73562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group.pin_table_length), 73662306a36Sopenharmony_ci AML_OFFSET(pin_group.pin_table_offset), 73762306a36Sopenharmony_ci AML_OFFSET(pin_group.label_offset)}, 73862306a36Sopenharmony_ci 73962306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.pin_group.pin_table), 74062306a36Sopenharmony_ci AML_OFFSET(pin_group.pin_table_offset), 74162306a36Sopenharmony_ci 0}, 74262306a36Sopenharmony_ci 74362306a36Sopenharmony_ci /* Resource Label */ 74462306a36Sopenharmony_ci 74562306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 74662306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group.resource_label.string_length), 74762306a36Sopenharmony_ci AML_OFFSET(pin_group.label_offset), 74862306a36Sopenharmony_ci AML_OFFSET(pin_group.vendor_offset)}, 74962306a36Sopenharmony_ci 75062306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 75162306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group.resource_label.string_ptr), 75262306a36Sopenharmony_ci AML_OFFSET(pin_group.label_offset), 75362306a36Sopenharmony_ci 0}, 75462306a36Sopenharmony_ci 75562306a36Sopenharmony_ci /* Vendor Data */ 75662306a36Sopenharmony_ci 75762306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.pin_group.vendor_length), 75862306a36Sopenharmony_ci AML_OFFSET(pin_group.vendor_length), 75962306a36Sopenharmony_ci 1}, 76062306a36Sopenharmony_ci 76162306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.pin_group.vendor_data), 76262306a36Sopenharmony_ci AML_OFFSET(pin_group.vendor_offset), 76362306a36Sopenharmony_ci 0}, 76462306a36Sopenharmony_ci}; 76562306a36Sopenharmony_ci 76662306a36Sopenharmony_ci/******************************************************************************* 76762306a36Sopenharmony_ci * 76862306a36Sopenharmony_ci * acpi_rs_convert_pin_group_function 76962306a36Sopenharmony_ci * 77062306a36Sopenharmony_ci ******************************************************************************/ 77162306a36Sopenharmony_ci 77262306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_pin_group_function[13] = { 77362306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION, 77462306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_pin_group_function), 77562306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_group_function)}, 77662306a36Sopenharmony_ci 77762306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION, 77862306a36Sopenharmony_ci sizeof(struct aml_resource_pin_group_function), 77962306a36Sopenharmony_ci 0}, 78062306a36Sopenharmony_ci 78162306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group_function.revision_id), 78262306a36Sopenharmony_ci AML_OFFSET(pin_group_function.revision_id), 78362306a36Sopenharmony_ci 1}, 78462306a36Sopenharmony_ci 78562306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_group_function.shareable), 78662306a36Sopenharmony_ci AML_OFFSET(pin_group_function.flags), 78762306a36Sopenharmony_ci 0}, 78862306a36Sopenharmony_ci 78962306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 79062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.producer_consumer), 79162306a36Sopenharmony_ci AML_OFFSET(pin_group_function.flags), 79262306a36Sopenharmony_ci 1}, 79362306a36Sopenharmony_ci 79462306a36Sopenharmony_ci {ACPI_RSC_MOVE16, 79562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.function_number), 79662306a36Sopenharmony_ci AML_OFFSET(pin_group_function.function_number), 79762306a36Sopenharmony_ci 1}, 79862306a36Sopenharmony_ci 79962306a36Sopenharmony_ci /* Resource Source */ 80062306a36Sopenharmony_ci 80162306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 80262306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.resource_source.index), 80362306a36Sopenharmony_ci AML_OFFSET(pin_group_function.res_source_index), 80462306a36Sopenharmony_ci 1}, 80562306a36Sopenharmony_ci 80662306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 80762306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.resource_source.string_length), 80862306a36Sopenharmony_ci AML_OFFSET(pin_group_function.res_source_offset), 80962306a36Sopenharmony_ci AML_OFFSET(pin_group_function.res_source_label_offset)}, 81062306a36Sopenharmony_ci 81162306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 81262306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.resource_source.string_ptr), 81362306a36Sopenharmony_ci AML_OFFSET(pin_group_function.res_source_offset), 81462306a36Sopenharmony_ci 0}, 81562306a36Sopenharmony_ci 81662306a36Sopenharmony_ci /* Resource Source Label */ 81762306a36Sopenharmony_ci 81862306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 81962306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.resource_source_label. 82062306a36Sopenharmony_ci string_length), 82162306a36Sopenharmony_ci AML_OFFSET(pin_group_function.res_source_label_offset), 82262306a36Sopenharmony_ci AML_OFFSET(pin_group_function.vendor_offset)}, 82362306a36Sopenharmony_ci 82462306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 82562306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.resource_source_label. 82662306a36Sopenharmony_ci string_ptr), 82762306a36Sopenharmony_ci AML_OFFSET(pin_group_function.res_source_label_offset), 82862306a36Sopenharmony_ci 0}, 82962306a36Sopenharmony_ci 83062306a36Sopenharmony_ci /* Vendor Data */ 83162306a36Sopenharmony_ci 83262306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_VEN, 83362306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.vendor_length), 83462306a36Sopenharmony_ci AML_OFFSET(pin_group_function.vendor_length), 83562306a36Sopenharmony_ci 1}, 83662306a36Sopenharmony_ci 83762306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 83862306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_function.vendor_data), 83962306a36Sopenharmony_ci AML_OFFSET(pin_group_function.vendor_offset), 84062306a36Sopenharmony_ci 0}, 84162306a36Sopenharmony_ci}; 84262306a36Sopenharmony_ci 84362306a36Sopenharmony_ci/******************************************************************************* 84462306a36Sopenharmony_ci * 84562306a36Sopenharmony_ci * acpi_rs_convert_pin_group_config 84662306a36Sopenharmony_ci * 84762306a36Sopenharmony_ci ******************************************************************************/ 84862306a36Sopenharmony_ci 84962306a36Sopenharmony_cistruct acpi_rsconvert_info acpi_rs_convert_pin_group_config[14] = { 85062306a36Sopenharmony_ci {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG, 85162306a36Sopenharmony_ci ACPI_RS_SIZE(struct acpi_resource_pin_group_config), 85262306a36Sopenharmony_ci ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_group_config)}, 85362306a36Sopenharmony_ci 85462306a36Sopenharmony_ci {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG, 85562306a36Sopenharmony_ci sizeof(struct aml_resource_pin_group_config), 85662306a36Sopenharmony_ci 0}, 85762306a36Sopenharmony_ci 85862306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group_config.revision_id), 85962306a36Sopenharmony_ci AML_OFFSET(pin_group_config.revision_id), 86062306a36Sopenharmony_ci 1}, 86162306a36Sopenharmony_ci 86262306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_group_config.shareable), 86362306a36Sopenharmony_ci AML_OFFSET(pin_group_config.flags), 86462306a36Sopenharmony_ci 0}, 86562306a36Sopenharmony_ci 86662306a36Sopenharmony_ci {ACPI_RSC_1BITFLAG, 86762306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.producer_consumer), 86862306a36Sopenharmony_ci AML_OFFSET(pin_group_config.flags), 86962306a36Sopenharmony_ci 1}, 87062306a36Sopenharmony_ci 87162306a36Sopenharmony_ci {ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_group_config.pin_config_type), 87262306a36Sopenharmony_ci AML_OFFSET(pin_group_config.pin_config_type), 87362306a36Sopenharmony_ci 1}, 87462306a36Sopenharmony_ci 87562306a36Sopenharmony_ci {ACPI_RSC_MOVE32, 87662306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.pin_config_value), 87762306a36Sopenharmony_ci AML_OFFSET(pin_group_config.pin_config_value), 87862306a36Sopenharmony_ci 1}, 87962306a36Sopenharmony_ci 88062306a36Sopenharmony_ci /* Resource Source */ 88162306a36Sopenharmony_ci 88262306a36Sopenharmony_ci {ACPI_RSC_MOVE8, 88362306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.resource_source.index), 88462306a36Sopenharmony_ci AML_OFFSET(pin_group_config.res_source_index), 88562306a36Sopenharmony_ci 1}, 88662306a36Sopenharmony_ci 88762306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 88862306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.resource_source.string_length), 88962306a36Sopenharmony_ci AML_OFFSET(pin_group_config.res_source_offset), 89062306a36Sopenharmony_ci AML_OFFSET(pin_group_config.res_source_label_offset)}, 89162306a36Sopenharmony_ci 89262306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 89362306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.resource_source.string_ptr), 89462306a36Sopenharmony_ci AML_OFFSET(pin_group_config.res_source_offset), 89562306a36Sopenharmony_ci 0}, 89662306a36Sopenharmony_ci 89762306a36Sopenharmony_ci /* Resource Source Label */ 89862306a36Sopenharmony_ci 89962306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_RES, 90062306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.resource_source_label. 90162306a36Sopenharmony_ci string_length), 90262306a36Sopenharmony_ci AML_OFFSET(pin_group_config.res_source_label_offset), 90362306a36Sopenharmony_ci AML_OFFSET(pin_group_config.vendor_offset)}, 90462306a36Sopenharmony_ci 90562306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 90662306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.resource_source_label.string_ptr), 90762306a36Sopenharmony_ci AML_OFFSET(pin_group_config.res_source_label_offset), 90862306a36Sopenharmony_ci 0}, 90962306a36Sopenharmony_ci 91062306a36Sopenharmony_ci /* Vendor Data */ 91162306a36Sopenharmony_ci 91262306a36Sopenharmony_ci {ACPI_RSC_COUNT_GPIO_VEN, 91362306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.vendor_length), 91462306a36Sopenharmony_ci AML_OFFSET(pin_group_config.vendor_length), 91562306a36Sopenharmony_ci 1}, 91662306a36Sopenharmony_ci 91762306a36Sopenharmony_ci {ACPI_RSC_MOVE_GPIO_RES, 91862306a36Sopenharmony_ci ACPI_RS_OFFSET(data.pin_group_config.vendor_data), 91962306a36Sopenharmony_ci AML_OFFSET(pin_group_config.vendor_offset), 92062306a36Sopenharmony_ci 0}, 92162306a36Sopenharmony_ci}; 922