ACPICA: ACPI 6.2: Add support for PinConfig() resource
ACPICA commit a06fdba686cefccd5dd5b93b52fa0f1e3f984906
ACPI 6.2 introduced a new resource that is used to specify fine-grained
configuration of a pin or set of pins used by a device. The ASL syntax of
this new resource looks like:
  PinConfig (Shared/Exclusive, PinConfigType, PinConfigValue,
             ResourceSource, ResourceSourceIndex, ResourceUsage,
             DescriptorName, Vendordata) {Pin List}
PinConfigType is an integer with following accepted values:
  0x00 (Default) - No configuration is applied to the pin
  0x01 (Bias Pull-up) - Pin is pulled up using certain size resistor
  0x02 (Bias Pull-down) - Pin is pulled down using certain size resistor
  0x03 (Bias Default) - Set to default biasing
  0x04 (Bias Disable) - All bias settings will be disabled
  0x05 (Bias High Impedance) - Configure the pin as hi_z
  0x06 (Bias Bus Hold) - Configure the pin in a weak latch state where
                         it drives the last value on a tristate bus
  0x07 (Drive Open Drain) - Configure the pin into open drain state
  0x08 (Drive Open Source) - Configure the pin into open source state
  0x09 (Drive Push Pull) - Configure the pin into push-pull state
  0x0a (Drive Strength) - How much the pin can supply current
  0x0b (Slew Rate) - Configure slew rate of the pin
  0x0c (Input Debounce) - Enable input debouncer for the pin
  0x0d (Input Schmitt Trigger) - Enable schmitt trigger for the pin
  0x0e - 0x7f - Reserved
  0x80 - 0xff - Vendor defined types
