All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
To: u-boot@lists.denx.de
Subject: Antwort: [PATCH v2 13/39] acpi: Add a binding for ACPI settings in the device tree
Date: Tue, 10 Mar 2020 10:15:02 +0100	[thread overview]
Message-ID: <OF7ABEA58C.20B92357-ONC1258527.0032D0B5-C1258527.0032D0B8@br-automation.com> (raw)
In-Reply-To: <20200308214442.v2.13.I7842b2dd0d6b475301fc044c6640d8089873053f@changeid>

Hi Simon,

-----"Simon Glass" <sjg@chromium.org> schrieb: -----
> 
> Devices need to report various identifiers in the ACPI tables. Rather than
> hard-coding these in drivers it is typically better to put them in the
> device tree.
> 
> Add a binding file to describe this.
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
> Changes in v2:
> - Fix definition of HID
> - Infer hid-over-i2c CID value
> - Add the hid-over-i2c binding document
> 
>  doc/device-tree-bindings/device.txt           | 36 +++++++++++++++
>  .../input/hid-over-i2c.txt                    | 44 +++++++++++++++++++
>  2 files changed, 80 insertions(+)
>  create mode 100644 doc/device-tree-bindings/device.txt
>  create mode 100644 doc/device-tree-bindings/input/hid-over-i2c.txt
> 
> diff --git a/doc/device-tree-bindings/device.txt b/doc/device-tree-bindings/device.txt
> new file mode 100644
> index 0000000000..31ec2fa31b
> --- /dev/null
> +++ b/doc/device-tree-bindings/device.txt
> @@ -0,0 +1,36 @@
> +Devices
> +=======
> +
> +Device bindings are described by their own individual binding files.
> +
> +U-Boot provides for some optional properties which are documented here. See
> +also hid-over-i2c.txt which describes HID devices.
> +
> + - acpi,has-power-resource : (boolean) true if this device has a power resource.
> +    This causes a PRIC (ACPI PowerResource) to be written containing the

What is the meaning of PRIC? I can't find a defition for this term.

> +    properties provided by this binding, to describe how to handle powering the
> +    device up and down using GPIOs
> + - acpi,compatible : compatible string to report

What does "compatible string" mean in this context? Does it refer to the 
"Compatible ID" (_CID) of ACPI? As stated in the previous mail thread [1],
I think we could infer many of the ACPI properties from existing device tree
properties. Especially I suspect that ACPI's _CID could have a 1:1 mapping
to the compatible property in device tree. E.g. a driver which states that
it is compatible with "hid-over-i2c" in its device tree description would
know (implement internally) that it is also compatible with ACPI's _CID
"PNP0C50", thus we would not have to add this information in the device tree.

[1] https://lists.denx.de/pipermail/u-boot/2020-February/398856.html

> + - acpi,desc : Contains the string to use as the _DDN (DOS (Disk Operating
> +    System) Device Name)

Nit: I assume "desc" stands for "description". But strictly speaking it is
not a description, it is a device name. I would prefer something like
"acpi,devname" or even "acpi,ddn".

> + - acpi,hid : Contains the string to use as the HID (Hardware ID)
> +    identifier _HID
> + - hid-descr-addr : HID register offset (for Human Interface Devices)

This property is already described in the file hid-over-i2c.txt (with a similar
but slightly different text), thus I would not describe it here also.

> + - acpi,probed : Tells U-Boot to add 'linux,probed' to the ACPI tables so that
> +    Linux will not re-init the device

I can't find 'linux,probed' in the Linux kernel.
I only find it in patches specific for chromium-os[2], but the description
there does not match the description given here (there it is described as
being probed before insertion vs. here it is described as not being probed
any more).

[2] https://groups.google.com/a/chromium.org/forum/#!msg/chromium-os-reviews/4HTHl78IGHw/oz82uImnBgAJ

> + - acpi,uid : _UID value for device
> +
> +
> +Example
> +-------
> +
> +synaptics_touchpad: synaptics-touchpad at 2c {
> +	compatible = "hid-over-i2c";
> +	reg = <0x2c>;
> +	acpi,hid = "PNP0C50";
> +	acpi,desc = "Synaptics Touchpad";
> +	interrupts-extended = <&acpi_gpe GPIO_18_IRQ
> +			IRQ_TYPE_EDGE_FALLING>;
> +	acpi,probed;
> +	hid-descr-addr = <0x20>;
> +};
> diff --git a/doc/device-tree-bindings/input/hid-over-i2c.txt b/doc/device-tree-bindings/input/hid-over-i2c.txt
> new file mode 100644

