Message ID | 20221103174523.29592-5-dipenp@nvidia.com |
---|---|
State | Superseded |
Headers | show |
Series | Add Tegra234 HTE support | expand |
On Thu, Nov 03, 2022 at 10:45:20AM -0700, Dipen Patel wrote: > Added timestamp provider support for the Tegra234 in devicetree > bindings. > > Signed-off-by: Dipen Patel <dipenp@nvidia.com> > --- > .../timestamp/nvidia,tegra194-hte.yaml | 44 +++++++++++++++++-- > 1 file changed, 40 insertions(+), 4 deletions(-) > > diff --git a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml > index c31e207d1652..158dbe58c49f 100644 > --- a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml > +++ b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml > @@ -4,7 +4,7 @@ > $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) > +title: Tegra on chip generic hardware timestamping engine (HTE) provider > > maintainers: > - Dipen Patel <dipenp@nvidia.com> > @@ -23,6 +23,8 @@ properties: > enum: > - nvidia,tegra194-gte-aon > - nvidia,tegra194-gte-lic > + - nvidia,tegra234-gte-aon > + - nvidia,tegra234-gte-lic How is the h/w in this chip different from the existing one? I'm assuming it must be because you don't have a fallback compatible. > > reg: > maxItems: 1 > @@ -43,9 +45,8 @@ properties: > 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] > + property and the value depends on the HTE instance in the chip. If this statement was true, then this property makes sense... > + enum: [3, 11, 17] > > '#timestamp-cells': > description: > @@ -55,6 +56,41 @@ properties: > mentioned in the nvidia GPIO device tree binding document. > const: 1 > > +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 However, if there is only one possible value for each compatible, then being per instance can't really be true. I guess 'aon' or 'lic' define the instance? That's not normal practice. Are there other differences? It seems like 'nvidia,slices' should be implied from the compatible string. Rob
On Thu, Nov 03, 2022 at 10:45:20AM -0700, Dipen Patel wrote: > Added timestamp provider support for the Tegra234 in devicetree > bindings. > > Signed-off-by: Dipen Patel <dipenp@nvidia.com> > --- > .../timestamp/nvidia,tegra194-hte.yaml | 44 +++++++++++++++++-- > 1 file changed, 40 insertions(+), 4 deletions(-) As I mentioned in the other patch, perhaps we should extend the binding with a phandle property that lets us point directly to the GPIO controller that a given HTE is coupled with. We haven't technically started making use of these bindings yet, so backwards-compatibility shouldn't be an issue yet. Thierry
On 11/7/22 12:06 PM, Rob Herring wrote: > On Thu, Nov 03, 2022 at 10:45:20AM -0700, Dipen Patel wrote: >> Added timestamp provider support for the Tegra234 in devicetree >> bindings. >> >> Signed-off-by: Dipen Patel <dipenp@nvidia.com> >> --- >> .../timestamp/nvidia,tegra194-hte.yaml | 44 +++++++++++++++++-- >> 1 file changed, 40 insertions(+), 4 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml >> index c31e207d1652..158dbe58c49f 100644 >> --- a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml >> +++ b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml >> @@ -4,7 +4,7 @@ >> $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) >> +title: Tegra on chip generic hardware timestamping engine (HTE) provider >> >> maintainers: >> - Dipen Patel <dipenp@nvidia.com> >> @@ -23,6 +23,8 @@ properties: >> enum: >> - nvidia,tegra194-gte-aon >> - nvidia,tegra194-gte-lic >> + - nvidia,tegra234-gte-aon >> + - nvidia,tegra234-gte-lic > > How is the h/w in this chip different from the existing one? I'm > assuming it must be because you don't have a fallback compatible. t234-gte-lic has different slices and signal lines it can support. t234-gte-aon has again different slices and more gpio lines it can support and has different GTE-GPIO mapping than t194-gte-aon. > >> >> reg: >> maxItems: 1 >> @@ -43,9 +45,8 @@ properties: >> 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] >> + property and the value depends on the HTE instance in the chip. > > If this statement was true, then this property makes sense... > >> + enum: [3, 11, 17] >> >> '#timestamp-cells': >> description: >> @@ -55,6 +56,41 @@ properties: >> mentioned in the nvidia GPIO device tree binding document. >> const: 1 >> >> +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 > > However, if there is only one possible value for each compatible, then > being per instance can't really be true. I guess 'aon' or 'lic' define > the instance? That's not normal practice. Are there other differences? aon and lic are gte hardware instances but meant for different signals i.e. lic is for interrupt lines while aon is for always on domain GPIO lines. > > It seems like 'nvidia,slices' should be implied from the compatible > string. thats true, assuming we have all those specified compatible strings from this patch. > > Rob
diff --git a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml index c31e207d1652..158dbe58c49f 100644 --- a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml +++ b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml @@ -4,7 +4,7 @@ $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) +title: Tegra on chip generic hardware timestamping engine (HTE) provider maintainers: - Dipen Patel <dipenp@nvidia.com> @@ -23,6 +23,8 @@ properties: enum: - nvidia,tegra194-gte-aon - nvidia,tegra194-gte-lic + - nvidia,tegra234-gte-aon + - nvidia,tegra234-gte-lic reg: maxItems: 1 @@ -43,9 +45,8 @@ properties: 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] + property and the value depends on the HTE instance in the chip. + enum: [3, 11, 17] '#timestamp-cells': description: @@ -55,6 +56,41 @@ properties: mentioned in the nvidia GPIO device tree binding document. const: 1 +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 + required: - compatible - reg
Added timestamp provider support for the Tegra234 in devicetree bindings. Signed-off-by: Dipen Patel <dipenp@nvidia.com> --- .../timestamp/nvidia,tegra194-hte.yaml | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-)