The PinConfigValue depends on the type and is expressed as units
suitable for that type (for example bias uses Ohms).
Link: https://github.com/acpica/acpica/commit/a06fdba6
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
			
			
This commit is contained in:
		
							parent
							
								
									2b72693066
								
							
						
					
					
						commit
						97028ce6fc
					
				| @ -1144,7 +1144,8 @@ struct acpi_port_info { | ||||
| #define ACPI_RESOURCE_NAME_GPIO                 0x8C | ||||
| #define ACPI_RESOURCE_NAME_PIN_FUNCTION         0x8D | ||||
| #define ACPI_RESOURCE_NAME_SERIAL_BUS           0x8E | ||||
| #define ACPI_RESOURCE_NAME_LARGE_MAX            0x8E | ||||
| #define ACPI_RESOURCE_NAME_PIN_CONFIG           0x8F | ||||
| #define ACPI_RESOURCE_NAME_LARGE_MAX            0x8F | ||||
| 
 | ||||
| /*****************************************************************************
 | ||||
|  * | ||||
|  | ||||
| @ -330,6 +330,7 @@ extern struct acpi_rsconvert_info acpi_rs_convert_i2c_serial_bus[]; | ||||
| extern struct acpi_rsconvert_info acpi_rs_convert_spi_serial_bus[]; | ||||
| extern struct acpi_rsconvert_info acpi_rs_convert_uart_serial_bus[]; | ||||
| extern struct acpi_rsconvert_info acpi_rs_convert_pin_function[]; | ||||
| extern struct acpi_rsconvert_info acpi_rs_convert_pin_config[]; | ||||
| 
 | ||||
| /* These resources require separate get/set tables */ | ||||
| 
 | ||||
| @ -380,6 +381,7 @@ extern struct acpi_rsdump_info acpi_rs_dump_i2c_serial_bus[]; | ||||
| extern struct acpi_rsdump_info acpi_rs_dump_spi_serial_bus[]; | ||||
| extern struct acpi_rsdump_info acpi_rs_dump_uart_serial_bus[]; | ||||
| extern struct acpi_rsdump_info acpi_rs_dump_general_flags[]; | ||||
| extern struct acpi_rsdump_info acpi_rs_dump_pin_config[]; | ||||
| #endif | ||||
| 
 | ||||
| #endif				/* __ACRESRC_H__ */ | ||||
|  | ||||
| @ -85,6 +85,7 @@ extern const char *acpi_gbl_bpb_decode[]; | ||||
| extern const char *acpi_gbl_sb_decode[]; | ||||
| extern const char *acpi_gbl_fc_decode[]; | ||||
| extern const char *acpi_gbl_pt_decode[]; | ||||
| extern const char *acpi_gbl_ptyp_decode[]; | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  | ||||
| @ -85,6 +85,8 @@ | ||||
| #define ACPI_RESTAG_PHASE                       "_PHA" | ||||
| #define ACPI_RESTAG_PIN                         "_PIN" | ||||
| #define ACPI_RESTAG_PINCONFIG                   "_PPI" | ||||
| #define ACPI_RESTAG_PINCONFIG_TYPE              "_TYP" | ||||
| #define ACPI_RESTAG_PINCONFIG_VALUE             "_VAL" | ||||
| #define ACPI_RESTAG_POLARITY                    "_POL" | ||||
| #define ACPI_RESTAG_REGISTERBITOFFSET           "_RBO" | ||||
| #define ACPI_RESTAG_REGISTERBITWIDTH            "_RBW" | ||||
| @ -425,6 +427,26 @@ struct aml_resource_pin_function { | ||||
| 
 | ||||
| #define AML_RESOURCE_PIN_FUNCTION_REVISION      1	/* ACPI 6.2 */ | ||||
| 
 | ||||
| struct aml_resource_pin_config { | ||||
| 	AML_RESOURCE_LARGE_HEADER_COMMON u8 revision_id; | ||||
| 	u16 flags; | ||||
| 	u8 pin_config_type; | ||||
| 	u32 pin_config_value; | ||||
| 	u16 pin_table_offset; | ||||
| 	u8 res_source_index; | ||||
| 	u16 res_source_offset; | ||||
| 	u16 vendor_offset; | ||||
| 	u16 vendor_length; | ||||
| 	/*
 | ||||
| 	 * Optional fields follow immediately: | ||||
| 	 * 1) PIN list (Words) | ||||
| 	 * 2) Resource Source String | ||||
| 	 * 3) Vendor Data bytes | ||||
| 	 */ | ||||
| }; | ||||
| 
 | ||||
| #define AML_RESOURCE_PIN_CONFIG_REVISION      1	/* ACPI 6.2 */ | ||||
| 
 | ||||
| /* restore default alignment */ | ||||
| 
 | ||||
| #pragma pack() | ||||
| @ -468,6 +490,7 @@ union aml_resource { | ||||
| 	struct aml_resource_uart_serialbus uart_serial_bus; | ||||
| 	struct aml_resource_common_serialbus common_serial_bus; | ||||
| 	struct aml_resource_pin_function pin_function; | ||||
| 	struct aml_resource_pin_config pin_config; | ||||
| 
 | ||||
| 	/* Utility overlays */ | ||||
| 
 | ||||
|  | ||||
| @ -375,6 +375,20 @@ acpi_rs_get_aml_length(struct acpi_resource *resource, | ||||
| 
 | ||||
| 			break; | ||||
| 
 | ||||
| 		case ACPI_RESOURCE_TYPE_PIN_CONFIG: | ||||
| 
 | ||||
| 			total_size = (acpi_rs_length)(total_size + | ||||
| 						      (resource->data. | ||||
| 						       pin_config. | ||||
| 						       pin_table_length * 2) + | ||||
| 						      resource->data.pin_config. | ||||
| 						      resource_source. | ||||
| 						      string_length + | ||||
| 						      resource->data.pin_config. | ||||
| 						      vendor_length); | ||||
| 
 | ||||
| 			break; | ||||
| 
 | ||||
| 		default: | ||||
| 
 | ||||
| 			break; | ||||
| @ -581,6 +595,23 @@ acpi_rs_get_list_length(u8 *aml_buffer, | ||||
| 			    minimum_aml_resource_length; | ||||
| 			break; | ||||
| 
 | ||||
| 		case ACPI_RESOURCE_NAME_PIN_CONFIG: | ||||
| 
 | ||||
| 			/* Vendor data is optional */ | ||||
| 
 | ||||
| 			if (aml_resource->pin_config.vendor_length) { | ||||
| 				extra_struct_bytes += | ||||
| 				    aml_resource->pin_config.vendor_offset - | ||||
| 				    aml_resource->pin_config.pin_table_offset + | ||||
| 				    aml_resource->pin_config.vendor_length; | ||||
| 			} else { | ||||
| 				extra_struct_bytes += | ||||
| 				    aml_resource->large_header.resource_length + | ||||
| 				    sizeof(struct aml_resource_large_header) - | ||||
| 				    aml_resource->pin_config.pin_table_offset; | ||||
| 			} | ||||
| 			break; | ||||
| 
 | ||||
| 		default: | ||||
| 
 | ||||
| 			break; | ||||
|  | ||||
| @ -337,6 +337,31 @@ struct acpi_rsdump_info acpi_rs_dump_pin_function[10] = { | ||||
| 	 "VendorData", NULL}, | ||||
| }; | ||||
| 
 | ||||
| struct acpi_rsdump_info acpi_rs_dump_pin_config[11] = { | ||||
| 	{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_pin_config), | ||||
| 	 "PinConfig", NULL}, | ||||
| 	{ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_config.revision_id), "RevisionId", | ||||
| 	 NULL}, | ||||
| 	{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_config.producer_consumer), | ||||
| 	 "ProducerConsumer", acpi_gbl_consume_decode}, | ||||
| 	{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET(pin_config.sharable), "Sharing", | ||||
| 	 acpi_gbl_shr_decode}, | ||||
| 	{ACPI_RSD_UINT8, ACPI_RSD_OFFSET(pin_config.pin_config_type), | ||||
| 	 "PinConfigType", NULL}, | ||||
| 	{ACPI_RSD_UINT32, ACPI_RSD_OFFSET(pin_config.pin_config_value), | ||||
| 	 "PinConfigValue", NULL}, | ||||
| 	{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET(pin_config.resource_source), | ||||
| 	 "ResourceSource", NULL}, | ||||
| 	{ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_config.pin_table_length), | ||||
| 	 "PinTableLength", NULL}, | ||||
| 	{ACPI_RSD_WORDLIST, ACPI_RSD_OFFSET(pin_config.pin_table), "PinTable", | ||||
| 	 NULL}, | ||||
| 	{ACPI_RSD_UINT16, ACPI_RSD_OFFSET(pin_config.vendor_length), | ||||
| 	 "VendorLength", NULL}, | ||||
| 	{ACPI_RSD_SHORTLISTX, ACPI_RSD_OFFSET(pin_config.vendor_data), | ||||
| 	 "VendorData", NULL}, | ||||
| }; | ||||
| 
 | ||||