Adding the file hid-over-i2c.txt is straight forward, while getting the ACPI
bindings correct is probably more tricky. Would it make sense to add this file
in an individual patch?

> index 0000000000..c76bafaf98
> --- /dev/null
> +++ b/doc/device-tree-bindings/input/hid-over-i2c.txt

This file is taken from the Linux kernel, should this be stated at the
beginning? (I often see "Taken from ..." in source code files, I'm not sure
how this is handled for documentation).

> @@ -0,0 +1,44 @@
> +* HID over I2C Device-Tree bindings
> +
> +HID over I2C provides support for various Human Interface Devices over the
> +I2C bus. These devices can be for example touchpads, keyboards, touch screens
> +or sensors.
> +
> +The specification has been written by Microsoft and is currently available here:
> +http://msdn.microsoft.com/en-us/library/windows/hardware/hh852380.aspx
> +
> +If this binding is used, the kernel module i2c-hid will handle the communication
> +with the device and the generic hid core layer will handle the protocol.

This sentence is specific to the Linux kernel, and does not really apply to
U-Boot. I would propose one of the following:

* Point out specifically that the Linux kernel is talked about
* Drop the sentence
* State at the beginning of the file that the file is taken unmodified from the
  Linux kernel

> +
> +Required properties:
> +- compatible: must be "hid-over-i2c"
> +- reg: i2c slave address
> +- hid-descr-addr: HID descriptor address
> +- interrupts: interrupt line
> +
> +Additional optional properties:
> +
> +Some devices may support additional optional properties to help with, e.g.,
> +power sequencing. The following properties can be supported by one or more
> +device-specific compatible properties, which should be used in addition to the
> +"hid-over-i2c" string.
> +
> +- compatible:
> +  * "wacom,w9013" (Wacom W9013 digitizer). Supports:
> +    - vdd-supply (3.3V)
> +    - vddl-supply (1.8V)
> +    - post-power-on-delay-ms
> +
> +- vdd-supply: phandle of the regulator that provides the supply voltage.
> +- post-power-on-delay-ms: time required by the device after enabling its regulators
> +  or powering it on, before it is ready for communication.
> +
> +Example:
> +
> +	i2c-hid-dev at 2c {
> +		compatible = "hid-over-i2c";
> +		reg = <0x2c>;
> +		hid-descr-addr = <0x0020>;
> +		interrupt-parent = <&gpx3>;
> +		interrupts = <3 2>;
> +	};
> -- 
> 2.25.1.481.gfbce0eb801-goog
> 

