From e6a3a65be8e4dc6fc74fdb28483ba5b997aab6aa Mon Sep 17 00:00:00 2001 From: Dipen Patel Date: Fri, 22 Apr 2022 13:52:15 -0700 Subject: dt-bindings: Add HTE bindings Introduces HTE devicetree binding details for the HTE subsystem. It includes examples for the consumers, binding details for the providers and specific binding details for the Tegra194 based HTE providers. Signed-off-by: Dipen Patel Reviewed-by: Linus Walleij Signed-off-by: Thierry Reding --- .../bindings/hte/hardware-timestamps-common.yaml | 29 +++++++ .../devicetree/bindings/hte/hte-consumer.yaml | 39 ++++++++++ .../bindings/hte/nvidia,tegra194-hte.yaml | 88 ++++++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml create mode 100644 Documentation/devicetree/bindings/hte/hte-consumer.yaml create mode 100644 Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml (limited to 'Documentation/devicetree/bindings') diff --git a/Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml b/Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml new file mode 100644 index 000000000000..3e26de605f08 --- /dev/null +++ b/Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hte/hardware-timestamps-common.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Hardware timestamp providers + +maintainers: + - Dipen Patel + +description: + Some devices/SoCs have hardware time stamping engines which can use hardware + means to timestamp entity in realtime. The entity could be anything from + GPIOs, IRQs, Bus and so on. The hardware timestamp engine (HTE) present + itself as a provider with the bindings described in this document. + +properties: + $nodename: + pattern: "^timestamp(@.*|-[0-9a-f])?$" + + "#timestamp-cells": + description: + Number of cells in a HTE specifier. + +required: + - "#timestamp-cells" + +additionalProperties: true diff --git a/Documentation/devicetree/bindings/hte/hte-consumer.yaml b/Documentation/devicetree/bindings/hte/hte-consumer.yaml new file mode 100644 index 000000000000..68d764ac040a --- /dev/null +++ b/Documentation/devicetree/bindings/hte/hte-consumer.yaml @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hte/hte-consumer.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: HTE Consumer Device Tree Bindings + +maintainers: + - Dipen Patel + +select: true + +properties: + timestamps: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + The list of HTE provider phandle. The first cell must represent the + provider phandle followed by the line identifiers. The meaning of the + line identifier and exact number of arguments must be specified in the + HTE provider device tree binding document. + + timestamp-names: + $ref: /schemas/types.yaml#/definitions/string-array + description: + An optional string property to label each line specifier present in the + timestamp property. + +dependencies: + timestamp-names: [ timestamps ] + +additionalProperties: true + +examples: + - | + hte_tegra_consumer { + timestamps = <&tegra_hte_aon 0x9>, <&tegra_hte_lic 0x19>; + timestamp-names = "hte-gpio", "hte-i2c"; + }; diff --git a/Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml new file mode 100644 index 000000000000..69e8402d95e5 --- /dev/null +++ b/Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml @@ -0,0 +1,88 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hte/nvidia,tegra194-hte.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Tegra194 on chip generic hardware timestamping engine (HTE) + +maintainers: + - Dipen Patel + +description: + Tegra SoC has two instances of generic hardware timestamping engines (GTE) + known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip + IRQ lines for the state change respectively, upon detection it will record + timestamp (taken from system counter) in its internal hardware FIFO. It has + a bitmap array arranged in 32bit slices where each bit represent signal/line + to enable or disable for the hardware timestamping. The GTE GPIO monitors + GPIO lines from the AON (always on) GPIO controller. + +properties: + compatible: + enum: + - nvidia,tegra194-gte-aon + - nvidia,tegra194-gte-lic + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + nvidia,int-threshold: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + HTE device generates its interrupt based on this u32 FIFO threshold + value. The recommended value is 1. + minimum: 1 + maximum: 256 + + nvidia,slices: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + HTE lines are arranged in 32 bit slice where each bit represents different + line/signal that it can enable/configure for the timestamp. It is u32 + property and depends on the HTE instance in the chip. The value 3 is for + GPIO GTE and 11 for IRQ GTE. + enum: [3, 11] + + '#timestamp-cells': + description: + This represents number of line id arguments as specified by the + consumers. For the GTE IRQ, this is IRQ number as mentioned in the + SoC technical reference manual. For the GTE GPIO, its value is same as + mentioned in the nvidia GPIO device tree binding document. + const: 1 + +required: + - compatible + - reg + - interrupts + - nvidia,slices + - "#timestamp-cells" + +additionalProperties: false + +examples: + - | + tegra_hte_aon: timestamp@c1e0000 { + compatible = "nvidia,tegra194-gte-aon"; + reg = <0xc1e0000 0x10000>; + interrupts = <0 13 0x4>; + nvidia,int-threshold = <1>; + nvidia,slices = <3>; + #timestamp-cells = <1>; + }; + + - | + tegra_hte_lic: timestamp@3aa0000 { + compatible = "nvidia,tegra194-gte-lic"; + reg = <0x3aa0000 0x10000>; + interrupts = <0 11 0x4>; + nvidia,int-threshold = <1>; + nvidia,slices = <11>; + #timestamp-cells = <1>; + }; + +... -- cgit v1.2.3 From af583852d2efcbc76ce68ac8d65126d4b0c65067 Mon Sep 17 00:00:00 2001 From: Dipen Patel Date: Thu, 12 May 2022 10:50:11 -0700 Subject: dt-bindings: Renamed hte directory to timestamp Renamed hte dt binding directory to timestamp according review comment. Addressed minor comment about having HTE acronym first in the common dt binding document. The change reflects above renaming in MAINTAINERS files too. Signed-off-by: Dipen Patel Reviewed-by: Linus Walleij Acked-by: Rob Herring Signed-off-by: Thierry Reding --- .../bindings/hte/hardware-timestamps-common.yaml | 29 ------- .../devicetree/bindings/hte/hte-consumer.yaml | 39 ---------- .../bindings/hte/nvidia,tegra194-hte.yaml | 88 ---------------------- .../timestamp/hardware-timestamps-common.yaml | 29 +++++++ .../bindings/timestamp/hte-consumer.yaml | 39 ++++++++++ .../bindings/timestamp/nvidia,tegra194-hte.yaml | 88 ++++++++++++++++++++++ MAINTAINERS | 2 +- 7 files changed, 157 insertions(+), 157 deletions(-) delete mode 100644 Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml delete mode 100644 Documentation/devicetree/bindings/hte/hte-consumer.yaml delete mode 100644 Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml create mode 100644 Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml create mode 100644 Documentation/devicetree/bindings/timestamp/hte-consumer.yaml create mode 100644 Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml (limited to 'Documentation/devicetree/bindings') diff --git a/Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml b/Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml deleted file mode 100644 index 3e26de605f08..000000000000 --- a/Documentation/devicetree/bindings/hte/hardware-timestamps-common.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/hte/hardware-timestamps-common.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Hardware timestamp providers - -maintainers: - - Dipen Patel - -description: - Some devices/SoCs have hardware time stamping engines which can use hardware - means to timestamp entity in realtime. The entity could be anything from - GPIOs, IRQs, Bus and so on. The hardware timestamp engine (HTE) present - itself as a provider with the bindings described in this document. - -properties: - $nodename: - pattern: "^timestamp(@.*|-[0-9a-f])?$" - - "#timestamp-cells": - description: - Number of cells in a HTE specifier. - -required: - - "#timestamp-cells" - -additionalProperties: true diff --git a/Documentation/devicetree/bindings/hte/hte-consumer.yaml b/Documentation/devicetree/bindings/hte/hte-consumer.yaml deleted file mode 100644 index 68d764ac040a..000000000000 --- a/Documentation/devicetree/bindings/hte/hte-consumer.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/hte/hte-consumer.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: HTE Consumer Device Tree Bindings - -maintainers: - - Dipen Patel - -select: true - -properties: - timestamps: - $ref: /schemas/types.yaml#/definitions/phandle-array - description: - The list of HTE provider phandle. The first cell must represent the - provider phandle followed by the line identifiers. The meaning of the - line identifier and exact number of arguments must be specified in the - HTE provider device tree binding document. - - timestamp-names: - $ref: /schemas/types.yaml#/definitions/string-array - description: - An optional string property to label each line specifier present in the - timestamp property. - -dependencies: - timestamp-names: [ timestamps ] - -additionalProperties: true - -examples: - - | - hte_tegra_consumer { - timestamps = <&tegra_hte_aon 0x9>, <&tegra_hte_lic 0x19>; - timestamp-names = "hte-gpio", "hte-i2c"; - }; diff --git a/Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml deleted file mode 100644 index 69e8402d95e5..000000000000 --- a/Documentation/devicetree/bindings/hte/nvidia,tegra194-hte.yaml +++ /dev/null @@ -1,88 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/hte/nvidia,tegra194-hte.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Tegra194 on chip generic hardware timestamping engine (HTE) - -maintainers: - - Dipen Patel - -description: - Tegra SoC has two instances of generic hardware timestamping engines (GTE) - known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip - IRQ lines for the state change respectively, upon detection it will record - timestamp (taken from system counter) in its internal hardware FIFO. It has - a bitmap array arranged in 32bit slices where each bit represent signal/line - to enable or disable for the hardware timestamping. The GTE GPIO monitors - GPIO lines from the AON (always on) GPIO controller. - -properties: - compatible: - enum: - - nvidia,tegra194-gte-aon - - nvidia,tegra194-gte-lic - - reg: - maxItems: 1 - - interrupts: - maxItems: 1 - - nvidia,int-threshold: - $ref: /schemas/types.yaml#/definitions/uint32 - description: - HTE device generates its interrupt based on this u32 FIFO threshold - value. The recommended value is 1. - minimum: 1 - maximum: 256 - - nvidia,slices: - $ref: /schemas/types.yaml#/definitions/uint32 - description: - HTE lines are arranged in 32 bit slice where each bit represents different - line/signal that it can enable/configure for the timestamp. It is u32 - property and depends on the HTE instance in the chip. The value 3 is for - GPIO GTE and 11 for IRQ GTE. - enum: [3, 11] - - '#timestamp-cells': - description: - This represents number of line id arguments as specified by the - consumers. For the GTE IRQ, this is IRQ number as mentioned in the - SoC technical reference manual. For the GTE GPIO, its value is same as - mentioned in the nvidia GPIO device tree binding document. - const: 1 - -required: - - compatible - - reg - - interrupts - - nvidia,slices - - "#timestamp-cells" - -additionalProperties: false - -examples: - - | - tegra_hte_aon: timestamp@c1e0000 { - compatible = "nvidia,tegra194-gte-aon"; - reg = <0xc1e0000 0x10000>; - interrupts = <0 13 0x4>; - nvidia,int-threshold = <1>; - nvidia,slices = <3>; - #timestamp-cells = <1>; - }; - - - | - tegra_hte_lic: timestamp@3aa0000 { - compatible = "nvidia,tegra194-gte-lic"; - reg = <0x3aa0000 0x10000>; - interrupts = <0 11 0x4>; - nvidia,int-threshold = <1>; - nvidia,slices = <11>; - #timestamp-cells = <1>; - }; - -... diff --git a/Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml b/Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml new file mode 100644 index 000000000000..4c25ba248a72 --- /dev/null +++ b/Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hte/hardware-timestamps-common.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Hardware timestamp providers + +maintainers: + - Dipen Patel + +description: + Some devices/SoCs have hardware timestamp engines (HTE) which can use + hardware means to timestamp entity in realtime. The entity could be anything + from GPIOs, IRQs, Bus and so on. The hardware timestamp engine present + itself as a provider with the bindings described in this document. + +properties: + $nodename: + pattern: "^timestamp(@.*|-[0-9a-f])?$" + + "#timestamp-cells": + description: + Number of cells in a HTE specifier. + +required: + - "#timestamp-cells" + +additionalProperties: true diff --git a/Documentation/devicetree/bindings/timestamp/hte-consumer.yaml b/Documentation/devicetree/bindings/timestamp/hte-consumer.yaml new file mode 100644 index 000000000000..68d764ac040a --- /dev/null +++ b/Documentation/devicetree/bindings/timestamp/hte-consumer.yaml @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hte/hte-consumer.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: HTE Consumer Device Tree Bindings + +maintainers: + - Dipen Patel + +select: true + +properties: + timestamps: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: + The list of HTE provider phandle. The first cell must represent the + provider phandle followed by the line identifiers. The meaning of the + line identifier and exact number of arguments must be specified in the + HTE provider device tree binding document. + + timestamp-names: + $ref: /schemas/types.yaml#/definitions/string-array + description: + An optional string property to label each line specifier present in the + timestamp property. + +dependencies: + timestamp-names: [ timestamps ] + +additionalProperties: true + +examples: + - | + hte_tegra_consumer { + timestamps = <&tegra_hte_aon 0x9>, <&tegra_hte_lic 0x19>; + timestamp-names = "hte-gpio", "hte-i2c"; + }; diff --git a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml new file mode 100644 index 000000000000..69e8402d95e5 --- /dev/null +++ b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml @@ -0,0 +1,88 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hte/nvidia,tegra194-hte.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Tegra194 on chip generic hardware timestamping engine (HTE) + +maintainers: + - Dipen Patel + +description: + Tegra SoC has two instances of generic hardware timestamping engines (GTE) + known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip + IRQ lines for the state change respectively, upon detection it will record + timestamp (taken from system counter) in its internal hardware FIFO. It has + a bitmap array arranged in 32bit slices where each bit represent signal/line + to enable or disable for the hardware timestamping. The GTE GPIO monitors + GPIO lines from the AON (always on) GPIO controller. + +properties: + compatible: + enum: + - nvidia,tegra194-gte-aon + - nvidia,tegra194-gte-lic + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + nvidia,int-threshold: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + HTE device generates its interrupt based on this u32 FIFO threshold + value. The recommended value is 1. + minimum: 1 + maximum: 256 + + nvidia,slices: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + HTE lines are arranged in 32 bit slice where each bit represents different + line/signal that it can enable/configure for the timestamp. It is u32 + property and depends on the HTE instance in the chip. The value 3 is for + GPIO GTE and 11 for IRQ GTE. + enum: [3, 11] + + '#timestamp-cells': + description: + This represents number of line id arguments as specified by the + consumers. For the GTE IRQ, this is IRQ number as mentioned in the + SoC technical reference manual. For the GTE GPIO, its value is same as + mentioned in the nvidia GPIO device tree binding document. + const: 1 + +required: + - compatible + - reg + - interrupts + - nvidia,slices + - "#timestamp-cells" + +additionalProperties: false + +examples: + - | + tegra_hte_aon: timestamp@c1e0000 { + compatible = "nvidia,tegra194-gte-aon"; + reg = <0xc1e0000 0x10000>; + interrupts = <0 13 0x4>; + nvidia,int-threshold = <1>; + nvidia,slices = <3>; + #timestamp-cells = <1>; + }; + + - | + tegra_hte_lic: timestamp@3aa0000 { + compatible = "nvidia,tegra194-gte-lic"; + reg = <0x3aa0000 0x10000>; + interrupts = <0 11 0x4>; + nvidia,int-threshold = <1>; + nvidia,slices = <11>; + #timestamp-cells = <1>; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index dbc17c6945ae..5feb95e67f0b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9002,7 +9002,7 @@ F: drivers/input/touchscreen/htcpen.c HTE SUBSYSTEM M: Dipen Patel S: Maintained -F: Documentation/devicetree/bindings/hte/ +F: Documentation/devicetree/bindings/timestamp/ F: Documentation/hte/ F: drivers/hte/ F: include/linux/hte.h -- cgit v1.2.3 From 5dad4eccd2b4316a84209603a28d34c6346392bb Mon Sep 17 00:00:00 2001 From: Dipen Patel Date: Mon, 23 May 2022 10:25:15 -0700 Subject: dt-bindings: timestamp: Correct id path During the repository renaming from hte to timestamp, $id path was not updated accordingly. This patch corrects $id path. Fixes: af583852d2ef ("dt-bindings: Renamed hte directory to timestamp") Signed-off-by: Dipen Patel Acked-by: Rob Herring Signed-off-by: Thierry Reding --- .../devicetree/bindings/timestamp/hardware-timestamps-common.yaml | 2 +- Documentation/devicetree/bindings/timestamp/hte-consumer.yaml | 2 +- Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'Documentation/devicetree/bindings') diff --git a/Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml b/Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml index 4c25ba248a72..fd6a7b51f571 100644 --- a/Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml +++ b/Documentation/devicetree/bindings/timestamp/hardware-timestamps-common.yaml @@ -1,7 +1,7 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/hte/hardware-timestamps-common.yaml# +$id: http://devicetree.org/schemas/timestamp/hardware-timestamps-common.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Hardware timestamp providers diff --git a/Documentation/devicetree/bindings/timestamp/hte-consumer.yaml b/Documentation/devicetree/bindings/timestamp/hte-consumer.yaml index 68d764ac040a..6456515c3d26 100644 --- a/Documentation/devicetree/bindings/timestamp/hte-consumer.yaml +++ b/Documentation/devicetree/bindings/timestamp/hte-consumer.yaml @@ -1,7 +1,7 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/hte/hte-consumer.yaml# +$id: http://devicetree.org/schemas/timestamp/hte-consumer.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: HTE Consumer Device Tree Bindings diff --git a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml index 69e8402d95e5..c31e207d1652 100644 --- a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml +++ b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml @@ -1,7 +1,7 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/hte/nvidia,tegra194-hte.yaml# +$id: http://devicetree.org/schemas/timestamp/nvidia,tegra194-hte.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Tegra194 on chip generic hardware timestamping engine (HTE) -- cgit v1.2.3