| struct acpi_rsdump_info acpi_rs_dump_fixed_dma[4] = { | ||||
| 	{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE(acpi_rs_dump_fixed_dma), | ||||
| 	 "FixedDma", NULL}, | ||||
|  | ||||
| @ -81,6 +81,7 @@ struct acpi_rsconvert_info *acpi_gbl_set_resource_dispatch[] = { | ||||
| 	acpi_rs_convert_fixed_dma,	/* 0x12, ACPI_RESOURCE_TYPE_FIXED_DMA */ | ||||
| 	NULL,			/* 0x13, ACPI_RESOURCE_TYPE_SERIAL_BUS - Use subtype table below */ | ||||
| 	acpi_rs_convert_pin_function,	/* 0x14, ACPI_RESOURCE_TYPE_PIN_FUNCTION */ | ||||
| 	acpi_rs_convert_pin_config,	/* 0x15, ACPI_RESOURCE_TYPE_PIN_CONFIG */ | ||||
| }; | ||||
| 
 | ||||
| /* Dispatch tables for AML-to-resource (Get Resource) conversion functions */ | ||||
| @ -122,6 +123,7 @@ struct acpi_rsconvert_info *acpi_gbl_get_resource_dispatch[] = { | ||||
| 	acpi_rs_convert_gpio,	/* 0x0C, ACPI_RESOURCE_NAME_GPIO */ | ||||
| 	acpi_rs_convert_pin_function,	/* 0x0D, ACPI_RESOURCE_NAME_PIN_FUNCTION */ | ||||
| 	NULL,			/* 0x0E, ACPI_RESOURCE_NAME_SERIAL_BUS - Use subtype table below */ | ||||
| 	acpi_rs_convert_pin_config,	/* 0x0F, ACPI_RESOURCE_NAME_PIN_CONFIG */ | ||||
| }; | ||||
| 
 | ||||
| /* Subtype table for serial_bus -- I2C, SPI, and UART */ | ||||
| @ -159,6 +161,7 @@ struct acpi_rsdump_info *acpi_gbl_dump_resource_dispatch[] = { | ||||
| 	acpi_rs_dump_fixed_dma,	/* ACPI_RESOURCE_TYPE_FIXED_DMA */ | ||||
| 	NULL,			/* ACPI_RESOURCE_TYPE_SERIAL_BUS */ | ||||
| 	acpi_rs_dump_pin_function,	/* ACPI_RESOURCE_TYPE_PIN_FUNCTION */ | ||||
| 	acpi_rs_dump_pin_config,	/* ACPI_RESOURCE_TYPE_PIN_CONFIG */ | ||||
| }; | ||||
| 
 | ||||
| struct acpi_rsdump_info *acpi_gbl_dump_serial_bus_dispatch[] = { | ||||
| @ -196,6 +199,7 @@ const u8 acpi_gbl_aml_resource_sizes[] = { | ||||
| 	sizeof(struct aml_resource_fixed_dma),	/* ACPI_RESOURCE_TYPE_FIXED_DMA */ | ||||
| 	sizeof(struct aml_resource_common_serialbus),	/* ACPI_RESOURCE_TYPE_SERIAL_BUS */ | ||||
| 	sizeof(struct aml_resource_pin_function),	/* ACPI_RESOURCE_TYPE_PIN_FUNCTION */ | ||||
| 	sizeof(struct aml_resource_pin_config),	/* ACPI_RESOURCE_TYPE_PIN_CONFIG */ | ||||
| }; | ||||
| 
 | ||||
| const u8 acpi_gbl_resource_struct_sizes[] = { | ||||
| @ -234,7 +238,8 @@ const u8 acpi_gbl_resource_struct_sizes[] = { | ||||
| 	ACPI_RS_SIZE(struct acpi_resource_extended_address64), | ||||
| 	ACPI_RS_SIZE(struct acpi_resource_gpio), | ||||
| 	ACPI_RS_SIZE(struct acpi_resource_pin_function), | ||||
| 	ACPI_RS_SIZE(struct acpi_resource_common_serialbus) | ||||
| 	ACPI_RS_SIZE(struct acpi_resource_common_serialbus), | ||||
| 	ACPI_RS_SIZE(struct acpi_resource_pin_config), | ||||
| }; | ||||
| 
 | ||||
| const u8 acpi_gbl_aml_resource_serial_bus_sizes[] = { | ||||
|  | ||||
| @ -534,3 +534,81 @@ struct acpi_rsconvert_info acpi_rs_convert_uart_serial_bus[23] = { | ||||
| 	 AML_OFFSET(uart_serial_bus.default_baud_rate), | ||||
| 	 1}, | ||||
| }; | ||||
| 
 | ||||
| /*******************************************************************************
 | ||||
|  * | ||||
|  * acpi_rs_convert_pin_config | ||||
|  * | ||||
|  ******************************************************************************/ | ||||
| 
 | ||||
| struct acpi_rsconvert_info acpi_rs_convert_pin_config[14] = { | ||||
| 	{ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_PIN_CONFIG, | ||||
| 	 ACPI_RS_SIZE(struct acpi_resource_pin_config), | ||||
| 	 ACPI_RSC_TABLE_SIZE(acpi_rs_convert_pin_config)}, | ||||
| 
 | ||||
| 	{ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_PIN_CONFIG, | ||||
| 	 sizeof(struct aml_resource_pin_config), | ||||
| 	 0}, | ||||
| 
 | ||||
| 	{ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.revision_id), | ||||
| 	 AML_OFFSET(pin_config.revision_id), | ||||
| 	 1}, | ||||
| 
 | ||||
| 	{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_config.sharable), | ||||
| 	 AML_OFFSET(pin_config.flags), | ||||
| 	 0}, | ||||
| 
 | ||||
| 	{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET(data.pin_config.producer_consumer), | ||||
| 	 AML_OFFSET(pin_config.flags), | ||||
| 	 1}, | ||||
| 
 | ||||
| 	{ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.pin_config_type), | ||||
| 	 AML_OFFSET(pin_config.pin_config_type), | ||||
| 	 1}, | ||||
| 
 | ||||
| 	{ACPI_RSC_MOVE32, ACPI_RS_OFFSET(data.pin_config.pin_config_value), | ||||
| 	 AML_OFFSET(pin_config.pin_config_value), | ||||
| 	 1}, | ||||
| 
 | ||||
| 	/* Pin Table */ | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * It is OK to use GPIO operations here because none of them refer GPIO | ||||
| 	 * structures directly but instead use offsets given here. | ||||
| 	 */ | ||||
| 
 | ||||
| 	{ACPI_RSC_COUNT_GPIO_PIN, | ||||
| 	 ACPI_RS_OFFSET(data.pin_config.pin_table_length), | ||||
| 	 AML_OFFSET(pin_config.pin_table_offset), | ||||
| 	 AML_OFFSET(pin_config.res_source_offset)}, | ||||
| 
 | ||||
| 	{ACPI_RSC_MOVE_GPIO_PIN, ACPI_RS_OFFSET(data.pin_config.pin_table), | ||||
| 	 AML_OFFSET(pin_config.pin_table_offset), | ||||
| 	 0}, | ||||
| 
 | ||||
| 	/* Resource Source */ | ||||
| 
 | ||||
| 	{ACPI_RSC_MOVE8, ACPI_RS_OFFSET(data.pin_config.resource_source.index), | ||||
| 	 AML_OFFSET(pin_config.res_source_index), | ||||
| 	 1}, | ||||
| 
 | ||||
| 	{ACPI_RSC_COUNT_GPIO_RES, | ||||
| 	 ACPI_RS_OFFSET(data.pin_config.resource_source.string_length), | ||||
| 	 AML_OFFSET(pin_config.res_source_offset), | ||||
| 	 AML_OFFSET(pin_config.vendor_offset)}, | ||||
| 
 | ||||
| 	{ACPI_RSC_MOVE_GPIO_RES, | ||||
| 	 ACPI_RS_OFFSET(data.pin_config.resource_source.string_ptr), | ||||
| 	 AML_OFFSET(pin_config.res_source_offset), | ||||
| 	 0}, | ||||
| 
 | ||||
| 	/* Vendor Data */ | ||||
| 
 | ||||
| 	{ACPI_RSC_COUNT_GPIO_VEN, ACPI_RS_OFFSET(data.pin_config.vendor_length), | ||||
| 	 AML_OFFSET(pin_config.vendor_length), | ||||
| 	 1}, | ||||
| 
 | ||||
| 	{ACPI_RSC_MOVE_GPIO_RES, ACPI_RS_OFFSET(data.pin_config.vendor_data), | ||||
| 	 AML_OFFSET(pin_config.vendor_offset), | ||||
| 	 0}, | ||||
| }; | ||||
|  | ||||
| @ -291,6 +291,25 @@ const char *acpi_gbl_pt_decode[] = { | ||||
| 	"/* UNKNOWN parity keyword */" | ||||
| }; | ||||
| 
 | ||||