regards, Wolfgang

  parent reply	other threads:[~2020-03-10  9:15 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09  3:44 [PATCH v2 00/39] dm: Add programmatic generation of ACPI tables (part A) Simon Glass
2020-03-09  3:44 ` [PATCH v2 01/39] cpu: Support querying the address width Simon Glass
2020-03-09  3:44 ` [PATCH v2 02/39] spi: Add SPI mode enums Simon Glass
2020-03-09  7:41   ` Andy Shevchenko
2020-03-09  3:44 ` [PATCH v2 03/39] tpm: cr50: Release locality on exit Simon Glass
2020-03-09  3:44 ` [PATCH v2 04/39] tpm: cr50: Add a comment for cr50_priv Simon Glass
2020-03-09  3:44 ` [PATCH v2 05/39] tpm: cr50: Use the correct GPIO binding Simon Glass
2020-03-09  3:44 ` [PATCH v2 06/39] tpm: Don't cleanup unless an error happens Simon Glass
2020-03-09  3:44 ` [PATCH v2 07/39] dm: pci: Allow disabling auto-config for a device Simon Glass
2020-03-09  7:43   ` Andy Shevchenko
2020-03-09  3:44 ` [PATCH v2 08/39] x86: Correct wording of coreboot source code Simon Glass
2020-03-09  7:44   ` Andy Shevchenko
2020-03-10 23:22     ` Simon Glass
2020-03-09  3:44 ` [PATCH v2 09/39] x86: apl: Move p2sb ofdata reading to the correct method Simon Glass
2020-03-10 14:39   ` Andy Shevchenko
2020-03-11 12:17     ` Simon Glass
2020-03-11 13:06       ` Andy Shevchenko
2020-03-09  3:44 ` [PATCH v2 10/39] pci: Adjust dm_pci_read_bar32() to return errors correctly Simon Glass
2020-03-09  3:44 ` [PATCH v2 11/39] x86: apl: Add Global NVS table header Simon Glass
2020-03-09  3:44 ` [PATCH v2 12/39] dm: core: Add basic ACPI support Simon Glass
2020-03-10 14:46   ` Andy Shevchenko
2020-03-11 12:17     ` Simon Glass
2020-03-09  3:44 ` [PATCH v2 13/39] acpi: Add a binding for ACPI settings in the device tree Simon Glass
2020-03-10 14:50   ` Andy Shevchenko
2020-03-12  3:22     ` Simon Glass
2020-03-09  3:44 ` [PATCH v2 14/39] acpi: Add a simple sandbox test Simon Glass
2020-03-09  3:44 ` [PATCH v2 15/39] x86: Move acpi_table header to main include/ directory Simon Glass
2020-03-09  3:44 ` [PATCH v2 16/39] acpi: Add an __ACPI__ preprocessor symbol Simon Glass
2020-03-09  3:44 ` [PATCH v2 17/39] acpi: Add a central location for table version numbers Simon Glass
2020-03-09  3:44 ` [PATCH v2 18/39] acpi: Add support for DMAR Simon Glass
2020-03-09  3:44 ` [PATCH v2 19/39] acpi: Move acpi_fill_header() to generic code Simon Glass
2020-03-09  3:44 ` [PATCH v2 20/39] acpi: Add a method to write tables for a device Simon Glass
2020-03-09  3:44 ` [PATCH v2 21/39] acpi: Convert part of acpi_table to use acpi_ctx Simon Glass
2020-03-09  3:44 ` [PATCH v2 22/39] x86: Allow devices to write ACPI tables Simon Glass
2020-03-09  3:44 ` [PATCH v2 23/39] acpi: Drop code for missing XSDT from acpi_write_rsdp() Simon Glass
2020-03-09  3:44 ` [PATCH v2 24/39] acpi: Move acpi_add_table() to generic code Simon Glass
2020-03-09  3:44 ` [PATCH v2 25/39] acpi: Put table-setup code in its own function Simon Glass
2020-03-09  3:44 ` [PATCH v2 26/39] acpi: Move the xsdt pointer to acpi_ctx Simon Glass
2020-03-09  3:44 ` [PATCH v2 27/39] acpi: Add an acpi command Simon Glass
2020-03-09  3:44 ` [PATCH v2 28/39] acpi: Add some tables required by the generation code Simon Glass
2020-03-09  3:44 ` [PATCH v2 29/39] acpi: Add generation code for devices Simon Glass
2020-03-09  3:44 ` [PATCH v2 30/39] acpi: Add functions to generate ACPI code Simon Glass
2020-03-09  3:44 ` [PATCH v2 31/39] gpio: Add a method to convert a GPIO to ACPI Simon Glass
2020-03-09  3:44 ` [PATCH v2 32/39] irq: Add a method to convert an interrupt " Simon Glass
2020-03-18 16:17   ` Antwort: " Wolfgang Wallner
2020-03-18 16:20   ` Wolfgang Wallner
2020-03-19 16:18     ` Simon Glass
2020-03-09  3:44 ` [PATCH v2 33/39] acpi: Add support for SSDT generation Simon Glass
2020-03-18 16:48   ` Antwort: " Wolfgang Wallner
2020-03-19  7:39   ` Wolfgang Wallner
2020-03-09  3:44 ` [PATCH v2 34/39] x86: acpi: Move MADT up a bit Simon Glass
2020-03-09  3:44 ` [PATCH v2 35/39] acpi: Record the items added to SSDT Simon Glass
2020-03-09  3:45 ` [PATCH v2 36/39] acpi: Support ordering SSDT data by device Simon Glass
2020-03-09  3:45 ` [PATCH v2 37/39] x86: Allow devices to write an SSDT Simon Glass
2020-03-09  3:45 ` [PATCH v2 38/39] acpi: Add support for DSDT generation Simon Glass
2020-03-09  3:45 ` [PATCH v2 39/39] x86: Allow devices to write to DSDT Simon Glass
2020-03-09  7:38 ` Antwort: [PATCH v2 02/39] spi: Add SPI mode enums Wolfgang Wallner
2020-03-09  7:38 ` Antwort: [PATCH v2 08/39] x86: Correct wording of coreboot source code Wolfgang Wallner
2020-03-09  7:38 ` Antwort: [PATCH v2 10/39] pci: Adjust dm_pci_read_bar32() to return errors correctly Wolfgang Wallner
2020-03-09  7:38 ` Antwort: [PATCH v2 11/39] x86: apl: Add Global NVS table header Wolfgang Wallner
2020-03-09  9:07 ` Antwort: [PATCH v2 12/39] dm: core: Add basic ACPI support Wolfgang Wallner
2020-03-10  9:15 ` Wolfgang Wallner [this message]
2020-03-12  3:24   ` [PATCH v2 13/39] acpi: Add a binding for ACPI settings in the device tree Simon Glass
2020-03-12 12:44   ` Antwort: " Wolfgang Wallner
2020-03-13  0:36     ` Simon Glass
2020-03-10  9:16 ` Antwort: [PATCH v2 15/39] x86: Move acpi_table header to main include/ directory Wolfgang Wallner
2020-03-10  9:17 ` Antwort: [PATCH v2 16/39] acpi: Add an __ACPI__ preprocessor symbol Wolfgang Wallner
2020-03-10  9:26 ` Antwort: [PATCH v2 17/39] acpi: Add a central location for table version numbers Wolfgang Wallner
2020-03-12  3:22   ` Simon Glass
2020-03-10 12:32 ` Antwort: [PATCH v2 18/39] acpi: Add support for DMAR Wolfgang Wallner
2020-03-10 12:33 ` Antwort: [PATCH v2 19/39] acpi: Move acpi_fill_header() to generic code Wolfgang Wallner
2020-03-10 12:53 ` Antwort: [PATCH v2 14/39] acpi: Add a simple sandbox test Wolfgang Wallner
2020-03-11  9:04 ` Antwort: [PATCH v2 19/39] acpi: Move acpi_fill_header() to generic code Wolfgang Wallner
2020-03-11 11:36 ` Antwort: [PATCH v2 20/39] acpi: Add a method to write tables for a device Wolfgang Wallner
2020-03-11 11:37 ` Antwort: [PATCH v2 22/39] x86: Allow devices to write ACPI tables Wolfgang Wallner
2020-03-11 12:58 ` Antwort: [PATCH v2 21/39] acpi: Convert part of acpi_table to use acpi_ctx Wolfgang Wallner
2020-03-12  3:23   ` Simon Glass
2020-03-12 13:03   ` Antwort: " Wolfgang Wallner
2020-03-11 13:43 ` Antwort: [PATCH v2 24/39] acpi: Move acpi_add_table() to generic code Wolfgang Wallner
2020-03-11 14:33 ` Antwort: [PATCH v2 25/39] acpi: Put table-setup code in its own function Wolfgang Wallner
2020-03-11 14:34 ` Antwort: [PATCH v2 23/39] acpi: Drop code for missing XSDT from acpi_write_rsdp() Wolfgang Wallner
2020-03-11 14:57 ` Antwort: [PATCH v2 26/39] acpi: Move the xsdt pointer to acpi_ctx Wolfgang Wallner
2020-03-12 14:30 ` Antwort: [PATCH v2 27/39] acpi: Add an acpi command Wolfgang Wallner
2020-03-13  9:55 ` Antwort: [PATCH v2 30/39] acpi: Add functions to generate ACPI code Wolfgang Wallner
2020-03-14 20:34   ` Simon Glass
2020-03-13 11:16 ` Antwort: [PATCH v2 31/39] gpio: Add a method to convert a GPIO to ACPI Wolfgang Wallner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=OF7ABEA58C.20B92357-ONC1258527.0032D0B5-C1258527.0032D0B8@br-automation.com \
    --to=wolfgang.wallner@br-automation.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.