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:
Mika Westerberg
2017-06-05 16:39:19 +08:00
committed by Rafael J. Wysocki
szülő 2b72693066
commit 97028ce6fc
10 fájl változott, egészen pontosan 223 új sor hozzáadva és 4 régi sor törölve

Fájl megtekintése

@@ -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 */