mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
Added timestamp provider support for the Tegra234 in devicetree bindings. From Tegra234 SoC onwards, the nvidia,gpio-controller property is required. This is needed as the tegra always-on (AON) GPIO HTE/GTE provider depends on the AON GPIO controller where it needs to do namespace conversion between GPIO line number (belonging to AON GPIO controller instance) and the GTE slice bits. Signed-off-by: Dipen Patel <dipenp@nvidia.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
141 lines
3.7 KiB
YAML
141 lines
3.7 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/timestamp/nvidia,tegra194-hte.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Tegra on chip generic hardware timestamping engine (HTE) provider
|
|
|
|
maintainers:
|
|
- Dipen Patel <dipenp@nvidia.com>
|
|
|
|
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
|
|
- nvidia,tegra234-gte-aon
|
|
- nvidia,tegra234-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 the value depends on the HTE instance in the chip.
|
|
enum: [3, 11, 17]
|
|
|
|
nvidia,gpio-controller:
|
|
$ref: /schemas/types.yaml#/definitions/phandle
|
|
description:
|
|
The phandle to AON gpio controller instance. This is required to handle
|
|
namespace conversion between GPIO and GTE.
|
|
|
|
'#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"
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- nvidia,tegra194-gte-aon
|
|
- nvidia,tegra234-gte-aon
|
|
then:
|
|
properties:
|
|
nvidia,slices:
|
|
const: 3
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- nvidia,tegra194-gte-lic
|
|
then:
|
|
properties:
|
|
nvidia,slices:
|
|
const: 11
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- nvidia,tegra234-gte-lic
|
|
then:
|
|
properties:
|
|
nvidia,slices:
|
|
const: 17
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- nvidia,tegra234-gte-aon
|
|
then:
|
|
required:
|
|
- nvidia,gpio-controller
|
|
|
|
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>;
|
|
};
|
|
|
|
...
|