| /* pin_config type */ | ||||
| 
 | ||||
| const char *acpi_gbl_ptyp_decode[] = { | ||||
| 	"Default", | ||||
| 	"Bias Pull-up", | ||||
| 	"Bias Pull-down", | ||||
| 	"Bias Default", | ||||
| 	"Bias Disable", | ||||
| 	"Bias High Impedance", | ||||
| 	"Bias Bus Hold", | ||||
| 	"Drive Open Drain", | ||||
| 	"Drive Open Source", | ||||
| 	"Drive Push Pull", | ||||
| 	"Drive Strength", | ||||
| 	"Slew Rate", | ||||
| 	"Input Debounce", | ||||
| 	"Input Schmitt Trigger", | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
| @ -334,6 +353,7 @@ const u8 acpi_gbl_resource_aml_sizes[] = { | ||||
| 	ACPI_AML_SIZE_LARGE(struct aml_resource_gpio), | ||||
| 	ACPI_AML_SIZE_LARGE(struct aml_resource_pin_function), | ||||
| 	ACPI_AML_SIZE_LARGE(struct aml_resource_common_serialbus), | ||||
| 	ACPI_AML_SIZE_LARGE(struct aml_resource_pin_config), | ||||
| }; | ||||
| 
 | ||||
| const u8 acpi_gbl_resource_aml_serial_bus_sizes[] = { | ||||
| @ -385,7 +405,8 @@ static const u8 acpi_gbl_resource_types[] = { | ||||
| 	ACPI_FIXED_LENGTH,	/* 0B Extended* address */ | ||||
| 	ACPI_VARIABLE_LENGTH,	/* 0C Gpio* */ | ||||
| 	ACPI_VARIABLE_LENGTH,	/* 0D pin_function */ | ||||
| 	ACPI_VARIABLE_LENGTH	/* 0E *serial_bus */ | ||||
| 	ACPI_VARIABLE_LENGTH,	/* 0E *serial_bus */ | ||||
| 	ACPI_VARIABLE_LENGTH,	/* 0F pin_config */ | ||||
| }; | ||||
| 
 | ||||
| /*******************************************************************************
 | ||||
|  | ||||
| @ -546,6 +546,36 @@ struct acpi_resource_pin_function { | ||||
| 	u8 *vendor_data; | ||||
| }; | ||||
| 
 | ||||
| struct acpi_resource_pin_config { | ||||
| 	u8 revision_id; | ||||
| 	u8 producer_consumer;	/* For values, see Producer/Consumer above */ | ||||
| 	u8 sharable;		/* For values, see Interrupt Attributes above */ | ||||
| 	u8 pin_config_type; | ||||
| 	u32 pin_config_value; | ||||
| 	u16 pin_table_length; | ||||
| 	u16 vendor_length; | ||||
| 	struct acpi_resource_source resource_source; | ||||
| 	u16 *pin_table; | ||||
| 	u8 *vendor_data; | ||||
| }; | ||||
| 
 | ||||
| /* Values for pin_config_type field above */ | ||||
| 
 | ||||
| #define ACPI_PIN_CONFIG_DEFAULT                 0 | ||||
| #define ACPI_PIN_CONFIG_BIAS_PULL_UP            1 | ||||
| #define ACPI_PIN_CONFIG_BIAS_PULL_DOWN          2 | ||||
| #define ACPI_PIN_CONFIG_BIAS_DEFAULT            3 | ||||
| #define ACPI_PIN_CONFIG_BIAS_DISABLE            4 | ||||
| #define ACPI_PIN_CONFIG_BIAS_HIGH_IMPEDANCE     5 | ||||
| #define ACPI_PIN_CONFIG_BIAS_BUS_HOLD           6 | ||||
| #define ACPI_PIN_CONFIG_DRIVE_OPEN_DRAIN        7 | ||||
| #define ACPI_PIN_CONFIG_DRIVE_OPEN_SOURCE       8 | ||||
| #define ACPI_PIN_CONFIG_DRIVE_PUSH_PULL         9 | ||||
| #define ACPI_PIN_CONFIG_DRIVE_STRENGTH          10 | ||||
| #define ACPI_PIN_CONFIG_SLEW_RATE               11 | ||||
| #define ACPI_PIN_CONFIG_INPUT_DEBOUNCE          12 | ||||
| #define ACPI_PIN_CONFIG_INPUT_SCHMITT_TRIGGER   13 | ||||
| 
 | ||||
| /* ACPI_RESOURCE_TYPEs */ | ||||
| 
 | ||||
| #define ACPI_RESOURCE_TYPE_IRQ                  0 | ||||
| @ -569,7 +599,8 @@ struct acpi_resource_pin_function { | ||||
| #define ACPI_RESOURCE_TYPE_FIXED_DMA            18	/* ACPI 5.0 */ | ||||
| #define ACPI_RESOURCE_TYPE_SERIAL_BUS           19	/* ACPI 5.0 */ | ||||
| #define ACPI_RESOURCE_TYPE_PIN_FUNCTION         20	/* ACPI 6.2 */ | ||||
| #define ACPI_RESOURCE_TYPE_MAX                  20 | ||||
| #define ACPI_RESOURCE_TYPE_PIN_CONFIG           21	/* ACPI 6.2 */ | ||||
| #define ACPI_RESOURCE_TYPE_MAX                  21 | ||||
| 
 | ||||
| /* Master union for resource descriptors */ | ||||
| 
 | ||||
| @ -598,6 +629,7 @@ union acpi_resource_data { | ||||
| 	struct acpi_resource_uart_serialbus uart_serial_bus; | ||||
| 	struct acpi_resource_common_serialbus common_serial_bus; | ||||
| 	struct acpi_resource_pin_function pin_function; | ||||
| 	struct acpi_resource_pin_config pin_config; | ||||
| 
 | ||||
| 	/* Common fields */ | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user